Files
online-energieausweis/src/pages/user/index.astro
2023-08-31 23:12:18 +06:00

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>