diff options
Diffstat (limited to 'packages/tui/internal/app')
| -rw-r--r-- | packages/tui/internal/app/app.go | 23 |
1 files changed, 19 insertions, 4 deletions
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 { |
