diff options
| author | Adam <[email protected]> | 2026-03-12 11:32:05 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-12 11:32:05 -0500 |
| commit | dce7eceb2855bc36a41bc49d9c56d5dcc92a8eb2 (patch) | |
| tree | 31cd7d7aa33733579134e9a6cf3a61762599d8e0 /packages/app/src/hooks | |
| parent | 0e077f748352df6d44c811829baff3c26b3436ac (diff) | |
| download | opencode-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.ts | 34 |
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)), + ) + }, } } |
