summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components/dialog-select-model.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-select-model.tsx
parent2e6ac8ff49eabcb1b62c1bd504338e7449f80c6e (diff)
downloadopencode-c7760b433b1bdbcaed7e7cd55d53b5b331f0f0fa.tar.gz
opencode-c7760b433b1bdbcaed7e7cd55d53b5b331f0f0fa.zip
fix(app): more startup perf (#19288)
Diffstat (limited to 'packages/app/src/components/dialog-select-model.tsx')
-rw-r--r--packages/app/src/components/dialog-select-model.tsx35
1 files changed, 20 insertions, 15 deletions
diff --git a/packages/app/src/components/dialog-select-model.tsx b/packages/app/src/components/dialog-select-model.tsx
index 3654aab85..cb688c30a 100644
--- a/packages/app/src/components/dialog-select-model.tsx
+++ b/packages/app/src/components/dialog-select-model.tsx
@@ -10,8 +10,6 @@ import { Tag } from "@opencode-ai/ui/tag"
import { Dialog } from "@opencode-ai/ui/dialog"
import { List } from "@opencode-ai/ui/list"
import { Tooltip } from "@opencode-ai/ui/tooltip"
-import { DialogSelectProvider } from "./dialog-select-provider"
-import { DialogManageModels } from "./dialog-manage-models"
import { ModelTooltip } from "./model-tooltip"
import { useLanguage } from "@/context/language"
@@ -107,12 +105,16 @@ export function ModelSelectorPopover(props: {
const handleManage = () => {
setStore("open", false)
- dialog.show(() => <DialogManageModels />)
+ void import("./dialog-manage-models").then((x) => {
+ dialog.show(() => <x.DialogManageModels />)
+ })
}
const handleConnectProvider = () => {
setStore("open", false)
- dialog.show(() => <DialogSelectProvider />)
+ void import("./dialog-select-provider").then((x) => {
+ dialog.show(() => <x.DialogSelectProvider />)
+ })
}
const language = useLanguage()
@@ -193,26 +195,29 @@ export const DialogSelectModel: Component<{ provider?: string; model?: ModelStat
const dialog = useDialog()
const language = useLanguage()
+ const provider = () => {
+ void import("./dialog-select-provider").then((x) => {
+ dialog.show(() => <x.DialogSelectProvider />)
+ })
+ }
+
+ const manage = () => {
+ void import("./dialog-manage-models").then((x) => {
+ dialog.show(() => <x.DialogManageModels />)
+ })
+ }
+
return (
<Dialog
title={language.t("dialog.model.select.title")}
action={
- <Button
- class="h-7 -my-1 text-14-medium"
- icon="plus-small"
- tabIndex={-1}
- onClick={() => dialog.show(() => <DialogSelectProvider />)}
- >
+ <Button class="h-7 -my-1 text-14-medium" icon="plus-small" tabIndex={-1} onClick={provider}>
{language.t("command.provider.connect")}
</Button>
}
>
<ModelList provider={props.provider} model={props.model} onSelect={() => dialog.close()} />
- <Button
- variant="ghost"
- class="ml-3 mt-5 mb-6 text-text-base self-start"
- onClick={() => dialog.show(() => <DialogManageModels />)}
- >
+ <Button variant="ghost" class="ml-3 mt-5 mb-6 text-text-base self-start" onClick={manage}>
{language.t("dialog.model.manage")}
</Button>
</Dialog>