UNPKG

aau-auth-kit-ui

Version:

Plug & play shadcn/ui components for aau-auth-kit with Next.js integration

30 lines (24 loc) 901 B
import { useContext, useEffect } from "react"; import { AuthUIContext } from "../lib/auth-ui-provider"; import type { AuthView } from "../lib/auth-view-paths"; interface AuthenticateOptions { authView?: AuthView; } export function useAuthenticateAdmin(options?: AuthenticateOptions) { const { authView = "signIn" } = options ?? {}; const { hooks: { useSession }, basePath, viewPaths, replace, adminRole, } = useContext(AuthUIContext); const { data: sessionData, isPending } = useSession(); const isAdmin = sessionData?.user?.role === adminRole; useEffect(() => { if (isPending || sessionData || isAdmin) return; replace( `${basePath}/${viewPaths[authView]}?redirectTo=${window.location.href.replace(window.location.origin, "")}` ); }, [isPending, sessionData, basePath, viewPaths, replace, authView, isAdmin]); }