@@ -5,6 +5,7 @@ import { map, pipe, flatMap, entries, filter, sortBy, take } from "remeda"
55import { DialogSelect } from "@tui/ui/dialog-select"
66import { useDialog } from "@tui/ui/dialog"
77import { createDialogProviderOptions , DialogProvider } from "./dialog-provider"
8+ import { DialogVariant } from "./dialog-variant"
89import { useKeybind } from "../context/keybind"
910import * as fuzzysort from "fuzzysort"
1011
@@ -50,8 +51,7 @@ export function DialogModel(props: { providerID?: string }) {
5051 disabled : provider . id === "opencode" && model . id . includes ( "-nano" ) ,
5152 footer : model . cost ?. input === 0 && provider . id === "opencode" ? "Free" : undefined ,
5253 onSelect : ( ) => {
53- dialog . clear ( )
54- local . model . set ( { providerID : provider . id , modelID : model . id } , { recent : true } )
54+ onSelect ( provider . id , model . id )
5555 } ,
5656 } ,
5757 ]
@@ -88,8 +88,7 @@ export function DialogModel(props: { providerID?: string }) {
8888 disabled : provider . id === "opencode" && model . includes ( "-nano" ) ,
8989 footer : info . cost ?. input === 0 && provider . id === "opencode" ? "Free" : undefined ,
9090 onSelect ( ) {
91- dialog . clear ( )
92- local . model . set ( { providerID : provider . id , modelID : model } , { recent : true } )
91+ onSelect ( provider . id , model )
9392 } ,
9493 } ) ) ,
9594 filter ( ( x ) => {
@@ -135,6 +134,15 @@ export function DialogModel(props: { providerID?: string }) {
135134
136135 const title = createMemo ( ( ) => provider ( ) ?. name ?? "Select model" )
137136
137+ function onSelect ( providerID : string , modelID : string ) {
138+ local . model . set ( { providerID, modelID } , { recent : true } )
139+ if ( local . model . variant . list ( ) . length > 0 ) {
140+ dialog . replace ( ( ) => < DialogVariant /> )
141+ } else {
142+ dialog . clear ( )
143+ }
144+ }
145+
138146 return (
139147 < DialogSelect < ReturnType < typeof options > [ number ] [ "value" ] >
140148 options = { options ( ) }
0 commit comments