From 57d1a60efcd0bc7cc5709fac75a46270e344e43d Mon Sep 17 00:00:00 2001 From: Adi Yeroslav Date: Wed, 16 Jul 2025 15:43:48 +0300 Subject: feat(tui): shift+tab to cycle modes backward (#1049) --- packages/tui/internal/app/app.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'packages/tui/internal/app') diff --git a/packages/tui/internal/app/app.go b/packages/tui/internal/app/app.go index 52be32694..818203b98 100644 --- a/packages/tui/internal/app/app.go +++ b/packages/tui/internal/app/app.go @@ -205,10 +205,17 @@ func (a *App) SetClipboard(text string) tea.Cmd { return tea.Sequence(cmds...) } -func (a *App) SwitchMode() (*App, tea.Cmd) { - a.ModeIndex++ - if a.ModeIndex >= len(a.Modes) { - a.ModeIndex = 0 +func (a *App) cycleMode(forward bool) (*App, tea.Cmd) { + if forward { + a.ModeIndex++ + if a.ModeIndex >= len(a.Modes) { + a.ModeIndex = 0 + } + } else { + a.ModeIndex-- + if a.ModeIndex < 0 { + a.ModeIndex = len(a.Modes) - 1 + } } a.Mode = &a.Modes[a.ModeIndex] @@ -244,6 +251,14 @@ func (a *App) SwitchMode() (*App, tea.Cmd) { } } +func (a *App) SwitchMode() (*App, tea.Cmd) { + return a.cycleMode(true) +} + +func (a *App) SwitchModeReverse() (*App, tea.Cmd) { + return a.cycleMode(false) +} + func (a *App) InitializeProvider() tea.Cmd { providersResponse, err := a.Client.Config.Providers(context.Background()) if err != nil { -- cgit v1.2.3