UNPKG

aau-auth-kit-ui

Version:

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

30 lines (23 loc) 863 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; enabled?: boolean; } export function useAuthenticate(options?: AuthenticateOptions) { const { authView = "signIn", enabled = true } = options ?? {}; const { hooks: { useSession }, basePath, viewPaths, replace, } = useContext(AuthUIContext); const { data: sessionData, isPending } = useSession(); useEffect(() => { if (!enabled || isPending || sessionData) return; replace( `${basePath}/${viewPaths[authView]}?redirectTo=${window.location.href.replace(window.location.origin, "")}` ); }, [isPending, sessionData, basePath, viewPaths, replace, authView, enabled]); }