summaryrefslogtreecommitdiff
path: root/web/static/dartboat.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/static/dartboat.js')
-rw-r--r--web/static/dartboat.js13
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, ''));
+}