summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components/dialog-connect-provider.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-26 13:41:22 -0500
committerGitHub <[email protected]>2026-03-26 13:41:22 -0500
commitc7760b433b1bdbcaed7e7cd55d53b5b331f0f0fa (patch)
tree4d1a865b8890dc30767b66293923c15e2b3f6d24 /packages/app/src/components/dialog-connect-provider.tsx
parent2e6ac8ff49eabcb1b62c1bd504338e7449f80c6e (diff)
downloadopencode-c7760b433b1bdbcaed7e7cd55d53b5b331f0f0fa.tar.gz
opencode-c7760b433b1bdbcaed7e7cd55d53b5b331f0f0fa.zip
fix(app): more startup perf (#19288)
Diffstat (limited to 'packages/app/src/components/dialog-connect-provider.tsx')
-rw-r--r--packages/app/src/components/dialog-connect-provider.tsx19
1 files changed, 15 insertions, 4 deletions
diff --git a/packages/app/src/components/dialog-connect-provider.tsx b/packages/app/src/components/dialog-connect-provider.tsx
index e7eaa1fb2..41225d02a 100644
--- a/packages/app/src/components/dialog-connect-provider.tsx
+++ b/packages/app/src/components/dialog-connect-provider.tsx
@@ -15,13 +15,20 @@ import { Link } from "@/components/link"
import { useGlobalSDK } from "@/context/global-sdk"
import { useGlobalSync } from "@/context/global-sync"
import { useLanguage } from "@/context/language"
-import { DialogSelectProvider } from "./dialog-select-provider"
+import { useProviders } from "@/hooks/use-providers"
export function DialogConnectProvider(props: { provider: string }) {
const dialog = useDialog()
const globalSync = useGlobalSync()
const globalSDK = useGlobalSDK()
const language = useLanguage()
+ const providers = useProviders()
+
+ const all = () => {
+ void import("./dialog-select-provider").then((x) => {
+ dialog.show(() => <x.DialogSelectProvider />)
+ })
+ }
const alive = { value: true }
const timer = { current: undefined as ReturnType<typeof setTimeout> | undefined }
@@ -33,7 +40,11 @@ export function DialogConnectProvider(props: { provider: string }) {
timer.current = undefined
})
- const provider = createMemo(() => globalSync.data.provider.all.find((x) => x.id === props.provider)!)
+ const provider = createMemo(
+ () =>
+ providers.all().find((x) => x.id === props.provider) ??
+ globalSync.data.provider.all.find((x) => x.id === props.provider)!,
+ )
const fallback = createMemo<ProviderAuthMethod[]>(() => [
{
type: "api" as const,
@@ -333,7 +344,7 @@ export function DialogConnectProvider(props: { provider: string }) {
function goBack() {
if (methods().length === 1) {
- dialog.show(() => <DialogSelectProvider />)
+ all()
return
}
if (store.authorization) {
@@ -344,7 +355,7 @@ export function DialogConnectProvider(props: { provider: string }) {
dispatch({ type: "method.reset" })
return
}
- dialog.show(() => <DialogSelectProvider />)
+ all()
}
function MethodSelection() {