38 lines
1.3 KiB
Plaintext
38 lines
1.3 KiB
Plaintext
---
|
|
import { changeLanguage } from "i18next";
|
|
import moment from "moment";
|
|
import { decodeToken } from "#lib/JsonWebToken";
|
|
import { User } from "#lib/User";
|
|
import UserLayout from "#layouts/UserLayout.astro";
|
|
import AusweisCard from "#components/AusweisCard.svelte";
|
|
import { Verbrauchsausweis } from "#lib/Ausweis/Verbrauchsausweis";
|
|
|
|
changeLanguage("de");
|
|
|
|
const token = Astro.cookies.get("token").value;
|
|
const expires = Astro.cookies.get("expires").number();
|
|
const now = moment().unix();
|
|
if (!token || now > expires) {
|
|
Astro.cookies.delete("token");
|
|
Astro.cookies.delete("expires");
|
|
return Astro.redirect(`/login`);
|
|
}
|
|
const parsed = decodeToken(token);
|
|
const user = await User.fromUID(parsed.uid);
|
|
if (!user) {
|
|
Astro.cookies.delete("token");
|
|
Astro.cookies.delete("expires");
|
|
return Astro.redirect(`/login`);
|
|
}
|
|
---
|
|
|
|
<UserLayout title="Dashboard">
|
|
<h1>Willkommen zurück <b>{user.email}</b></h1>
|
|
|
|
<h2>Ihre Ausweise</h2>
|
|
<div class="grid grid-flow-row grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4">
|
|
<AusweisCard client:load hidden={true} i={0} ausweis={new Verbrauchsausweis()}></AusweisCard>
|
|
<AusweisCard client:load hidden={true} i={1} ausweis={new Verbrauchsausweis()}></AusweisCard>
|
|
<AusweisCard client:load hidden={true} i={2} ausweis={new Verbrauchsausweis()}></AusweisCard>
|
|
</div>
|
|
</UserLayout> |