import { useTranslation } from 'react-i18next'; import toast from 'react-hot-toast'; import Button from '../ui/Button'; import Modal from '../ui/Modal'; import { DateTime } from 'luxon'; import DateSelector from '../DateSelector/DateSelector'; import { useCallback, useState } from 'react'; export interface Props { visible?: boolean; onClose: (birthDate?: string) => void; minAge: number; } const AgeVerificationModal = ({ visible = false, onClose, minAge }: Props) => { const { t } = useTranslation(); const [birthDate, setBirthDate] = useState(); const [error, setError] = useState(); const [submitting, setSubmitting] = useState(false); const onSubmit = useCallback(() => { setSubmitting(true); if (!birthDate) { toast.error(t('requiredField')); setError(t('requiredField') || 'Required field'); setSubmitting(false); return; } let age = DateTime.now().diff(birthDate, 'years').years; if (age < minAge) { toast.error(t('underageTwinSession', { age: minAge })); setError( t('underageTwinSession', { age: minAge }) || `You must be at least ${minAge} years old to interact with this Agent` ); setSubmitting(false); return; } onClose(birthDate.toJSDate().toISOString()); }, [birthDate, minAge, onClose, t]); return ( onClose()} >

{t('ageVerificationText', { minAge })}

{ e.preventDefault(); onSubmit(); }} >
{t('birthDate')} { setBirthDate(date); }} />

{t('birthDateHelper')}

{error &&

{error}

}
); }; export default AgeVerificationModal;