package main import ( "errors" "strconv" "time" tea "github.com/charmbracelet/bubbletea" "github.com/charmbracelet/huh" ) // updateForm handles processing tea.Msg's related to form processing func (m model) updateForm(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch msg.String() { case "esc": m.tuiMode = MODE_CAL return m, nil } } newForm, formCmd := m.formData.form.Update(msg) m.formData.form = newForm.(*huh.Form) if m.formData.form.State == huh.StateCompleted { // fmt.Printf("%#v", m.timeData.entries) // clientID := m.formData.form.GetString("client") serviceID := m.formData.form.GetString("service") projectID := m.formData.form.GetString("project") description := m.formData.form.GetString("description") minutes := m.formData.form.GetString("minutes") minutesInt, err1 := strconv.ParseInt(minutes, 10, 64) serviceIDInt, err2 := strconv.ParseInt(serviceID, 10, 64) projectIDInt, err3 := strconv.ParseInt(projectID, 10, 64) if errors.Join(err1, err2, err3) != nil { m.statusBarMessage = errors.Join(err1, err2, err3).Error() m.tuiMode = MODE_CAL } else { err := m.miteAPI.AddTimeEntry(m.dest.Format(time.DateOnly), int(minutesInt), description, int(projectIDInt), int(serviceIDInt)) if err != nil { m.statusBarMessage = errors.Join(err1, err2, err3).Error() m.tuiMode = MODE_CAL } else { m.statusBarMessage = "Successfully logged time" m.tuiMode = MODE_CAL } } } return m, formCmd }