diff options
Diffstat (limited to 'src/features/chat/ui/ModelSelector.svelte')
| -rw-r--r-- | src/features/chat/ui/ModelSelector.svelte | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/src/features/chat/ui/ModelSelector.svelte b/src/features/chat/ui/ModelSelector.svelte index a288cb8..03acb79 100644 --- a/src/features/chat/ui/ModelSelector.svelte +++ b/src/features/chat/ui/ModelSelector.svelte @@ -1,50 +1,50 @@ <script lang="ts"> - import { joinModelName, modelKeys, modelsForKey, splitModelName } from "../model-select"; + import { joinModelName, modelKeys, modelsForKey, splitModelName } from "../model-select"; - let { - models, - selected, - onSelect, - }: { - models: readonly string[]; - selected: string; - onSelect: (model: string) => void; - } = $props(); + let { + models, + selected, + onSelect, + }: { + models: readonly string[]; + selected: string; + onSelect: (model: string) => void; + } = $props(); - const keys = $derived(modelKeys(models)); - const current = $derived(splitModelName(selected)); - const keyModels = $derived(modelsForKey(models, current.key)); + const keys = $derived(modelKeys(models)); + const current = $derived(splitModelName(selected)); + const keyModels = $derived(modelsForKey(models, current.key)); - // Switching key jumps to the first model available under it. - function selectKey(key: string): void { - const first = modelsForKey(models, key)[0] ?? ""; - onSelect(joinModelName(key, first)); - } + // Switching key jumps to the first model available under it. + function selectKey(key: string): void { + const first = modelsForKey(models, key)[0] ?? ""; + onSelect(joinModelName(key, first)); + } - function selectModel(model: string): void { - onSelect(joinModelName(current.key, model)); - } + function selectModel(model: string): void { + onSelect(joinModelName(current.key, model)); + } </script> <div class="flex flex-col gap-2"> - <select - class="select w-full" - value={current.key} - onchange={(e) => selectKey(e.currentTarget.value)} - aria-label="Key selector" - > - {#each keys as key (key)} - <option value={key}>{key}</option> - {/each} - </select> - <select - class="select w-full" - value={current.model} - onchange={(e) => selectModel(e.currentTarget.value)} - aria-label="Model selector" - > - {#each keyModels as model (model)} - <option value={model}>{model}</option> - {/each} - </select> + <select + class="select w-full" + value={current.key} + onchange={(e) => selectKey(e.currentTarget.value)} + aria-label="Key selector" + > + {#each keys as key (key)} + <option value={key}>{key}</option> + {/each} + </select> + <select + class="select w-full" + value={current.model} + onchange={(e) => selectModel(e.currentTarget.value)} + aria-label="Model selector" + > + {#each keyModels as model (model)} + <option value={model}>{model}</option> + {/each} + </select> </div> |
