summaryrefslogtreecommitdiffhomepage
path: root/src/features/chat/ui/ModelSelector.svelte
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-07 02:06:55 +0900
committerAdam Malczewski <[email protected]>2026-06-07 02:06:55 +0900
commite2ffae81315e1cedabd4a7a9384b836ed93d508a (patch)
treea618db6d32bfad4922323f4b08401442b9c8d235 /src/features/chat/ui/ModelSelector.svelte
parentc74491b9f916b2cfd8e6112fcfcc9e063ec9c455 (diff)
downloaddispatch-web-e2ffae81315e1cedabd4a7a9384b836ed93d508a.tar.gz
dispatch-web-e2ffae81315e1cedabd4a7a9384b836ed93d508a.zip
Slice 3 wave A: tabs model, model selector, cache delete, localStorage
- features/tabs: pure tab-workspace reducer (create/select/close/setModel/ setTitle/deriveTitle, draft=null active) + injected-persistence runes store - features/chat: mutable per-tab model (setModel) + delta routing guard (ignore foreign conversationId) + ModelSelector.svelte + DaisyUI chat bubbles / composer (keeps streaming <details> keying fix) - features/conversation-cache: surface delete(conversationId) on the wrapper for tab-close local-forget - adapters/local-storage: generic injected JSON localStore<T> (quota/corrupt-safe) Verified: svelte-check 0/0, vitest 273, biome clean, build ok.
Diffstat (limited to 'src/features/chat/ui/ModelSelector.svelte')
-rw-r--r--src/features/chat/ui/ModelSelector.svelte22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/features/chat/ui/ModelSelector.svelte b/src/features/chat/ui/ModelSelector.svelte
new file mode 100644
index 0000000..3e25ec3
--- /dev/null
+++ b/src/features/chat/ui/ModelSelector.svelte
@@ -0,0 +1,22 @@
+<script lang="ts">
+ let {
+ models,
+ selected,
+ onSelect,
+ }: {
+ models: readonly string[];
+ selected: string;
+ onSelect: (model: string) => void;
+ } = $props();
+</script>
+
+<select
+ class="select"
+ value={selected}
+ onchange={(e) => onSelect(e.currentTarget.value)}
+ aria-label="Model selector"
+>
+ {#each models as model (model)}
+ <option value={model}>{model}</option>
+ {/each}
+</select>