summaryrefslogtreecommitdiffhomepage
path: root/packages/app
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-30 10:31:48 -0600
committerAdam <[email protected]>2025-12-30 10:31:48 -0600
commit72ab4260eed8da8d10a2749ea164982943fe1cd4 (patch)
tree2e89343d0166f39aadfe79a88d1f196996169aeb /packages/app
parent9e9b4a0555d308718cd2cb62df66a37db593d7f1 (diff)
downloadopencode-72ab4260eed8da8d10a2749ea164982943fe1cd4.tar.gz
opencode-72ab4260eed8da8d10a2749ea164982943fe1cd4.zip
fix(desktop): don't persist fallback server urls
Diffstat (limited to 'packages/app')
-rw-r--r--packages/app/src/components/dialog-select-server.tsx11
-rw-r--r--packages/app/src/context/server.tsx24
2 files changed, 24 insertions, 11 deletions
diff --git a/packages/app/src/components/dialog-select-server.tsx b/packages/app/src/components/dialog-select-server.tsx
index 78f3189b2..99b1c4278 100644
--- a/packages/app/src/components/dialog-select-server.tsx
+++ b/packages/app/src/components/dialog-select-server.tsx
@@ -63,9 +63,14 @@ export function DialogSelectServer() {
onCleanup(() => clearInterval(interval))
})
- function select(value: string) {
- if (store.status[value]?.healthy === false) return
+ function select(value: string, persist?: boolean) {
+ if (!persist && store.status[value]?.healthy === false) return
dialog.close()
+ if (persist) {
+ server.add(value)
+ navigate("/")
+ return
+ }
server.setActive(value)
navigate("/")
}
@@ -87,7 +92,7 @@ export function DialogSelectServer() {
}
setStore("url", "")
- select(value)
+ select(value, true)
}
return (
diff --git a/packages/app/src/context/server.tsx b/packages/app/src/context/server.tsx
index 8edbc0f61..7679cb241 100644
--- a/packages/app/src/context/server.tsx
+++ b/packages/app/src/context/server.tsx
@@ -48,6 +48,19 @@ export const { use: useServer, provider: ServerProvider } = createSimpleContext(
function setActive(input: string) {
const url = normalizeServerUrl(input)
if (!url) return
+ setActiveRaw(url)
+ }
+
+ function add(input: string) {
+ const url = normalizeServerUrl(input)
+ if (!url) return
+
+ const fallback = normalizeServerUrl(props.defaultUrl)
+ if (fallback && url === fallback) {
+ setActiveRaw(url)
+ return
+ }
+
batch(() => {
if (!store.list.includes(url)) {
setStore("list", store.list.length, url)
@@ -71,15 +84,10 @@ export const { use: useServer, provider: ServerProvider } = createSimpleContext(
createEffect(() => {
if (!ready()) return
+ if (active()) return
const url = normalizeServerUrl(props.defaultUrl)
if (!url) return
-
- batch(() => {
- if (!store.list.includes(url)) {
- setStore("list", store.list.length, url)
- }
- setActiveRaw(url)
- })
+ setActiveRaw(url)
})
const isReady = createMemo(() => ready() && !!active())
@@ -123,7 +131,7 @@ export const { use: useServer, provider: ServerProvider } = createSimpleContext(
return store.list
},
setActive,
- add: setActive,
+ add,
remove,
projects: {
list: projectsList,