diff --git a/internal/tui/components/core/core.go b/internal/tui/components/core/core.go index f5605db3927a9c1e55bd5706e2059c1ba9006106..1db79e954350a11a4a843797b07a091736a1cae9 100644 --- a/internal/tui/components/core/core.go +++ b/internal/tui/components/core/core.go @@ -191,6 +191,21 @@ func SelectableButtons(buttons []ButtonOpts, spacing string) string { return lipgloss.JoinHorizontal(lipgloss.Left, parts...) } +// SelectableButtonsVertical creates a vertical row of selectable buttons +func SelectableButtonsVertical(buttons []ButtonOpts, spacing int) string { + var parts []string + for i, button := range buttons { + parts = append(parts, SelectableButton(button)) + if i < len(buttons)-1 { + for j := 0; j < spacing; j++ { + parts = append(parts, "") + } + } + } + + return lipgloss.JoinVertical(lipgloss.Center, parts...) +} + func DiffFormatter() *diffview.DiffView { t := styles.CurrentTheme() formatDiff := diffview.New() diff --git a/internal/tui/components/dialogs/permissions/permissions.go b/internal/tui/components/dialogs/permissions/permissions.go index c43d50aa6233a2acb26e5b57c0b0f60b4ee143d3..91c3666e06beb9b15e011109748f5b7cf4daae7f 100644 --- a/internal/tui/components/dialogs/permissions/permissions.go +++ b/internal/tui/components/dialogs/permissions/permissions.go @@ -199,6 +199,13 @@ func (p *permissionDialogCmp) renderButtons() string { } content := core.SelectableButtons(buttons, " ") + if lipgloss.Width(content) > p.width-4 { + content = core.SelectableButtonsVertical(buttons, 1) + return baseStyle.AlignVertical(lipgloss.Center). + AlignHorizontal(lipgloss.Center). + Width(p.width - 4). + Render(content) + } return baseStyle.AlignHorizontal(lipgloss.Right).Width(p.width - 4).Render(content) } @@ -482,7 +489,7 @@ func (p *permissionDialogCmp) SetSize() tea.Cmd { switch p.permission.ToolName { case tools.BashToolName: - p.width = int(float64(p.wWidth) * 0.4) + p.width = int(float64(p.wWidth) * 0.8) p.height = int(float64(p.wHeight) * 0.3) case tools.EditToolName: p.width = int(float64(p.wWidth) * 0.8) @@ -491,7 +498,7 @@ func (p *permissionDialogCmp) SetSize() tea.Cmd { p.width = int(float64(p.wWidth) * 0.8) p.height = int(float64(p.wHeight) * 0.8) case tools.FetchToolName: - p.width = int(float64(p.wWidth) * 0.4) + p.width = int(float64(p.wWidth) * 0.8) p.height = int(float64(p.wHeight) * 0.3) default: p.width = int(float64(p.wWidth) * 0.7)