@@ -10,6 +10,7 @@ import (
10 "charm.land/bubbles/v2/textinput"
10 "charm.land/bubbles/v2/textinput"
11 tea "charm.land/bubbletea/v2"
11 tea "charm.land/bubbletea/v2"
12 "charm.land/catwalk/pkg/catwalk"
12 "charm.land/catwalk/pkg/catwalk"
13+ "charm.land/lipgloss/v2"
13 "github.com/charmbracelet/crush/internal/config"
14 "github.com/charmbracelet/crush/internal/config"
14 "github.com/charmbracelet/crush/internal/ui/common"
15 "github.com/charmbracelet/crush/internal/ui/common"
15 "github.com/charmbracelet/crush/internal/ui/util"
16 "github.com/charmbracelet/crush/internal/ui/util"
@@ -265,9 +266,14 @@ func (m *Models) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor {
265 t.Dialog.View.GetVerticalFrameSize()
266 t.Dialog.View.GetVerticalFrameSize()
267 m.input.SetWidth(max(0, innerWidth-t.Dialog.InputPrompt.GetHorizontalFrameSize()-1)) // (1) cursor padding
268 m.input.SetWidth(max(0, innerWidth-t.Dialog.InputPrompt.GetHorizontalFrameSize()-1)) // (1) cursor padding
268− m.list.SetSize(innerWidth, height-heightOffset)
269 m.help.SetWidth(innerWidth)
269 m.help.SetWidth(innerWidth)
271+ listHeight := height - heightOffset
272+ m.list.SetSize(innerWidth, listHeight)
273+ listTotalHeight := m.list.TotalHeight()
274+ listWidth := max(0, innerWidth-3) // Reserve space for scrollbar.
275+ m.list.SetSize(listWidth, listHeight)
271 rc := NewRenderContext(t, width)
277 rc := NewRenderContext(t, width)
272 rc.Title = "Switch Model"
278 rc.Title = "Switch Model"
273 rc.TitleInfo = m.modelTypeRadioView()
279 rc.TitleInfo = m.modelTypeRadioView()
@@ -281,6 +287,10 @@ func (m *Models) Draw(scr uv.Screen, area uv.Rectangle) *tea.Cursor {
281 rc.AddPart(inputView)
287 rc.AddPart(inputView)
283 listView := t.Dialog.List.Height(m.list.Height()).Render(m.list.Render())
289 listView := t.Dialog.List.Height(m.list.Height()).Render(m.list.Render())
290+ scrollbar := common.Scrollbar(t, listHeight, listTotalHeight, listHeight, m.list.Offset())
291+ if scrollbar != "" {
292+ listView = lipgloss.JoinHorizontal(lipgloss.Top, listView, scrollbar)
284 rc.AddPart(listView)
294 rc.AddPart(listView)
286 rc.Help = m.help.View(m)
296 rc.Help = m.help.View(m)