22 lines
714 B
TypeScript
22 lines
714 B
TypeScript
import { useProfileSession } from '#imports'
|
|
|
|
export default defineNuxtRouteMiddleware(async (to) => {
|
|
const { ensureSession, 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 (!activeProfile.value && !isProfilesRoute) {
|
|
if (!normalizedPath.startsWith('/profiles')) {
|
|
return navigateTo('/profiles')
|
|
}
|
|
}
|
|
})
|