import React, { useState } from 'react' import { ReactMultiEmail, isEmail } from 'react-multi-email' import 'react-multi-email/dist/style.css' import { cn } from '@/utils/classnames' import s from './index.module.css' type CustomEmailInputProps = { emails: string[] onChange: (emails: string[]) => void className?: string placeholder?: string } const CustomEmailInput: React.FC = ({ emails, onChange, className, placeholder }) => { const [inputValue, setInputValue] = useState('') const defaultDomain = process.env.NEXT_PUBLIC_DEFAULT_DOMAIN const setBlur = () => { if (inputValue && !inputValue.includes('@') && defaultDomain) { const newEmail = `${inputValue}@${defaultDomain}` if (isEmail(newEmail)) { setInputValue('') onChange([...emails, newEmail]) // eslint-disable-next-line no-implied-eval setTimeout('document.getElementsByClassName(\'bg-transparent\')[0].value = \'\'', 100) } } } const handleKeyDown = (event: React.KeyboardEvent) => { if (event.key === 'Enter' && inputValue && !inputValue.includes('@') && defaultDomain) { const newEmail = `${inputValue}@${defaultDomain}` if (isEmail(newEmail)) { setInputValue('') onChange([...emails, newEmail]) // eslint-disable-next-line no-implied-eval setTimeout('document.getElementsByClassName(\'bg-transparent\')[0].value = \'\'', 100) } } } return ( void) => (
{email}
removeEmail(index)}>×
)} onKeyDown={handleKeyDown} placeholder={placeholder} /> ) } export default CustomEmailInput