summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/pages
diff options
context:
space:
mode:
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(() => {