mirror of
https://github.com/shokinn/hosts-go.git
synced 2025-08-23 08:33:02 +00:00
Implement TUI pane navigation
This commit is contained in:
parent
3561d15858
commit
a24041d664
6 changed files with 137 additions and 73 deletions
|
@ -12,13 +12,47 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||
switch msg.String() {
|
||||
case "q", "ctrl+c":
|
||||
return m, tea.Quit
|
||||
case "tab":
|
||||
if m.focus == listPane {
|
||||
m.focus = detailPane
|
||||
} else {
|
||||
m.focus = listPane
|
||||
}
|
||||
case "up", "k":
|
||||
if m.focus == detailPane {
|
||||
m.detail.LineUp(1)
|
||||
} else {
|
||||
m.list, cmd = m.list.Update(msg)
|
||||
m.refreshDetail()
|
||||
}
|
||||
return m, cmd
|
||||
case "down", "j":
|
||||
if m.focus == detailPane {
|
||||
m.detail.LineDown(1)
|
||||
} else {
|
||||
m.list, cmd = m.list.Update(msg)
|
||||
m.refreshDetail()
|
||||
}
|
||||
return m, cmd
|
||||
}
|
||||
if m.focus == listPane {
|
||||
m.list, cmd = m.list.Update(msg)
|
||||
m.refreshDetail()
|
||||
}
|
||||
case tea.WindowSizeMsg:
|
||||
m.width = msg.Width
|
||||
m.height = msg.Height
|
||||
m.list.SetSize(msg.Width/2, msg.Height)
|
||||
m.height = msg.Height - 1
|
||||
m.list.SetSize(msg.Width/2, m.height)
|
||||
m.detail.Width = msg.Width - msg.Width/2
|
||||
m.detail.Height = m.height
|
||||
if m.focus == listPane {
|
||||
m.list, cmd = m.list.Update(msg)
|
||||
}
|
||||
default:
|
||||
if m.focus == listPane {
|
||||
m.list, cmd = m.list.Update(msg)
|
||||
m.refreshDetail()
|
||||
}
|
||||
}
|
||||
|
||||
m.list, cmd = m.list.Update(msg)
|
||||
return m, cmd
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue