24 lines
779 B
TypeScript
24 lines
779 B
TypeScript
import { useProfileSession } from '#imports'
|
|
|
|
export default defineNuxtRouteMiddleware(async (to) => {
|
|
const { ensureSession, fetchCurrentProfile, activeProfile } = useProfileSession()
|
|
await ensureSession()
|
|
|
|
const rawPath = to?.path ?? ''
|
|
const normalizedPath = rawPath.startsWith('/') ? rawPath : `/${rawPath}`
|
|
const fullPath = to?.fullPath ?? normalizedPath
|
|
const routeName = typeof to?.name === 'string' ? to.name : ''
|
|
const isProfilesRoute =
|
|
normalizedPath.startsWith('/profiles') ||
|
|
fullPath.startsWith('/profiles') ||
|
|
routeName.startsWith('profiles')
|
|
|
|
if (process.client && !activeProfile.value) {
|
|
await fetchCurrentProfile()
|
|
}
|
|
|
|
if (process.client && !activeProfile.value && !isProfilesRoute) {
|
|
return navigateTo('/profiles')
|
|
}
|
|
})
|