summaryrefslogtreecommitdiff
path: root/internal/tui/modal.go
diff options
context:
space:
mode:
authorT <t@tjp.lol>2025-08-13 21:37:59 -0600
committerT <t@tjp.lol>2025-08-13 21:38:26 -0600
commit5c076e605185a09b1e570f9aa3c5ddb784ace0f3 (patch)
tree67b8103ab7d95302bb403388cfb0a61b70d606eb /internal/tui/modal.go
parent7d0d21ba8663ab7ff777a06f4b113337fa717ff3 (diff)
edit contractor via modal
Diffstat (limited to 'internal/tui/modal.go')
-rw-r--r--internal/tui/modal.go26
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