From d682d6d88153363ff7d6fadd2d47db2997dc1e65 Mon Sep 17 00:00:00 2001 From: ThaUnknown <6506529+ThaUnknown@users.noreply.github.com> Date: Tue, 20 Aug 2024 17:10:59 +0200 Subject: [PATCH] feat: #470 use a router for navigation, support backwards/forwards navigation removed fork's back button support --- common/App.svelte | 27 +++++++++++++++++++++++++++ common/Router.svelte | 28 +--------------------------- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/common/App.svelte b/common/App.svelte index 48a4522..61b6fc1 100644 --- a/common/App.svelte +++ b/common/App.svelte @@ -14,7 +14,34 @@ page.set('schedule') }) + let ignoreNext = false + function addPage (value, type) { + if (ignoreNext) { + ignoreNext = false + return + } + history.pushState({ type, value }, '', './?id=' + Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString()) + } + page.subscribe((value) => { + addPage(value, 'page') + }) + view.subscribe((value) => { + addPage(value, 'view') + }) + addPage('home', 'page') + + window.addEventListener('popstate', e => { + const { state } = e + if (!state) return + ignoreNext = true + view.set(null) + if (state.type === 'page') { + page.set(state.value) + } else { + view.set(state.value) + } + })