26 lines
600 B
TypeScript
26 lines
600 B
TypeScript
import { writable } from "svelte/store";
|
|
|
|
type Pages = "personal-info" | "security";
|
|
|
|
|
|
function getCurrentPage(): Pages | undefined {
|
|
let hash = window.location.hash;
|
|
if (hash.length > 0) {
|
|
hash = hash.substring(1);
|
|
if (hash === "personal-info" || hash === "security") {
|
|
return hash;
|
|
}
|
|
}
|
|
}
|
|
|
|
export const CurrentPage = writable<Pages>(getCurrentPage() ?? "personal-info");
|
|
|
|
window.addEventListener("hashchange", () => {
|
|
CurrentPage.set(getCurrentPage() ?? "personal-info");
|
|
});
|
|
|
|
export function navigateTo(page: Pages) {
|
|
window.location.hash = "#" + page;
|
|
}
|
|
|