Gim/internal/editor/update.go
2026-02-26 12:14:59 -07:00

36 lines
699 B
Go

package editor
import (
tea "github.com/charmbracelet/bubbletea"
)
func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
var cmd tea.Cmd
switch msg := msg.(type) {
case tea.WindowSizeMsg:
m.win_h = msg.Height
m.win_w = msg.Width
// TODO: Temp, this is lame
for i := range m.windows {
m.windows[i].Height = msg.Height
m.windows[i].Width = msg.Width
}
case tea.KeyMsg:
// TODO: This needs to be removed, but for now its required for the tests.
// Ctrl+C always quits regardless of mode
if msg.Type == tea.KeyCtrlC {
return m, tea.Quit
}
cmd = m.input.Handle(m, msg.String())
}
// Keep cursor in view after any update
m.AdjustScroll()
return m, cmd
}