on main help sign in
Merge pull request #125 from charmbracelet/perm-dialog

fix(tui): permission: increase the default width of the dialog to 80%

commited8bdf9e96b083cb913d2982f6fa2687437190ec authorKujtim Hoxha <kujtimii.h@gmail.com> dateThu 10 Jul 2025, 20:27 (1 year ago) parentf31b051c57cca5
2 files changed+24−2
internal/tui/components/core/core.go+15 internal/tui/components/dialogs/permissions/permissions.go+9−2
internal/tui/components/core/core.go+15
@@ -191,6 +191,21 @@ func SelectableButtons(buttons []ButtonOpts, spacing string) string {
191191 return lipgloss.JoinHorizontal(lipgloss.Left, parts...)
192192}
193193
194+// SelectableButtonsVertical creates a vertical row of selectable buttons
195+func SelectableButtonsVertical(buttons []ButtonOpts, spacing int) string {
196+ var parts []string
197+ for i, button := range buttons {
198+ parts = append(parts, SelectableButton(button))
199+ if i < len(buttons)-1 {
200+ for j := 0; j < spacing; j++ {
201+ parts = append(parts, "")
202+ }
203+ }
204+ }
205+
206+ return lipgloss.JoinVertical(lipgloss.Center, parts...)
207+}
208+
194209func DiffFormatter() *diffview.DiffView {
195210 t := styles.CurrentTheme()
196211 formatDiff := diffview.New()
internal/tui/components/dialogs/permissions/permissions.go+9−2
@@ -199,6 +199,13 @@ func (p *permissionDialogCmp) renderButtons() string {
199199 }
200200
201201 content := core.SelectableButtons(buttons, " ")
202+ if lipgloss.Width(content) > p.width-4 {
203+ content = core.SelectableButtonsVertical(buttons, 1)
204+ return baseStyle.AlignVertical(lipgloss.Center).
205+ AlignHorizontal(lipgloss.Center).
206+ Width(p.width - 4).
207+ Render(content)
208+ }
202209
203210 return baseStyle.AlignHorizontal(lipgloss.Right).Width(p.width - 4).Render(content)
204211}
@@ -482,7 +489,7 @@ func (p *permissionDialogCmp) SetSize() tea.Cmd {
482489
483490 switch p.permission.ToolName {
484491 case tools.BashToolName:
485− p.width = int(float64(p.wWidth) * 0.4)
492+ p.width = int(float64(p.wWidth) * 0.8)
486493 p.height = int(float64(p.wHeight) * 0.3)
487494 case tools.EditToolName:
488495 p.width = int(float64(p.wWidth) * 0.8)
@@ -491,7 +498,7 @@ func (p *permissionDialogCmp) SetSize() tea.Cmd {
491498 p.width = int(float64(p.wWidth) * 0.8)
492499 p.height = int(float64(p.wHeight) * 0.8)
493500 case tools.FetchToolName:
494− p.width = int(float64(p.wWidth) * 0.4)
501+ p.width = int(float64(p.wWidth) * 0.8)
495502 p.height = int(float64(p.wHeight) * 0.3)
496503 default:
497504 p.width = int(float64(p.wWidth) * 0.7)