Enhance user routing and layout management. Added support for user-specific routes, including dynamic user ID handling and updated component imports. Improved type definitions and user data mapping in hooks for better user experience.
This commit is contained in:
+11
-9
@@ -1,6 +1,7 @@
|
||||
import { redirect } from '@sveltejs/kit';
|
||||
import PocketBase from 'pocketbase';
|
||||
import type { Handle } from '@sveltejs/kit';
|
||||
import { mapUserRecord } from '$lib/user-from-record';
|
||||
|
||||
const POCKETBASE_URL =
|
||||
process.env.VITE_POCKETBASE_URL ?? 'https://pocketbase.ccllc.pro';
|
||||
@@ -28,15 +29,16 @@ export const handle: Handle = async ({ event, resolve }) => {
|
||||
}
|
||||
|
||||
const record = event.locals.pb.authStore.record;
|
||||
event.locals.user = record
|
||||
? {
|
||||
id: record.id,
|
||||
email: record.email,
|
||||
name: record.name,
|
||||
avatar: record.avatar,
|
||||
darkmode: !!record.darkmode
|
||||
}
|
||||
: null;
|
||||
if (!record) {
|
||||
event.locals.user = null;
|
||||
} else {
|
||||
try {
|
||||
const full = (await event.locals.pb.collection('users').getOne(record.id)) as Record<string, unknown>;
|
||||
event.locals.user = mapUserRecord(full);
|
||||
} catch {
|
||||
event.locals.user = mapUserRecord(record as Record<string, unknown>);
|
||||
}
|
||||
}
|
||||
|
||||
if (!event.locals.user && !isPublicRoute(event.url.pathname)) {
|
||||
const redirectTo = event.url.pathname + event.url.search;
|
||||
|
||||
Reference in New Issue
Block a user