import React, { useEffect, useState } from 'react'; import { getUsers, createUser, updateUser, deleteUser } from '../api/userService'; const UserList = () => { const [users, setUsers] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [newUser, setNewUser] = useState({ email: '', roles: '' }); useEffect(() => { const fetchUsers = async () => { try { const userData = await getUsers(); setUsers(userData); } catch (error) { setError(error); } finally { setLoading(false); } }; fetchUsers(); }, []); const handleCreateUser = async () => { try { const createdUser = await createUser(newUser); setUsers([...users, createdUser]); setNewUser({ email: '', roles: '' }); } catch (error) { setError(error); } }; const handleUpdateUser = async (userId, updatedData) => { try { const updatedUser = await updateUser(userId, updatedData); setUsers(users.map((user) => (user.ID === userId ? updatedUser : user))); } catch (error) { setError(error); } }; const handleDeleteUser = async (userId) => { try { await deleteUser(userId); setUsers(users.filter((user) => user.ID !== userId)); } catch (error) { setError(error); } }; if (loading) return

Loading...

; if (error) return

Error loading users: {error.message}

; return (

User List

Add New User

setNewUser({ ...newUser, email: e.target.value })} /> setNewUser({ ...newUser, roles: e.target.value.split(',') })} />
); }; export default UserList;