diff options
Diffstat (limited to 'web/static/dartboat.js')
-rw-r--r-- | web/static/dartboat.js | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/web/static/dartboat.js b/web/static/dartboat.js index 39e0371..6051b7e 100644 --- a/web/static/dartboat.js +++ b/web/static/dartboat.js @@ -197,3 +197,16 @@ document.addEventListener('keydown', e => { if ('serviceWorker' in navigator) navigator.serviceWorker.register('sw.js'); + +// disable back button when installed as a PWA. a single click exits the app, +// destroying match state without confirmation, so we must resort to this. +if (window.matchMedia('(display-mode: standalone)').matches) { + window.addEventListener('load', () => { + if (!history.state) { + history.replaceState(true, ''); + history.pushState(true, ''); + } + }); + + window.addEventListener('popstate', () => history.pushState(true, '')); +} |