import React, { useState, useEffect } from 'react'; import { Modal, Stack, TextInput, Select, Button, Group, PasswordInput, Text, } from '@mantine/core'; import type { UpdateUserRequest } from '@/types/adminApi'; import type { User} from '@/types/authApi'; import { UserRole } from '@/types/authApi'; interface EditUserModalProps { opened: boolean; onClose: () => void; onEditUser: (userId: number, userData: UpdateUserRequest) => Promise; loading: boolean; user: User | null; } const EditUserModal: React.FC = ({ opened, onClose, onEditUser, loading, user, }) => { const [formData, setFormData] = useState({ email: '', displayName: '', role: UserRole.Editor, password: '', }); useEffect(() => { if (user) { setFormData({ email: user.email, displayName: user.displayName || '', role: user.role, password: '', }); } }, [user]); const handleSubmit = async (): Promise => { if (!user) return; const updateData = { ...formData, ...(formData.password ? { password: formData.password } : {}), }; const success = await onEditUser(user.id, updateData); if (success) { setFormData({ email: '', displayName: '', role: UserRole.Editor, password: '', }); onClose(); } }; return ( setFormData({ ...formData, email: e.currentTarget.value }) } placeholder="user@example.com" /> setFormData({ ...formData, displayName: e.currentTarget.value }) } placeholder="John Doe" />