summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/components
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-10-30 14:41:13 -0500
committerAdam <[email protected]>2025-10-30 14:41:15 -0500
commit48f50cf55ea1cff07b69bede05e6010ea50778f0 (patch)
treecd7ea28588ad96c4467a415e55f5fc005dff90c4 /packages/desktop/src/components
parentba13f8da08f54a5362ac5432885be30ac1508203 (diff)
downloadopencode-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.tsx15
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"}