Files
Hadi 59b31e5ca3 init
Signed-off-by: Hadi <[email protected]>
2026-08-13 00:58:37 +02:00

67 lines
1.6 KiB
Go

package about
import (
"charm.land/bubbles/v2/key"
tea "charm.land/bubbletea/v2"
"github.com/anotherhadi/settuings/internal/keys"
"github.com/anotherhadi/settuings/internal/util"
)
func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
g := keys.Keys.Global
d := keys.Keys.Docs
switch msg := msg.(type) {
case tea.MouseWheelMsg:
util.HandleMouseWheel(msg, &m.viewport)
case tea.KeyPressMsg:
if m.searching {
switch {
case key.Matches(msg, g.Escape):
m.searching = false
m.searchInput.Blur()
m.SetSize(m.width, m.height)
case msg.String() == "enter":
m.searching = false
m.searchInput.Blur()
m.SetSize(m.width, m.height)
default:
var cmd tea.Cmd
m.searchInput, cmd = m.searchInput.Update(msg)
m.applySearch()
return m, cmd
}
return m, nil
}
switch {
case key.Matches(msg, d.Search):
m.searching = true
m.searchInput.SetValue("")
m.searchInput.Focus()
m.SetSize(m.width, m.height)
case key.Matches(msg, d.SearchReset):
m.matches = nil
m.matchIndex = 0
m.rebuildViewportContent()
case key.Matches(msg, d.SearchNext):
m.searchNext()
case key.Matches(msg, d.SearchPrev):
m.searchPrev()
case key.Matches(msg, g.Up):
util.ScrollLines(&m.viewport, -1)
case key.Matches(msg, g.Down):
util.ScrollLines(&m.viewport, 1)
case key.Matches(msg, g.ScrollUp):
util.ScrollViewport(&m.viewport, -1)
case key.Matches(msg, g.ScrollDown):
util.ScrollViewport(&m.viewport, 1)
case key.Matches(msg, g.Help):
m.help.ShowAll = !m.help.ShowAll
m.SetSize(m.width, m.height)
}
}
return m, nil
}