summaryrefslogtreecommitdiffhomepage
path: root/src/features/chat/ui/ModelSelector.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/features/chat/ui/ModelSelector.svelte')
-rw-r--r--src/features/chat/ui/ModelSelector.svelte82
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>