summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/static/dartboat.js13
-rw-r--r--web/static/sw.js2
2 files changed, 14 insertions, 1 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, ''));
+}
diff --git a/web/static/sw.js b/web/static/sw.js
index 7ed7a85..f5d699a 100644
--- a/web/static/sw.js
+++ b/web/static/sw.js
@@ -1,5 +1,5 @@
const CACHE_PREFIX = 'dartboat-'
-const CACHE_VERSION = '2';
+const CACHE_VERSION = '3';
const CACHE_NAME = `${CACHE_PREFIX}${CACHE_VERSION}`;
const FILES = [