refactor: Update loggedIn store type and streamline login/dashboard navigation logic
Some checks failed
SteamWarCI Build failed

This commit is contained in:
2025-12-17 21:20:46 +01:00
parent 3ffc715929
commit b0a9d56216
3 changed files with 13 additions and 15 deletions

View File

@@ -89,6 +89,6 @@ export class AuthV2Repo {
}
}
export const loggedIn = writable(false);
export const loggedIn = writable<boolean | undefined>(undefined);
export const authV2Repo = readable(new AuthV2Repo());

View File

@@ -1,19 +1,18 @@
---
import DashboardComponent from "@components/DashboardComponent.svelte";
import PageLayout from "@layouts/PageLayout.astro";
import {t} from "astro-i18n";
import { t } from "astro-i18n";
---
<PageLayout title={t("dashboard.page")}>
<script>
import {l} from "../util/util";
import {navigate} from "astro:transitions/client";
import {get} from "svelte/store";
import {loggedIn} from "../components/repo/authv2";
document.addEventListener("astro:page-load", () => {
<script is:inline data-astro-rerun>
import { l } from "../util/util";
import { navigate } from "astro:transitions/client";
import { loggedIn } from "../components/repo/authv2";
loggedIn.subscribe((value) => {
if (window.location.href.endsWith("/dashboard") || window.location.href.endsWith("/dashboard/")) {
if (!get(loggedIn)) {
navigate(l("/login"), {});
if (value === false) {
navigate(l("/dashboard"), { history: "replace" });
}
}
});

View File

@@ -6,15 +6,14 @@ import BackgroundImage from "../components/BackgroundImage.astro";
---
<NavbarLayout title={t("login.page")}>
<script>
<script is:inline data-astro-rerun>
import { l } from "../util/util";
import { navigate } from "astro:transitions/client";
import { loggedIn } from "../components/repo/authv2";
import { get } from "svelte/store";
document.addEventListener("astro:page-load", () => {
loggedIn.subscribe((value) => {
if (window.location.href.endsWith("/login") || window.location.href.endsWith("/login/")) {
if (get(loggedIn)) {
if (value) {
navigate(l("/dashboard"), { history: "replace" });
}
}