From a35ba6ff4bec2f1624e2f0c78430e9b871d01252 Mon Sep 17 00:00:00 2001 From: Posted <271081487+FirTheDeveloper@users.noreply.github.com> Date: Wed, 12 Aug 2026 11:08:33 -0400 Subject: [PATCH 1/3] add zxcvbn and add components --- components/passwordStrengthBar.tsx | 56 ++++++++++++++++++++++++++++++ utils/passwordStrength.ts | 48 +++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 components/passwordStrengthBar.tsx create mode 100644 utils/passwordStrength.ts diff --git a/components/passwordStrengthBar.tsx b/components/passwordStrengthBar.tsx new file mode 100644 index 00000000..32e06909 --- /dev/null +++ b/components/passwordStrengthBar.tsx @@ -0,0 +1,56 @@ +"use client"; + +import { calculatePasswordStrength } from "@/utils/passwordStrength"; + +interface PasswordStrengthBarProps { + password: string; +} + +export default function PasswordStrengthBar({ + password, +}: PasswordStrengthBarProps) { + const { score, label } = calculatePasswordStrength(password); + + const colors = { + 0: "bg-zinc-700", + 1: "bg-red-500", + 2: "bg-yellow-400", + 3: "bg-lime-400", + 4: "bg-green-500", + }; + + const textColors = { + 0: "text-zinc-500", + 1: "text-red-400", + 2: "text-yellow-400", + 3: "text-lime-400", + 4: "text-green-400", + }; + + return ( +
Choose a secure password for your account.
+Make your Orbit account
++ Make your Orbit account +
+You need to create an Orbit account to continue
+{signupform.formState.errors.username.message}
)} - +{signupform.formState.errors.password.message} @@ -389,12 +410,13 @@ const Login: NextPage = () => { type="password" {...signupform.register("verifypassword", { required: "Please verify your password", - validate: value => - value === signupform.getValues('password') || - "Passwords do not match" + validate: (value) => + value === signupform.getValues("password") || + "Passwords do not match", })} label="Verify password" /> + {signupform.formState.errors.verifypassword && (
{signupform.formState.errors.verifypassword.message} @@ -411,14 +433,19 @@ const Login: NextPage = () => { > Back +