diff --git a/eslint.config.js b/eslint.config.js
index 5c68edc..4c9cdec 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -30,5 +30,17 @@ export default ts.config(
parser: ts.parser,
},
},
+ },
+ {
+ rules: {
+ '@typescript-eslint/no-unused-vars': [
+ 'error',
+ {
+ argsIgnorePattern: '^_',
+ varsIgnorePattern: '^_',
+ caughtErrorsIgnorePattern: '^_',
+ },
+ ],
+ },
}
);
diff --git a/src/lib/components/Navigation/Navbar/Navbar.svelte b/src/lib/components/Navigation/Navbar/Navbar.svelte
index c16b463..f3f1bc8 100644
--- a/src/lib/components/Navigation/Navbar/Navbar.svelte
+++ b/src/lib/components/Navigation/Navbar/Navbar.svelte
@@ -1,11 +1,13 @@
Hestia
{title}
- Welcome!
+ {greeting}
\ No newline at end of file
+
diff --git a/src/routes/app/+layout.server.ts b/src/routes/app/+layout.server.ts
new file mode 100644
index 0000000..dfefb8f
--- /dev/null
+++ b/src/routes/app/+layout.server.ts
@@ -0,0 +1,26 @@
+import { prisma } from '$lib/server/prisma';
+import { redirect } from '@sveltejs/kit';
+import dayjs from 'dayjs';
+
+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;
+ return {
+ user: rest,
+ };
+}
\ No newline at end of file
diff --git a/src/routes/app/+layout.svelte b/src/routes/app/+layout.svelte
index c14e9a4..8429527 100644
--- a/src/routes/app/+layout.svelte
+++ b/src/routes/app/+layout.svelte
@@ -1,8 +1,17 @@
-
-{@render children()}
+
+{@render children()}
\ No newline at end of file
diff --git a/src/routes/app/+page.svelte b/src/routes/app/+page.svelte
index e69de29..0fbba99 100644
--- a/src/routes/app/+page.svelte
+++ b/src/routes/app/+page.svelte
@@ -0,0 +1,2 @@
+