MCPcopy Create free account
hub / github.com/caarlos0/tasktimer / Update

Method Update

internal/ui/main.go:94–197  ·  view source on GitHub ↗
(msg tea.Msg)

Source from the content-addressed store, hash-verified

92}
93
94func (m mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
95 var cmds []tea.Cmd
96 var cmd tea.Cmd
97 var newMsg tea.Msg
98
99 m.list.DisableQuitKeybindings()
100 m.list.KeyMap.CursorUp.SetEnabled(!m.input.Focused() && !m.list.SettingFilter())
101 m.list.KeyMap.CursorDown.SetEnabled(!m.input.Focused() && !m.list.SettingFilter())
102 m.list.KeyMap.Filter.SetEnabled(!m.input.Focused() && !m.list.SettingFilter())
103 m.keymap.Esc.SetEnabled(m.input.Focused())
104
105 switch msg := msg.(type) {
106 case errMsg:
107 log.Println("errMsg")
108 m.err = msg.error
109 case tea.WindowSizeMsg:
110 log.Println("tea.WindowSizeMsg")
111 top, right, bottom, left := listStyle.GetMargin()
112 m.list.SetSize(msg.Width-left-right, msg.Height-top-bottom)
113 case updateTaskListMsg:
114 log.Println("updateTaskListMsg")
115 cmds = append(cmds, m.list.StartSpinner(), updateTaskListCmd(m.db))
116 case taskListUpdatedMsg:
117 log.Println("taskListUpdatedMsg")
118 items := make([]list.Item, 0, len(msg.tasks))
119 for _, t := range msg.tasks {
120 items = append(items, item{
121 title: t.Title,
122 start: t.StartAt,
123 end: t.EndAt,
124 })
125 }
126
127 m.list.StopSpinner()
128 m.list.ResetSelected()
129 m.list.ResetFilter()
130 cmds = append(cmds, m.list.SetItems(items), updateProjectTimerCmd(msg.tasks))
131 case tea.KeyMsg:
132 if key.Matches(msg, m.keymap.CtrlC) {
133 log.Println("tea.KeyMsg -> ctrl+c")
134 return m, tea.Sequentially(closeTasksCmd(m.db), tea.Quit)
135 }
136
137 if m.list.SettingFilter() {
138 log.Println("tea.KeyMsg -> settingFilter")
139 break
140 }
141
142 if m.input.Focused() {
143 if key.Matches(msg, m.keymap.Esc) {
144 log.Println("tea.KeyMsg -> input.Focused -> esc")
145 m.input.Blur()
146 cmds = append(cmds, tea.Sequentially(
147 closeTasksCmd(m.db),
148 updateTaskListCmd(m.db)),
149 )
150 }
151 if key.Matches(msg, m.keymap.Enter) {

Callers 3

CloseTasksFunction · 0.45
CreateTaskFunction · 0.45
LoadTasksFunction · 0.45

Calls 5

updateTaskListCmdFunction · 0.85
updateProjectTimerCmdFunction · 0.85
closeTasksCmdFunction · 0.85
createTaskCmdFunction · 0.85
FilterValueMethod · 0.80

Tested by

no test coverage detected