mirror of
https://github.com/formbricks/formbricks.git
synced 2025-12-30 02:10:12 -06:00
Compare commits
2 Commits
main
...
ReviewBot/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d9a26c6f79 | ||
|
|
b141561c96 |
@@ -49,34 +49,48 @@ export const SigninForm = ({
|
|||||||
|
|
||||||
const formMethods = useForm<TSigninFormState>();
|
const formMethods = useForm<TSigninFormState>();
|
||||||
|
|
||||||
|
const handleSignInResponse = async (data: TSigninFormState) => {
|
||||||
|
const signInResponse = await signIn("credentials", {
|
||||||
|
callbackUrl: searchParams?.get("callbackUrl") || "/",
|
||||||
|
email: data.email.toLowerCase(),
|
||||||
|
password: data.password,
|
||||||
|
...(totpLogin && { totpCode: data.totpCode }),
|
||||||
|
...(totpBackup && { backupCode: data.backupCode }),
|
||||||
|
redirect: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
return signInResponse;
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSignInError = (signInResponse: any, data: TSigninFormState) => {
|
||||||
|
if (signInResponse?.error === "second factor required") {
|
||||||
|
setTotpLogin(true);
|
||||||
|
setLoggingIn(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (signInResponse?.error === "Email Verification is Pending") {
|
||||||
|
router.push(`/auth/verification-requested?email=${data.email}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (signInResponse?.error) {
|
||||||
|
setLoggingIn(false);
|
||||||
|
setSignInError(signInResponse.error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!signInResponse?.error) {
|
||||||
|
router.push(searchParams?.get("callbackUrl") || "/");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const onSubmit: SubmitHandler<TSigninFormState> = async (data) => {
|
const onSubmit: SubmitHandler<TSigninFormState> = async (data) => {
|
||||||
setLoggingIn(true);
|
setLoggingIn(true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const signInResponse = await signIn("credentials", {
|
const signInResponse = await handleSignInResponse(data);
|
||||||
callbackUrl: searchParams?.get("callbackUrl") || "/",
|
handleSignInError(signInResponse, data);
|
||||||
email: data.email.toLowerCase(),
|
|
||||||
password: data.password,
|
|
||||||
...(totpLogin && { totpCode: data.totpCode }),
|
|
||||||
...(totpBackup && { backupCode: data.backupCode }),
|
|
||||||
redirect: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (signInResponse?.error === "second factor required") {
|
|
||||||
setTotpLogin(true);
|
|
||||||
setLoggingIn(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (signInResponse?.error) {
|
|
||||||
setLoggingIn(false);
|
|
||||||
setSignInError(signInResponse.error);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!signInResponse?.error) {
|
|
||||||
router.push(searchParams?.get("callbackUrl") || "/");
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const errorMessage = error.toString();
|
const errorMessage = error.toString();
|
||||||
const errorFeedback = errorMessage.includes("Invalid URL")
|
const errorFeedback = errorMessage.includes("Invalid URL")
|
||||||
@@ -87,15 +101,6 @@ export const SigninForm = ({
|
|||||||
setLoggingIn(false);
|
setLoggingIn(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const [loggingIn, setLoggingIn] = useState(false);
|
|
||||||
const [showLogin, setShowLogin] = useState(false);
|
|
||||||
const [isPasswordFocused, setIsPasswordFocused] = useState(false);
|
|
||||||
const [totpLogin, setTotpLogin] = useState(false);
|
|
||||||
const [totpBackup, setTotpBackup] = useState(false);
|
|
||||||
const [signInError, setSignInError] = useState("");
|
|
||||||
const formRef = useRef<HTMLFormElement>(null);
|
|
||||||
const error = searchParams?.get("error");
|
|
||||||
const callbackUrl = searchParams?.get("callbackUrl");
|
const callbackUrl = searchParams?.get("callbackUrl");
|
||||||
const inviteToken = callbackUrl ? new URL(callbackUrl).searchParams.get("token") : null;
|
const inviteToken = callbackUrl ? new URL(callbackUrl).searchParams.get("token") : null;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user