(msg tea.Msg)
| 65 | } |
| 66 | |
| 67 | func (m configTabModel) Update(msg tea.Msg) (configTabModel, tea.Cmd) { |
| 68 | switch msg := msg.(type) { |
| 69 | case localeChangedMsg: |
| 70 | m.viewport.SetContent(m.renderContent()) |
| 71 | return m, nil |
| 72 | case configDataMsg: |
| 73 | if msg.err != nil { |
| 74 | m.err = msg.err |
| 75 | m.fields = nil |
| 76 | } else { |
| 77 | m.err = nil |
| 78 | m.fields = m.parseConfig(msg.config) |
| 79 | } |
| 80 | m.viewport.SetContent(m.renderContent()) |
| 81 | return m, nil |
| 82 | |
| 83 | case configUpdateMsg: |
| 84 | if msg.err != nil { |
| 85 | m.message = errorStyle.Render("✗ " + msg.err.Error()) |
| 86 | } else { |
| 87 | m.message = successStyle.Render(T("updated_ok")) |
| 88 | } |
| 89 | m.viewport.SetContent(m.renderContent()) |
| 90 | // Refresh config from server |
| 91 | return m, m.fetchConfig |
| 92 | |
| 93 | case tea.KeyMsg: |
| 94 | if m.editing { |
| 95 | return m.handleEditingKey(msg) |
| 96 | } |
| 97 | return m.handleNormalKey(msg) |
| 98 | } |
| 99 | |
| 100 | var cmd tea.Cmd |
| 101 | m.viewport, cmd = m.viewport.Update(msg) |
| 102 | return m, cmd |
| 103 | } |
| 104 | |
| 105 | func (m configTabModel) handleNormalKey(msg tea.KeyMsg) (configTabModel, tea.Cmd) { |
| 106 | switch msg.String() { |
no test coverage detected