@@ -20,7 +20,14 @@ var styleBase = lipgloss.NewStyle().
2020 Bold (false ).
2121 BorderForeground (config .COLOR_SUBTLE )
2222
23+ const (
24+ view = iota
25+ add
26+ edit
27+ )
28+
2329type Model struct {
30+ mode int
2431 width int
2532 height int
2633 simpleTable table.Model
@@ -49,6 +56,7 @@ func New(call *app.Call, width int, height int) Model {
4956 }
5057
5158 return Model {
59+ mode : view ,
5260 call : call ,
5361 width : width ,
5462 height : height ,
@@ -75,21 +83,29 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
7583 case tea.KeyMsg :
7684 {
7785 switch msg .String () {
86+ case "a" :
87+ if m .mode == view {
88+ m .mode = add
89+
90+ }
91+
7892 case "x" :
79- key := strings .TrimSpace (m .simpleTable .HighlightedRow ().Data [columnKeyKey ].(string ))
80- headers := []string {}
81- for _ , header := range m .call .Headers {
82- if key != strings .Split (header , ":" )[0 ] {
83- headers = append (headers , header )
93+ if m .call != nil && m .call .HeadersCount () > 0 {
94+ key := strings .TrimSpace (m .simpleTable .HighlightedRow ().Data [columnKeyKey ].(string ))
95+ headers := []string {}
96+ for _ , header := range m .call .Headers {
97+ if key != strings .Split (header , ":" )[0 ] {
98+ headers = append (headers , header )
99+ }
84100 }
85- }
86- m .call .Headers = headers
101+ m .call .Headers = headers
87102
88- cmd := func () tea.Msg {
89- return app.CallUpdatedMsg {Call : m .call }
103+ cmd := func () tea.Msg {
104+ return app.CallUpdatedMsg {Call : m .call }
105+ }
106+ m .simpleTable = m .simpleTable .WithRows (GetRows (m .call .Headers ))
107+ cmds = append (cmds , cmd )
90108 }
91- m .simpleTable = m .simpleTable .WithRows (GetRows (m .call .Headers ))
92- cmds = append (cmds , cmd )
93109 }
94110 }
95111 case app.CallUpdatedMsg :
@@ -104,6 +120,10 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
104120}
105121
106122func (m Model ) View () string {
123+ if m .mode == add {
124+ return config .BoxHeader .Render ("Add Header" )
125+ }
126+
107127 content := config .EmptyMessageStyle .Padding (2 , 2 ).Render ("No headers defined." )
108128 if m .call != nil && len (m .call .Headers ) > 0 {
109129 content = m .simpleTable .View ()
0 commit comments