@clerk/shared
Version:
Internal package utils used by the Clerk SDKs
30 lines (28 loc) • 1.67 kB
JavaScript
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