summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-14 21:35:13 -0600
committerAdam <[email protected]>2025-12-14 21:38:59 -0600
commitba16bfdf3d52da982dc984c77bbf2ec7768b07d6 (patch)
treeb450b67e7809b2d533ab6f3ad8f9c52e8ec33fc4 /packages/desktop/src
parentad5614bbb91004855608fc98f3d0e75033d52ccf (diff)
downloadopencode-ba16bfdf3d52da982dc984c77bbf2ec7768b07d6.tar.gz
opencode-ba16bfdf3d52da982dc984c77bbf2ec7768b07d6.zip
wip(desktop): progress
Diffstat (limited to 'packages/desktop/src')
-rw-r--r--packages/desktop/src/components/dialog-manage-models.tsx17
-rw-r--r--packages/desktop/src/components/dialog-select-model.tsx5
-rw-r--r--packages/desktop/src/context/local.tsx20
3 files changed, 21 insertions, 21 deletions
diff --git a/packages/desktop/src/components/dialog-manage-models.tsx b/packages/desktop/src/components/dialog-manage-models.tsx
index de1c3cb15..5765a8e1a 100644
--- a/packages/desktop/src/components/dialog-manage-models.tsx
+++ b/packages/desktop/src/components/dialog-manage-models.tsx
@@ -27,18 +27,21 @@ export const DialogManageModels: Component = () => {
}}
onSelect={(x) => {
if (!x) return
- local.model.setVisibility({ modelID: x.id, providerID: x.provider.id }, !x.visible)
+ const visible = local.model.visible({ modelID: x.id, providerID: x.provider.id })
+ local.model.setVisibility({ modelID: x.id, providerID: x.provider.id }, !visible)
}}
>
{(i) => (
<div class="w-full flex items-center justify-between gap-x-2.5">
<span>{i.name}</span>
- <Switch
- checked={!!i.visible}
- onChange={(checked) => {
- local.model.setVisibility({ modelID: i.id, providerID: i.provider.id }, checked)
- }}
- />
+ <div onClick={(e) => e.stopPropagation()}>
+ <Switch
+ checked={!!local.model.visible({ modelID: i.id, providerID: i.provider.id })}
+ onChange={(checked) => {
+ local.model.setVisibility({ modelID: i.id, providerID: i.provider.id }, checked)
+ }}
+ />
+ </div>
</div>
)}
</List>
diff --git a/packages/desktop/src/components/dialog-select-model.tsx b/packages/desktop/src/components/dialog-select-model.tsx
index 805db47fe..f0b2e6db9 100644
--- a/packages/desktop/src/components/dialog-select-model.tsx
+++ b/packages/desktop/src/components/dialog-select-model.tsx
@@ -13,11 +13,10 @@ export const DialogSelectModel: Component<{ provider?: string }> = (props) => {
const local = useLocal()
const dialog = useDialog()
- let closeButton!: HTMLButtonElement
const models = createMemo(() =>
local.model
.list()
- .filter((m) => m.visible)
+ .filter((m) => local.model.visible({ modelID: m.id, providerID: m.provider.id }))
.filter((m) => (props.provider ? m.provider.id === props.provider : true)),
)
@@ -58,7 +57,7 @@ export const DialogSelectModel: Component<{ provider?: string }> = (props) => {
local.model.set(x ? { modelID: x.id, providerID: x.provider.id } : undefined, {
recent: true,
})
- closeButton.click()
+ dialog.clear()
}}
>
{(i) => (
diff --git a/packages/desktop/src/context/local.tsx b/packages/desktop/src/context/local.tsx
index 0970178ea..56154c5ba 100644
--- a/packages/desktop/src/context/local.tsx
+++ b/packages/desktop/src/context/local.tsx
@@ -132,10 +132,10 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
Object.values(p.models).map((m) => ({
...m,
provider: p,
- user: store.user.find((x) => x.modelID === m.id && x.providerID === p.id),
})),
),
)
+
const latest = createMemo(() =>
pipe(
available(),
@@ -163,10 +163,6 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
...m,
name: m.name.replace("(latest)", "").trim(),
latest: m.name.includes("(latest)"),
- visible:
- m.user?.visibility !== "hide" &&
- (latest().find((x) => x.modelID === m.id && x.providerID === m.provider.id) ||
- store.user.find((x) => x.modelID === m.id && x.providerID === m.provider.id)?.visibility === "show"),
})),
)
@@ -241,7 +237,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
if (index >= 0) {
setStore("user", index, { visibility })
} else {
- setStore("user", (prev) => [...prev, { ...model, visibility }])
+ setStore("user", store.user.length, { ...model, visibility })
}
}
@@ -260,11 +256,13 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
}
})
},
- show(model: ModelKey) {
- updateVisibility(model, "show")
- },
- hide(model: ModelKey) {
- updateVisibility(model, "hide")
+ visible(model: ModelKey) {
+ const user = store.user.find((x) => x.modelID === model.modelID && x.providerID === model.providerID)
+ return (
+ user?.visibility !== "hide" &&
+ (latest().find((x) => x.modelID === model.modelID && x.providerID === model.providerID) ||
+ user?.visibility === "show")
+ )
},
setVisibility(model: ModelKey, visible: boolean) {
updateVisibility(model, visible ? "show" : "hide")