'use client'; import { useState } from 'react'; import { User, UpdateUserProfileData } from '@/types/user'; import { XMarkIcon } from '@heroicons/react/24/outline'; interface UserEditFormProps { user: User; onSubmit: (data: UpdateUserProfileData) => void; onCancel: () => void; isLoading: boolean; } export default function UserEditForm({ user, onSubmit, onCancel, isLoading }: UserEditFormProps) { const [formData, setFormData] = useState({ first_name: user.first_name || '', last_name: user.last_name || '', email: user.email || '', mobile: user.mobile || '', avatar: null, }); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); // Only send changed fields so we never overwrite values with empty ones const payload: UpdateUserProfileData = {}; if (formData.first_name !== (user.first_name || '')) payload.first_name = formData.first_name; if (formData.last_name !== (user.last_name || '')) payload.last_name = formData.last_name; if (formData.email !== (user.email || '')) payload.email = formData.email; if (formData.mobile !== (user.mobile || '')) payload.mobile = formData.mobile; if (formData.avatar) payload.avatar = formData.avatar; onSubmit(payload); }; const inputClass = 'block w-full px-3 py-2 border text-slate-900 border-gray-300 rounded-md leading-5 bg-white focus:outline-none focus:ring-1 focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm'; return (

ویرایش اطلاعات کاربر

setFormData({ ...formData, first_name: e.target.value })} />
setFormData({ ...formData, last_name: e.target.value })} />
setFormData({ ...formData, email: e.target.value })} />
setFormData({ ...formData, mobile: e.target.value })} />
setFormData({ ...formData, avatar: e.target.files?.[0] || null }) } />
); }