'use client'; import React, { Dispatch, FC, SetStateAction, useEffect } from 'react'; import { usePathname } from 'next/navigation'; import Link from 'next/link'; import { Modal, Form } from 'antd'; import { CloseOutlined } from '@ant-design/icons'; import { RegisterContent, ResetContent, FinishContent, EnterContent } from './authModalContent'; import { i18nText } from '../../i18nKeys'; type AuthModalProps = { open: boolean; handleCancel: () => void; mode: 'enter' | 'register' | 'reset' | 'finish'; updateMode: (mode: 'enter' | 'register' | 'reset' | 'finish') => void; updateToken: string | Dispatch> | undefined; locale: string; }; export const AuthModal: FC = ({ open, handleCancel, mode, updateMode, updateToken, locale }) => { const [form] = Form.useForm<{ login: string, password: string, confirmPassword: string }>(); const paths = usePathname().split('/'); const onAfterClose = () => { form.resetFields(); }; useEffect(() => { if (form) { form.resetFields(); } }, [mode]); const onUpdateToken = (token: string) => { if (updateToken && typeof updateToken !== 'string') { updateToken(token); } }; return ( } >
{mode === 'enter' && ( )} {mode === 'register' && ( )} {mode === 'reset' && ( )} {mode === 'finish' && ( )}
{`${i18nText('agreementText', locale)} `} {i18nText('privacyPolicy', locale)}
); };