aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/signin/CredentialsForm.tsx
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-07-10 08:35:32 +0000
committerMohamed Bassem <me@mbassem.com>2025-07-10 08:37:44 +0000
commit93049e864ae6d281b60c23dee868bca3f585dd4a (patch)
treed39c0b4221486dbc82461a505f205d162a9e4def /apps/web/components/signin/CredentialsForm.tsx
parentaae3ef17eccf0752edb5ce5638a58444ccb6ce3a (diff)
downloadkarakeep-93049e864ae6d281b60c23dee868bca3f585dd4a.tar.zst
feat: Add support for email verification
Diffstat (limited to 'apps/web/components/signin/CredentialsForm.tsx')
-rw-r--r--apps/web/components/signin/CredentialsForm.tsx28
1 files changed, 23 insertions, 5 deletions
diff --git a/apps/web/components/signin/CredentialsForm.tsx b/apps/web/components/signin/CredentialsForm.tsx
index 3772db09..05aa1cef 100644
--- a/apps/web/components/signin/CredentialsForm.tsx
+++ b/apps/web/components/signin/CredentialsForm.tsx
@@ -28,9 +28,11 @@ const signInSchema = z.object({
password: z.string(),
});
-const SIGNIN_FAILED = "Incorrect username or password";
+const SIGNIN_FAILED = "Incorrect email or password";
const OAUTH_FAILED = "OAuth login failed: ";
+const VERIFY_EMAIL_ERROR = "Please verify your email address before signing in";
+
function SignIn() {
const [signinError, setSigninError] = useState("");
const router = useRouter();
@@ -68,8 +70,16 @@ function SignIn() {
email: value.email.trim(),
password: value.password,
});
- if (!resp || !resp?.ok) {
- setSigninError(SIGNIN_FAILED);
+ if (!resp || !resp?.ok || resp.error) {
+ if (resp?.error === "CredentialsSignin") {
+ setSigninError(SIGNIN_FAILED);
+ } else if (resp?.error === VERIFY_EMAIL_ERROR) {
+ router.replace(
+ `/check-email?email=${encodeURIComponent(value.email.trim())}`,
+ );
+ } else {
+ setSigninError(resp?.error ?? SIGNIN_FAILED);
+ }
return;
}
router.replace("/");
@@ -149,8 +159,16 @@ function SignUp() {
email: value.email.trim(),
password: value.password,
});
- if (!resp || !resp.ok) {
- setErrorMessage("Hit an unexpected error while signing in");
+ if (!resp || !resp.ok || resp.error) {
+ if (resp?.error === VERIFY_EMAIL_ERROR) {
+ router.replace(
+ `/check-email?email=${encodeURIComponent(value.email.trim())}`,
+ );
+ } else {
+ setErrorMessage(
+ resp?.error ?? "Hit an unexpected error while signing in",
+ );
+ }
return;
}
router.replace("/");