import { useCallback } from "react"; import { signIn, signOut } from "@auth/create/react"; function useAuth() { const callbackUrl = typeof window !== "undefined" ? new URLSearchParams(window.location.search).get("callbackUrl") : null; const signInWithCredentials = useCallback( (options) => { return signIn("credentials-signin", { ...options, callbackUrl: callbackUrl ?? options.callbackUrl, }); }, [callbackUrl], ); const signUpWithCredentials = useCallback( (options) => { return signIn("credentials-signup", { ...options, callbackUrl: callbackUrl ?? options.callbackUrl, }); }, [callbackUrl], ); const signInWithGoogle = useCallback( (options) => { return signIn("google", { ...options, callbackUrl: callbackUrl ?? options.callbackUrl, }); }, [callbackUrl], ); // Align Facebook behavior with other providers so callbackUrl overrides work consistently const signInWithFacebook = useCallback( (options) => { return signIn("facebook", { ...options, callbackUrl: callbackUrl ?? options.callbackUrl, }); }, [callbackUrl], ); const signInWithTwitter = useCallback((options) => { return signIn("twitter", options); }, []); return { signInWithCredentials, signUpWithCredentials, signInWithGoogle, signInWithFacebook, signInWithTwitter, signOut, }; } export default useAuth;