import { IoCloseOutline } from "react-icons/io5"; import { useState } from "react"; import styles from "./EditPopUp.module.css"; import { User, useOrgUsers } from "../../../hooks/useUsers"; type EditPopUpProps = { closePopup: () => void; refetchUsers: () => Promise; user: User; }; const EditPopUp = ({ closePopup, refetchUsers, user }: EditPopUpProps) => { const { updateUser } = useOrgUsers(); const [formData, setFormData] = useState({ fullName: user.fullName || "", email: user.email || "", privilege: user.privilege || "", username: user.username || "" }); const [isSubmitting, setIsSubmitting] = useState(false); const [error, setError] = useState(null); const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsSubmitting(true); setError(null); try { await updateUser(user.id, { fullName: formData.fullName, email: formData.email, privilege: formData.privilege, username: formData.username }); // Refresh the users list and close the popup await refetchUsers(); closePopup(); } catch (error: any) { setError(error.message || "Failed to update user"); } finally { setIsSubmitting(false); } }; return (

Edit User

{error &&
{error}
}
); }; const popupStyles: { overlay: React.CSSProperties; popup: React.CSSProperties } = { overlay: { position: "fixed", top: 0, left: 0, right: 0, bottom: 0, backgroundColor: "rgba(0,0,0,0.5)", display: "flex", justifyContent: "center", alignItems: "center", }, popup: { backgroundColor: "#fff", borderRadius: "8px", boxShadow: "0 5px 15px rgba(0,0,0,0.3)", position: "relative", width: "400px", maxWidth: "90%" } }; export default EditPopUp;