This commit is contained in:
ryan
2026-07-13 15:17:45 +08:00
parent 08e61ce833
commit e0eb4e5975
334 changed files with 17212 additions and 12321 deletions
+16 -16
View File
@@ -1,27 +1,27 @@
"use client"
'use client';
import {useEffect} from "react"
import {usePathname, useRouter} from "next/navigation"
import { useEffect } from 'react';
import { usePathname, useRouter } from 'next/navigation';
import {useUser} from "@/contexts/user-context"
import { useUser } from '@/contexts/user-context';
/** Redirects unauthenticated users to login while allowing the shell to render first. */
export function useAuthRedirect() {
const router = useRouter()
const pathname = usePathname()
const {user, loading} = useUser()
const router = useRouter();
const pathname = usePathname();
const { user, loading } = useUser();
useEffect(() => {
if (loading || user) {
return
return;
}
const queryString = window.location.search
const callbackUrl = queryString ? `${pathname}${queryString}` : pathname
const loginUrl = new URL("/login", window.location.origin)
const queryString = window.location.search;
const callbackUrl = queryString ? `${pathname}${queryString}` : pathname;
const loginUrl = new URL('/login', window.location.origin);
loginUrl.searchParams.set("callbackUrl", callbackUrl)
sessionStorage.setItem("redirect_after_login", callbackUrl)
router.replace(loginUrl.toString())
}, [loading, pathname, router, user])
}
loginUrl.searchParams.set('callbackUrl', callbackUrl);
sessionStorage.setItem('redirect_after_login', callbackUrl);
router.replace(loginUrl.toString());
}, [loading, pathname, router, user]);
}