import React, { FC, useCallback, useMemo, useState } from 'react'; import { apiRestoreCode } from '~/api/auth'; import { Group } from '~/components/containers/Group'; import { Button } from '~/components/input/Button'; import { InputText } from '~/components/input/InputText'; import { useCloseOnEscape } from '~/hooks'; import { useRestoreCode } from '~/hooks/auth/useRestoreCode'; import { useRestorePasswordForm } from '~/hooks/auth/useRestorePasswordForm'; import { DialogComponentProps } from '~/types/modal'; import { BetterScrollDialog } from '../../../components/dialogs/BetterScrollDialog'; import { RestoreInvalidCode } from './components/RestoreInvalidCode'; import { RestoreSuccess } from './components/RestoreSuccess'; import styles from './styles.module.scss'; type RestorePasswordDialogProps = DialogComponentProps & { code: string; }; const RestorePasswordDialog: FC = ({ onRequestClose, code, }) => { useCloseOnEscape(onRequestClose); const { codeUser, isLoading, error } = useRestoreCode(code); const [isSent, setIsSent] = useState(false); const onSent = useCallback(() => setIsSent(true), [setIsSent]); const { handleChange, handleSubmit, values, errors } = useRestorePasswordForm( code, apiRestoreCode, onSent, ); const buttons = useMemo( () => ( ), [], ); const overlay = useMemo(() => { if (isSent) { return ( ); } if (error) { return ; } if (isLoading) { return
; } }, [isLoading, error, isSent, codeUser, onRequestClose]); return (
Пришло время сменить пароль, {codeUser?.username}

Новый пароль должен быть не короче 6 символов.

Вряд ли кто-нибудь будет пытаться нас взломать, но сложный пароль всегда лучше простого.

); }; export { RestorePasswordDialog };