From 44e1ca7c4a0c7d008b79a34521360a1d11d16883 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Tue, 20 Jan 2026 16:44:55 -0300 Subject: [PATCH] fix(dialogs): prevent panic due to negative index --- internal/ui/dialog/api_key_input.go | 2 +- internal/ui/dialog/commands.go | 2 +- internal/ui/dialog/models.go | 2 +- internal/ui/dialog/sessions.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/ui/dialog/api_key_input.go b/internal/ui/dialog/api_key_input.go index 430f7b4629294faa83bad9b5b90ca363ceb6f1b7..72ff9739a76394c529ee954392e8d9990c70a8a5 100644 --- a/internal/ui/dialog/api_key_input.go +++ b/internal/ui/dialog/api_key_input.go @@ -71,7 +71,7 @@ func NewAPIKeyInput(com *common.Common, provider catwalk.Provider, model config. m.input.Placeholder = "Enter you API key..." m.input.SetStyles(com.Styles.TextInput) m.input.Focus() - m.input.SetWidth(innerWidth - t.Dialog.InputPrompt.GetHorizontalFrameSize() - 1) // (1) cursor padding + m.input.SetWidth(max(0, innerWidth-t.Dialog.InputPrompt.GetHorizontalFrameSize()-1)) // (1) cursor padding m.spinner = spinner.New( spinner.WithSpinner(spinner.Dot), diff --git a/internal/ui/dialog/commands.go b/internal/ui/dialog/commands.go index b5058e50f9c5bae17acd76994115597e59ee912c..0bf8b52d04cba248b3b19e412d981d92b4ab5a08 100644 --- a/internal/ui/dialog/commands.go +++ b/internal/ui/dialog/commands.go @@ -256,7 +256,7 @@ func (c *Commands) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { t.Dialog.HelpView.GetVerticalFrameSize() + t.Dialog.View.GetVerticalFrameSize() - c.input.SetWidth(innerWidth - t.Dialog.InputPrompt.GetHorizontalFrameSize() - 1) // (1) cursor padding + c.input.SetWidth(max(0, innerWidth-t.Dialog.InputPrompt.GetHorizontalFrameSize()-1)) // (1) cursor padding c.list.SetSize(innerWidth, height-heightOffset) c.help.SetWidth(innerWidth) diff --git a/internal/ui/dialog/models.go b/internal/ui/dialog/models.go index ed42d388fde959c41017217fc279fc175a9e0f49..00677124c2f02f9cfc7bf7a9121c09464fbf90dd 100644 --- a/internal/ui/dialog/models.go +++ b/internal/ui/dialog/models.go @@ -251,7 +251,7 @@ func (m *Models) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { t.Dialog.InputPrompt.GetVerticalFrameSize() + inputContentHeight + t.Dialog.HelpView.GetVerticalFrameSize() + t.Dialog.View.GetVerticalFrameSize() - m.input.SetWidth(innerWidth - t.Dialog.InputPrompt.GetHorizontalFrameSize() - 1) // (1) cursor padding + m.input.SetWidth(max(0, innerWidth-t.Dialog.InputPrompt.GetHorizontalFrameSize()-1)) // (1) cursor padding m.list.SetSize(innerWidth, height-heightOffset) m.help.SetWidth(innerWidth) diff --git a/internal/ui/dialog/sessions.go b/internal/ui/dialog/sessions.go index 9f7023a44e005c4d6ab735206824519e5b91e5bf..2ace3c4634a2980d1b3e82afc947a9f21b9a5541 100644 --- a/internal/ui/dialog/sessions.go +++ b/internal/ui/dialog/sessions.go @@ -148,7 +148,7 @@ func (s *Session) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor { t.Dialog.InputPrompt.GetVerticalFrameSize() + inputContentHeight + t.Dialog.HelpView.GetVerticalFrameSize() + t.Dialog.View.GetVerticalFrameSize() - s.input.SetWidth(innerWidth - t.Dialog.InputPrompt.GetHorizontalFrameSize() - 1) // (1) cursor padding + s.input.SetWidth(max(0, innerWidth-t.Dialog.InputPrompt.GetHorizontalFrameSize()-1)) // (1) cursor padding s.list.SetSize(innerWidth, height-heightOffset) s.help.SetWidth(innerWidth)