From 63c65717b8ffabc683d3d56fecf3486fd19b0df4 Mon Sep 17 00:00:00 2001 From: Wind-Explorer Date: Mon, 29 Jul 2024 01:48:30 +0800 Subject: [PATCH] Reset password confirmation dialog --- client/src/components/UpdateAccountModule.tsx | 71 +++++++++++++++++-- client/src/pages/ResetPasswordPage.tsx | 4 +- 2 files changed, 67 insertions(+), 8 deletions(-) diff --git a/client/src/components/UpdateAccountModule.tsx b/client/src/components/UpdateAccountModule.tsx index afd5887..34772a1 100644 --- a/client/src/components/UpdateAccountModule.tsx +++ b/client/src/components/UpdateAccountModule.tsx @@ -25,7 +25,17 @@ export default function UpdateAccountModule() { const navigate = useNavigate(); const [userInformation, setUserInformation] = useState(); - const { isOpen, onOpen, onOpenChange } = useDisclosure(); + const { + isOpen: isArchiveDialogOpen, + onOpen: onArchiveDialogOpen, + onOpenChange: onArchiveDialogOpenChange, + } = useDisclosure(); + + const { + isOpen: isResetPasswordOpen, + onOpen: onResetPasswordOpen, + onOpenChange: onResetPasswordOpenChange, + } = useDisclosure(); useEffect(() => { retrieveUserInformation() @@ -239,13 +249,15 @@ export default function UpdateAccountModule() { - @@ -254,7 +266,12 @@ export default function UpdateAccountModule() { - + + {/* Archive Account Modal */} + {(onClose) => { return ( @@ -292,6 +309,48 @@ export default function UpdateAccountModule() { }} + + {/* Reset Password Modal */} + + + {(onClose) => { + return ( + <> + + Reset Password + + +

+ We will send you an email helping you to reset your + password. +

+

+ Check in the junk mailbox if you do not receive it after + 3 minutes. +

+
+ + + + + + ); + }} +
+
)} diff --git a/client/src/pages/ResetPasswordPage.tsx b/client/src/pages/ResetPasswordPage.tsx index 3fe21f3..4a8ef7d 100644 --- a/client/src/pages/ResetPasswordPage.tsx +++ b/client/src/pages/ResetPasswordPage.tsx @@ -7,12 +7,12 @@ import EcoconnectFullLogo from "../components/EcoconnectFullLogo"; import NextUIFormikInput from "../components/NextUIFormikInput"; import { Formik, Form } from "formik"; import * as Yup from "yup"; -import axios from "axios"; import { popErrorToast, popToast } from "../utilities"; const validationSchema = Yup.object({ password: Yup.string() .trim() + .min(8, "Password must be at least 8 characters") .max(69, "Password must be at most 69 characters") .matches( /^(?=.*[a-zA-Z])(?=.*[0-9]).{1,}$/, @@ -20,7 +20,7 @@ const validationSchema = Yup.object({ ) .required("Password is required"), confirmPassword: Yup.string() - .oneOf([Yup.ref("password"), undefined], "Passwords must match") + .oneOf([Yup.ref("password"), undefined], "Passwords do not match") .required("Confirm Password is required"), });