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) returnError loading users: {error.message}
; return (