summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/hooks
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-12 11:32:05 -0500
committerGitHub <[email protected]>2026-03-12 11:32:05 -0500
commitdce7eceb2855bc36a41bc49d9c56d5dcc92a8eb2 (patch)
tree31cd7d7aa33733579134e9a6cf3a61762599d8e0 /packages/app/src/hooks
parent0e077f748352df6d44c811829baff3c26b3436ac (diff)
downloadopencode-dce7eceb2855bc36a41bc49d9c56d5dcc92a8eb2.tar.gz
opencode-dce7eceb2855bc36a41bc49d9c56d5dcc92a8eb2.zip
chore: cleanup (#17197)
Diffstat (limited to 'packages/app/src/hooks')
-rw-r--r--packages/app/src/hooks/use-providers.ts34
1 files changed, 18 insertions, 16 deletions
diff --git a/packages/app/src/hooks/use-providers.ts b/packages/app/src/hooks/use-providers.ts
index 9ef5272ef..a25f8b4b2 100644
--- a/packages/app/src/hooks/use-providers.ts
+++ b/packages/app/src/hooks/use-providers.ts
@@ -18,25 +18,27 @@ const popularProviderSet = new Set(popularProviders)
export function useProviders() {
const globalSync = useGlobalSync()
const params = useParams()
- const currentDirectory = createMemo(() => decode64(params.dir) ?? "")
- const providers = createMemo(() => {
- if (currentDirectory()) {
- const [projectStore] = globalSync.child(currentDirectory())
+ const dir = createMemo(() => decode64(params.dir) ?? "")
+ const providers = () => {
+ if (dir()) {
+ const [projectStore] = globalSync.child(dir())
return projectStore.provider
}
return globalSync.data.provider
- })
- const connectedIDs = createMemo(() => new Set(providers().connected))
- const connected = createMemo(() => providers().all.filter((p) => connectedIDs().has(p.id)))
- const paid = createMemo(() =>
- connected().filter((p) => p.id !== "opencode" || Object.values(p.models).find((m) => m.cost?.input)),
- )
- const popular = createMemo(() => providers().all.filter((p) => popularProviderSet.has(p.id)))
+ }
return {
- all: createMemo(() => providers().all),
- default: createMemo(() => providers().default),
- popular,
- connected,
- paid,
+ all: () => providers().all,
+ default: () => providers().default,
+ popular: () => providers().all.filter((p) => popularProviderSet.has(p.id)),
+ connected: () => {
+ const connected = new Set(providers().connected)
+ return providers().all.filter((p) => connected.has(p.id))
+ },
+ paid: () => {
+ const connected = new Set(providers().connected)
+ return providers().all.filter(
+ (p) => connected.has(p.id) && (p.id !== "opencode" || Object.values(p.models).some((m) => m.cost?.input)),
+ )
+ },
}
}