19 implement i18n (#29)

* init paraglide

* change export

* shared session check

* message param

* format

* check user is present

A session can exist without a user, if the user was recently deleted

* wtf

* lol bad redirect code
This commit is contained in:
Baobeld 2024-12-20 11:41:01 -05:00 committed by GitHub
parent 264f6d775d
commit 8969e2b8aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 84 additions and 49 deletions

View file

@ -1,4 +1,6 @@
<script lang="ts">
import { i18n } from '$lib/i18n';
import { ParaglideJS } from '@inlang/paraglide-sveltekit';
import '../app.css';
let { children } = $props();
</script>
@ -7,8 +9,10 @@
{@render children()}
</div>
<style>
.layout {
@apply h-screen w-screen bg-base-100;
}
</style>
<ParaglideJS {i18n}>
<style>
.layout {
@apply h-screen w-screen bg-base-100;
}
</style>
</ParaglideJS>

View file

@ -1,18 +1,5 @@
import { prisma } from '$lib/server/prisma';
import { redirect } from '@sveltejs/kit';
import { validateSession } from '$lib/server/auth';
export async function load(event) {
const sessionId = event.cookies.get('auth_session');
if (!sessionId) {
redirect(303, '/login');
}
const user = await prisma.session.findUnique({
where: {
id: sessionId,
},
});
if (!user) {
redirect(300, '/login');
}
return {};
}
await validateSession(event);
}

View file

@ -1,25 +1,9 @@
import { prisma } from '$lib/server/prisma';
import { redirect } from '@sveltejs/kit';
import dayjs from 'dayjs';
import { validateSession } from '$lib/server/auth';
export async function load(event) {
const sessionId = event.cookies.get('auth_session');
if (!sessionId) {
redirect(300, '/login');
}
const session = await prisma.session.findUnique({
where: { id: sessionId },
include: { user: true },
});
if (!session) {
redirect(300, '/login');
}
const expiry = session.expiresAt;
if (dayjs(expiry).isBefore(dayjs())) {
redirect(300, '/login');
}
const { password: _, ...rest } = session.user;
const {
user: { password: _, ...rest },
} = await validateSession(event);
return {
user: rest,
};

View file

@ -14,4 +14,4 @@
</script>
<Navbar title="Svelte" username={data.user.name} />
{@render children()}
{@render children()}