diff options
Diffstat (limited to 'internal/tui/modal.go')
-rw-r--r-- | internal/tui/modal.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/internal/tui/modal.go b/internal/tui/modal.go index 77b3fa9..51ac384 100644 --- a/internal/tui/modal.go +++ b/internal/tui/modal.go @@ -24,6 +24,7 @@ const ( ModalTypeEntry ModalTypeHistoryFilter ModalTypeGenerateReport + ModalTypeContractor ) func (mt ModalType) newForm() Form { @@ -38,6 +39,8 @@ func (mt ModalType) newForm() Form { return NewHistoryFilterForm() case ModalTypeGenerateReport: return NewGenerateReportForm() + case ModalTypeContractor: + return NewContractorForm() } return Form{} @@ -96,6 +99,8 @@ func (m ModalBoxModel) Render() string { return m.RenderFormModal("🔍 History Filter") case ModalTypeGenerateReport: return m.RenderFormModal("📄 Generate Report") + case ModalTypeContractor: + return m.RenderFormModal("👤 Contractor") default: // REMOVE ME return "DEFAULT CONTENT" } @@ -141,6 +146,12 @@ func (m *ModalBoxModel) deactivate() { m.Active = false } +func (m *ModalBoxModel) populateContractorFields(contractor ContractorInfo) { + m.form.fields[0].SetValue(contractor.name) + m.form.fields[1].SetValue(contractor.label) + m.form.fields[2].SetValue(contractor.email) +} + var ( boldStyle = lipgloss.NewStyle().Bold(true) modalTitleStyle = boldStyle @@ -287,6 +298,21 @@ func (m *ModalBoxModel) SubmitForm(am AppModel) tea.Cmd { return generateReport(m, am) + case ModalTypeContractor: + if err := m.form.Error(); err != nil { + return reOpenModal() + } + + if _, err := am.queries.UpdateContractor(context.Background(), queries.UpdateContractorParams{ + Name: m.form.fields[0].Value(), + Label: m.form.fields[1].Value(), + Email: m.form.fields[2].Value(), + }); err != nil { + m.form.err = err + return reOpenModal() + } + + return am.refreshCmd } return nil |