From 46788beb1463177660701155dff310d64ac0d991 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 7 Mar 2026 03:48:16 +0000
Subject: [PATCH 1/3] Initial plan
From 109be1dcc1085f7d3ef18549e5cfcd592faa3a57 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 7 Mar 2026 03:52:27 +0000
Subject: [PATCH 2/3] Add confirm password field to registration form with
validation
Co-authored-by: sirily11 <32106111+sirily11@users.noreply.github.com>
---
components/auth/register-form.tsx | 17 ++++++++-
e2e/auth/register.spec.ts | 29 +++++++++++---
lib/validations/auth.test.ts | 63 +++++++++++++++++++++++++++++++
lib/validations/auth.ts | 4 ++
4 files changed, 107 insertions(+), 6 deletions(-)
create mode 100644 lib/validations/auth.test.ts
diff --git a/components/auth/register-form.tsx b/components/auth/register-form.tsx
index 50e8af8..e293ec3 100644
--- a/components/auth/register-form.tsx
+++ b/components/auth/register-form.tsx
@@ -18,6 +18,7 @@ export function RegisterForm({ whitelistOnly = false }: RegisterFormProps) {
const router = useRouter();
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
+ const [confirmPassword, setConfirmPassword] = useState("");
const [displayName, setDisplayName] = useState("");
const [error, setError] = useState(null);
const [isPending, startTransition] = useTransition();
@@ -27,7 +28,7 @@ export function RegisterForm({ whitelistOnly = false }: RegisterFormProps) {
setError(null);
startTransition(async () => {
- const result = await register({ email, password, displayName: displayName || undefined });
+ const result = await register({ email, password, confirmPassword, displayName: displayName || undefined });
if (result.success) {
if (process.env.NEXT_PUBLIC_E2E_SKIP_EMAIL_VERIFICATION === "true") {
router.push("/account");
@@ -114,6 +115,20 @@ export function RegisterForm({ whitelistOnly = false }: RegisterFormProps) {
+
+
+ setConfirmPassword(e.target.value)}
+ required
+ minLength={8}
+ disabled={isPending}
+ />
+
+