import React, { useState, useEffect } from 'react'; import { useForm } from 'react-hook-form'; import { useLocalize } from '~/hooks'; import { useRequestPasswordResetMutation, useGetStartupConfig, TRequestPasswordReset, TRequestPasswordResetResponse, } from 'librechat-data-provider'; function RequestPasswordReset() { const localize = useLocalize(); const { register, handleSubmit, formState: { errors }, } = useForm(); const requestPasswordReset = useRequestPasswordResetMutation(); const config = useGetStartupConfig(); const [requestError, setRequestError] = useState(false); const [resetLink, setResetLink] = useState(undefined); const [headerText, setHeaderText] = useState(''); const [bodyText, setBodyText] = useState(undefined); const onSubmit = (data: TRequestPasswordReset) => { requestPasswordReset.mutate(data, { onSuccess: (data: TRequestPasswordResetResponse) => { console.log('emailEnabled: ', config.data?.emailEnabled); if (!config.data?.emailEnabled) { setResetLink(data.link); } }, onError: () => { setRequestError(true); setTimeout(() => { setRequestError(false); }, 5000); }, }); }; useEffect(() => { if (requestPasswordReset.isSuccess) { if (config.data?.emailEnabled) { setHeaderText(localize('com_auth_reset_password_link_sent')); setBodyText(localize('com_auth_reset_password_email_sent')); } else { setHeaderText(localize('com_auth_reset_password')); setBodyText( {localize('com_auth_click')}{' '} {localize('com_auth_here')} {' '} {localize('com_auth_to_reset_your_password')} , ); } } else { setHeaderText(localize('com_auth_reset_password')); setBodyText(undefined); } }, [requestPasswordReset.isSuccess, config.data?.emailEnabled, resetLink, localize]); return (

{headerText}

{requestError && (
{localize('com_auth_error_reset_password')}
)} {bodyText ? (
{bodyText}
) : (
{errors.email && ( {/* @ts-ignore not sure why */} {errors.email.message} )}
)}
); } export default RequestPasswordReset;