fix(tui): drill through panes on enter

This commit is contained in:
Vincent Koc 2026-05-03 03:48:47 -07:00
parent aff4efbf5d
commit 227cc9a1fc
No known key found for this signature in database
2 changed files with 33 additions and 1 deletions

View File

@ -826,7 +826,11 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.applyFilter()
}
case "enter", " ":
m.focus = focusDetail
if m.focus == focusRows {
m.focus = focusContext
} else if m.focus == focusContext {
m.focus = focusDetail
}
}
}
return m, nil

View File

@ -779,6 +779,34 @@ func TestLeftClickSelectsRowUnderPointer(t *testing.T) {
}
}
func TestEnterDrillsThroughPanesLikeGitcrawl(t *testing.T) {
m := newModel(Options{
Title: "slacrawl archive",
Layout: LayoutChat,
Items: []Item{
Row{Kind: "message", ID: "m1", Container: "general", Author: "Amy", Title: "first"}.ItemForLayout(LayoutChat),
},
})
if m.focus != focusRows {
t.Fatalf("initial focus = %v, want rows", m.focus)
}
updated, _ := m.Update(tea.KeyMsg{Type: tea.KeyEnter})
m = updated.(model)
if m.focus != focusContext {
t.Fatalf("enter from rows focus = %v, want context", m.focus)
}
updated, _ = m.Update(tea.KeyMsg{Type: tea.KeyEnter})
m = updated.(model)
if m.focus != focusDetail {
t.Fatalf("enter from context focus = %v, want detail", m.focus)
}
updated, _ = m.Update(tea.KeyMsg{Type: tea.KeySpace})
m = updated.(model)
if m.focus != focusDetail {
t.Fatalf("space from detail focus = %v, want detail", m.focus)
}
}
func TestRightClickOpensSharedActionMenu(t *testing.T) {
m := newModel(Options{
Title: "archive",