diff --git a/frontend/components/UserManagement.tsx b/frontend/components/UserManagement.tsx index 46b79b8..19001b6 100644 --- a/frontend/components/UserManagement.tsx +++ b/frontend/components/UserManagement.tsx @@ -22,6 +22,8 @@ export const UserManagement: React.FC = () => { const [agencies, setAgencies] = useState([]); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(null); + const [savedUserId, setSavedUserId] = useState(null); + const [successMessage, setSuccessMessage] = useState(null); // New agency form const [newAgencyName, setNewAgencyName] = useState(''); @@ -48,10 +50,17 @@ export const UserManagement: React.FC = () => { } }; + const showSavedIndicator = (userId: string) => { + setSavedUserId(userId); + setError(null); + setTimeout(() => setSavedUserId(prev => prev === userId ? null : prev), 2000); + }; + const handleRoleChange = async (userId: string, newRole: string) => { try { const updated = await apiService.updateUser(userId, { role: newRole }); setUsers(prev => prev.map(u => u.id === userId ? updated : u)); + showSavedIndicator(userId); } catch (err) { console.error('Failed to update user role:', err); setError('Failed to update user role.'); @@ -62,6 +71,7 @@ export const UserManagement: React.FC = () => { try { const updated = await apiService.updateUser(userId, { agency_id: agencyId }); setUsers(prev => prev.map(u => u.id === userId ? updated : u)); + showSavedIndicator(userId); } catch (err) { console.error('Failed to update user agency:', err); setError('Failed to update user agency.'); @@ -77,6 +87,9 @@ export const UserManagement: React.FC = () => { const newAgency = await apiService.createAgency(newAgencyName.trim()); setAgencies(prev => [...prev, newAgency].sort((a, b) => a.name.localeCompare(b.name))); setNewAgencyName(''); + setError(null); + setSuccessMessage('Agency created successfully'); + setTimeout(() => setSuccessMessage(prev => prev === 'Agency created successfully' ? null : prev), 3000); } catch (err) { console.error('Failed to create agency:', err); setError('Failed to create agency.'); @@ -115,6 +128,13 @@ export const UserManagement: React.FC = () => { )} + {successMessage && ( +
+ {successMessage} + +
+ )} + {/* Users Table */}

Users ({users.length})

@@ -128,6 +148,7 @@ export const UserManagement: React.FC = () => { Role Agency Created + @@ -178,11 +199,21 @@ export const UserManagement: React.FC = () => { {formatDate(user.created_at)} + + {savedUserId === user.id && ( + + + + + Saved + + )} + ))} {users.length === 0 && ( - + No users found.