on main help sign in
fix(ui): handle model selection in models dialog
commit98df293310d9d86cb416647f2f526c1907e4d377 authorAyman Bagabas <ayman.bagabas@gmail.com> dateThu 18 Dec 2025, 16:48 (1 year ago) parente16eae1
3 files changed+27−2
internal/ui/dialog/messages.go+7 internal/ui/dialog/models.go+13−2 internal/ui/model/ui.go+7
internal/ui/dialog/messages.go+7
@@ -2,6 +2,7 @@ package dialog
22
33import (
44 tea "charm.land/bubbletea/v2"
5+ "github.com/charmbracelet/catwalk/pkg/catwalk"
56 "github.com/charmbracelet/crush/internal/session"
67)
78
@@ -16,6 +17,12 @@ type SessionSelectedMsg struct {
1617 Session session.Session
1718}
1819
20+// ModelSelectedMsg is a message indicating a model has been selected.
21+type ModelSelectedMsg struct {
22+ Provider catwalk.Provider
23+ Model catwalk.Model
24+}
25+
1926// Messages for commands
2027type (
2128 SwitchSessionsMsg struct{}
internal/ui/dialog/models.go+13−2
@@ -169,8 +169,19 @@ func (m *Models) Update(msg tea.Msg) tea.Msg {
169169 m.list.SelectNext()
170170 m.list.ScrollToSelected()
171171 case key.Matches(msg, m.keyMap.Select):
172− if selectedItem := m.list.SelectedItem(); selectedItem != nil {
173− // TODO: Handle model selection confirmation.
172+ selectedItem := m.list.SelectedItem()
173+ if selectedItem == nil {
174+ break
175+ }
176+
177+ modelItem, ok := selectedItem.(*ModelItem)
178+ if !ok {
179+ break
180+ }
181+
182+ return ModelSelectedMsg{
183+ Provider: modelItem.prov,
184+ Model: modelItem.model,
174185 }
175186 case key.Matches(msg, m.keyMap.Tab):
176187 if m.modelType == ModelTypeLarge {
internal/ui/model/ui.go+7
@@ -562,6 +562,13 @@ func (m *UI) handleKeyPressMsg(msg tea.KeyPressMsg) tea.Cmd {
562562 m.dialog.CloseDialog(dialog.CommandsID)
563563 case dialog.QuitMsg:
564564 cmds = append(cmds, tea.Quit)
565+ case dialog.SwitchModelMsg:
566+ m.dialog.CloseDialog(dialog.CommandsID)
567+ if cmd := m.openModelsDialog(); cmd != nil {
568+ cmds = append(cmds, cmd)
569+ }
570+ case dialog.ModelSelectedMsg:
571+ // TODO: Handle model switching
565572 }
566573
567574 return tea.Batch(cmds...)