'use client' import Image from 'next/image' import React from 'react' import learnhouseIcon from 'public/learnhouse_bigicon_1.png' import FormLayout, { FormField, FormLabelAndMessage, Input, } from '@components/StyledElements/Form/Form' import * as Form from '@radix-ui/react-form' import { getOrgLogoMediaDirectory } from '@services/media/media' import { AlertTriangle, Info } from 'lucide-react' import Link from 'next/link' import { getUriWithOrg } from '@services/config/config' import { useOrg } from '@components/Contexts/OrgContext' import { useRouter, useSearchParams } from 'next/navigation' import { useFormik } from 'formik' import { resetPassword } from '@services/auth/auth' const validate = (values: any) => { const errors: any = {} if (!values.email) { errors.email = 'Required' } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(values.email)) { errors.email = 'Invalid email address' } if (!values.new_password) { errors.new_password = 'Required' } if (!values.confirm_password) { errors.confirm_password = 'Required' } if (values.new_password !== values.confirm_password) { errors.confirm_password = 'Passwords do not match' } if (!values.reset_code) { errors.reset_code = 'Required' } return errors } function ResetPasswordClient() { const org = useOrg() as any; const [isSubmitting, setIsSubmitting] = React.useState(false) const searchParams = useSearchParams() const reset_code = searchParams.get('resetCode') || '' const email = searchParams.get('email') || '' const router = useRouter() const [error, setError] = React.useState('') const [message, setMessage] = React.useState('') const formik = useFormik({ initialValues: { email: email, new_password: '', confirm_password: '', reset_code: reset_code }, validate, enableReinitialize: true, onSubmit: async (values) => { setIsSubmitting(true) let res = await resetPassword(values.email, values.new_password, org?.id, values.reset_code) if (res.status == 200) { setMessage(res.data + ', please login') setIsSubmitting(false) } else { setError(res.data.detail) setIsSubmitting(false) } }, }) return (
Enter your email and reset code to reset your password
{error && (