import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useUserData } from '@/hooks/useUserData'; import { UserFormData } from '@/types'; interface AddUserFormProps { onAdd: () => void; onCancel: () => void; } const AddUserForm = ({ onAdd, onCancel }: AddUserFormProps) => { const { t } = useTranslation(); const { createUser } = useUserData(); const [error, setError] = useState(null); const [isSubmitting, setIsSubmitting] = useState(false); const [formData, setFormData] = useState({ username: '', password: '', isAdmin: false, }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); if (!formData.username.trim()) { setError(t('users.usernameRequired')); return; } if (!formData.password.trim()) { setError(t('users.passwordRequired')); return; } if (formData.password.length < 6) { setError(t('users.passwordTooShort')); return; } setIsSubmitting(true); try { const result = await createUser(formData); if (result?.success) { onAdd(); } else { setError(result?.message || t('users.createError')); } } catch (err) { setError(err instanceof Error ? err.message : t('users.createError')); } finally { setIsSubmitting(false); } }; const handleInputChange = (e: React.ChangeEvent) => { const { name, value, type, checked } = e.target; setFormData((prev) => ({ ...prev, [name]: type === 'checkbox' ? checked : value, })); }; return (

{t('users.addNew')}

{error && (

{error}

)}
); }; export default AddUserForm;