summaryrefslogtreecommitdiff
path: root/src/server/web
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/web')
-rw-r--r--src/server/web/index.ts4
-rw-r--r--src/server/web/views/flash.pug20
2 files changed, 24 insertions, 0 deletions
diff --git a/src/server/web/index.ts b/src/server/web/index.ts
index 7f2ecde914..fb3f056116 100644
--- a/src/server/web/index.ts
+++ b/src/server/web/index.ts
@@ -327,6 +327,10 @@ const override = (source: string, target: string, depth: number = 0) =>
router.get('/othello', async ctx => ctx.redirect(override(ctx.URL.pathname, 'games/reversi', 1)));
router.get('/reversi', async ctx => ctx.redirect(override(ctx.URL.pathname, 'games')));
+router.get('/flash', async ctx => {
+ await ctx.render('flash');
+});
+
// Render base html for all requests
router.get('*', async ctx => {
const meta = await fetchMeta();
diff --git a/src/server/web/views/flash.pug b/src/server/web/views/flash.pug
new file mode 100644
index 0000000000..f279c23605
--- /dev/null
+++ b/src/server/web/views/flash.pug
@@ -0,0 +1,20 @@
+doctype html
+
+html
+ script.
+ localStorage.removeItem('locale');
+
+ try {
+ navigator.serviceWorker.controller.postMessage('clear');
+
+ navigator.serviceWorker.getRegistrations().then(registrations => {
+ return Promise.all(registrations.map(registration => registration.unregister()));
+ }).then(() => {
+ location = '/';
+ });
+ } catch (e) {
+ console.error(e);
+ setTimeout(() => {
+ location = '/';
+ }, 10000)
+ }