diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 2493a94de..c4cbc9cfd 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -36,6 +36,8 @@ let loaded = false; const BREAKPOINT = 768; + let wakeLock = null; + onMount(async () => { theme.set(localStorage.theme); @@ -50,6 +52,31 @@ window.addEventListener('resize', onResize); + const setWakeLock = async () => { + try { + wakeLock = await navigator.wakeLock.request('screen'); + } catch (err) { + // The Wake Lock request has failed - usually system related, such as battery. + console.log(err); + } + + wakeLock.addEventListener('release', () => { + // the wake lock has been released + console.log('Wake Lock released'); + }); + }; + + if ('wakeLock' in navigator) { + await setWakeLock(); + + document.addEventListener('visibilitychange', async () => { + // Re-request the wake lock if the document becomes visible + if (wakeLock !== null && document.visibilityState === 'visible') { + await setWakeLock(); + } + }); + } + let backendConfig = null; try { backendConfig = await getBackendConfig();