diff options
| author | adamelmore <[email protected]> | 2026-01-27 08:30:23 -0600 |
|---|---|---|
| committer | adamelmore <[email protected]> | 2026-01-27 11:38:35 -0600 |
| commit | 2f5a238b511e3ac4d8235da4d6e7fdbaf06c9b84 (patch) | |
| tree | 1bcbd4d51758721d6cbcc3d36e97c6a76ceef5c9 /packages/app/src/pages | |
| parent | 173faca3c6a8d29e4502fbedaa7a56cdddd05c10 (diff) | |
| download | opencode-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.tsx | 23 |
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(() => { |
