UNPKG

@clerk/shared

Version:

Internal package utils used by the Clerk SDKs

30 lines (28 loc) • 1.67 kB
import { forwardClerkQueryParams, removeClerkQueryParam } from "./queryParams.mjs"; //#region src/internal/clerk-js/completeSignUpFlow.ts const completeSignUpFlow = ({ signUp, verifyEmailPath, verifyPhonePath, protectCheckPath, continuePath, navigate, handleComplete, redirectUrl, redirectUrlComplete, oidcPrompt }) => { if (signUp.status === "complete") { removeClerkQueryParam("__clerk_ticket"); removeClerkQueryParam("__clerk_invitation_token"); return handleComplete && handleComplete(); } else if (signUp.status === "missing_requirements") { if ((!!signUp.protectCheck || signUp.missingFields.some((mf) => mf === "protect_check")) && protectCheckPath) return navigate(protectCheckPath, { searchParams: forwardClerkQueryParams() }); if (signUp.missingFields.some((mf) => mf === "enterprise_sso")) { if (!redirectUrl || !redirectUrlComplete) throw new Error("completeSignUpFlow: `redirectUrl` and `redirectUrlComplete` are required to continue a sign-up that is missing `enterprise_sso`."); return signUp.authenticateWithRedirect({ strategy: "enterprise_sso", redirectUrl, redirectUrlComplete, continueSignUp: true, oidcPrompt }); } const params = forwardClerkQueryParams(); if (signUp.unverifiedFields?.includes("email_address") && verifyEmailPath) return navigate(verifyEmailPath, { searchParams: params }); if (signUp.unverifiedFields?.includes("phone_number") && verifyPhonePath) return navigate(verifyPhonePath, { searchParams: params }); if (continuePath) return navigate(continuePath, { searchParams: params }); } }; //#endregion export { completeSignUpFlow }; //# sourceMappingURL=completeSignUpFlow.mjs.map