summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/pages
diff options
context:
space:
mode:
authoradamelmore <[email protected]>2026-01-27 08:30:23 -0600
committeradamelmore <[email protected]>2026-01-27 11:38:35 -0600
commit2f5a238b511e3ac4d8235da4d6e7fdbaf06c9b84 (patch)
tree1bcbd4d51758721d6cbcc3d36e97c6a76ceef5c9 /packages/app/src/pages
parent173faca3c6a8d29e4502fbedaa7a56cdddd05c10 (diff)
downloadopencode-2f5a238b511e3ac4d8235da4d6e7fdbaf06c9b84.tar.gz
opencode-2f5a238b511e3ac4d8235da4d6e7fdbaf06c9b84.zip
feat(app): update settings in general settings
Diffstat (limited to 'packages/app/src/pages')
-rw-r--r--packages/app/src/pages/layout.tsx23
1 files changed, 20 insertions, 3 deletions
diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx
index 15557dedb..82a3fa6c9 100644
--- a/packages/app/src/pages/layout.tsx
+++ b/packages/app/src/pages/layout.tsx
@@ -332,6 +332,7 @@ export default function Layout(props: ParentProps) {
if (!platform.checkUpdate || !platform.update || !platform.restart) return
let toastId: number | undefined
+ let interval: ReturnType<typeof setInterval> | undefined
async function pollUpdate() {
const { updateAvailable, version } = await platform.checkUpdate!()
@@ -358,9 +359,25 @@ export default function Layout(props: ParentProps) {
}
}
- pollUpdate()
- const interval = setInterval(pollUpdate, 10 * 60 * 1000)
- onCleanup(() => clearInterval(interval))
+ createEffect(() => {
+ if (!settings.ready()) return
+
+ if (!settings.updates.startup()) {
+ if (interval === undefined) return
+ clearInterval(interval)
+ interval = undefined
+ return
+ }
+
+ if (interval !== undefined) return
+ void pollUpdate()
+ interval = setInterval(pollUpdate, 10 * 60 * 1000)
+ })
+
+ onCleanup(() => {
+ if (interval === undefined) return
+ clearInterval(interval)
+ })
})
onMount(() => {