diff options
| author | Adam <[email protected]> | 2025-10-30 14:41:13 -0500 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-10-30 14:41:15 -0500 |
| commit | 48f50cf55ea1cff07b69bede05e6010ea50778f0 (patch) | |
| tree | cd7ea28588ad96c4467a415e55f5fc005dff90c4 /packages/desktop/src/components | |
| parent | ba13f8da08f54a5362ac5432885be30ac1508203 (diff) | |
| download | opencode-48f50cf55ea1cff07b69bede05e6010ea50778f0.tar.gz opencode-48f50cf55ea1cff07b69bede05e6010ea50778f0.zip | |
wip: desktop work
Diffstat (limited to 'packages/desktop/src/components')
| -rw-r--r-- | packages/desktop/src/components/prompt-input.tsx | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/packages/desktop/src/components/prompt-input.tsx b/packages/desktop/src/components/prompt-input.tsx index d6276c158..f1c19388e 100644 --- a/packages/desktop/src/components/prompt-input.tsx +++ b/packages/desktop/src/components/prompt-input.tsx @@ -71,7 +71,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => { } }) - const { flat, active, onInput, onKeyDown } = useFilteredList<string>({ + const { flat, active, onInput, onKeyDown, refetch } = useFilteredList<string>({ items: local.file.search, key: (x) => x, onSelect: (path) => { @@ -81,6 +81,11 @@ export const PromptInput: Component<PromptInputProps> = (props) => { }, }) + createEffect(() => { + local.model.recent() + refetch() + }) + createEffect( on( () => store.contentParts, @@ -369,16 +374,20 @@ export const PromptInput: Component<PromptInputProps> = (props) => { items={local.model.list()} current={local.model.current()} filterKeys={["provider.name", "name", "id"]} - groupBy={(x) => x.provider.name} + groupBy={(x) => (local.model.recent().includes(x) ? "Recent" : x.provider.name)} sortGroupsBy={(a, b) => { const order = ["opencode", "anthropic", "github-copilot", "openai", "google", "openrouter", "vercel"] + if (a.category === "Recent" && b.category !== "Recent") return -1 + if (b.category === "Recent" && a.category !== "Recent") return 1 const aProvider = a.items[0].provider.id const bProvider = b.items[0].provider.id if (order.includes(aProvider) && !order.includes(bProvider)) return -1 if (!order.includes(aProvider) && order.includes(bProvider)) return 1 return order.indexOf(aProvider) - order.indexOf(bProvider) }} - onSelect={(x) => local.model.set(x ? { modelID: x.id, providerID: x.provider.id } : undefined)} + onSelect={(x) => + local.model.set(x ? { modelID: x.id, providerID: x.provider.id } : undefined, { recent: true }) + } trigger={ <Button as="div" variant="ghost"> {local.model.current()?.name ?? "Select model"} |
