import React from "react"; import { Button, Container, FormControl, FormErrorMessage, FormLabel, Heading, Input, Text } from "@chakra-ui/react"; import { SubmitHandler, useForm } from "react-hook-form"; import { LoginService, NewPassword } from "../client"; import useCustomToast from "../hooks/useCustomToast"; interface NewPasswordForm extends NewPassword { confirm_password: string; } const ResetPassword: React.FC = () => { const { register, handleSubmit, getValues, formState: { errors } } = useForm({ mode: 'onBlur', criteriaMode: 'all', defaultValues: { new_password: '', } }); const showToast = useCustomToast(); const onSubmit: SubmitHandler = async (data) => { try { const token = new URLSearchParams(window.location.search).get('token'); await LoginService.resetPassword({ requestBody: { new_password: data.new_password, token: token! } }); showToast("Password reset.", "Your password has been reset successfully.", "success"); } catch (error) { showToast("Error", "An error occurred while resetting your password.", "error"); } }; return ( Reset Password Please enter your new password and confirm it to reset your password. Set Password {errors.new_password && {errors.new_password.message}} Confirm Password value === getValues().new_password || 'The passwords do not match' })} placeholder='Password' type='password' /> {errors.confirm_password && {errors.confirm_password.message}} ); }; export default ResetPassword;