import React, { useState, memo } from 'react'; import Modal from './modal/Modal'; import './ProfileModal.css'; import type { ProfileData } from '../sdk/models/ProfileData'; interface ProfileModalProps { isOpen: boolean; onClose: () => void; onSubmit: (profileData: ProfileData, validatorId: string | null, ownerId: string | null) => void; initialData?: Partial; } function ProfileModal({ isOpen, onClose, onSubmit, initialData = {} }: ProfileModalProps) { const [profileData, setProfileData] = useState({ name: initialData.name || '', surname: initialData.surname || '', email: initialData.email || '', phone: initialData.phone || '', address: initialData.address || '', postalCode: initialData.postalCode || '', city: initialData.city || '', country: initialData.country || '', idDocument: initialData.idDocument || null, idCertified: false, }); const [validatorId, setValidatorId] = useState(null); const [ownerId, setOwnerId] = useState(null); const [isOwnProfile, setIsOwnProfile] = useState(false); const [errorMessage, setErrorMessage] = useState(null); const handleChange = (e: React.ChangeEvent) => { const { name, type, files, value } = e.target; if (type === 'file' && files) { // Assuming you want to handle a single file const file = files[0]; setProfileData(prev => ({ ...prev, [name]: file })); } else { setProfileData(prev => ({ ...prev, [name]: value })); } }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (!validatorId && !ownerId) { setErrorMessage("Please set either a Validator ID or an Owner ID."); return; } setErrorMessage(null); onSubmit(profileData, validatorId, ownerId); }; return (

Informations personnelles

Adresse

Document

Profil

{isOwnProfile ? (
{ setValidatorId(e.target.value); setOwnerId(null); }} placeholder="ID du validateur" />
) : (
{ setOwnerId(e.target.value); setValidatorId(null); }} placeholder="ID de l'utilisateur" />
)}
{errorMessage &&
{errorMessage}
}
); }; ProfileModal.displayName = 'ProfileModal'; export default memo(ProfileModal);