diff --git a/saveinmed-frontend/src/hooks/useAuth.ts b/saveinmed-frontend/src/hooks/useAuth.ts index efe2023..8dac264 100644 --- a/saveinmed-frontend/src/hooks/useAuth.ts +++ b/saveinmed-frontend/src/hooks/useAuth.ts @@ -11,6 +11,15 @@ export const useAuth = (): AuthContextType => { const [userRole, setUserRole] = useState(null); const [loading, setLoading] = useState(true); const [isAuthenticated, setIsAuthenticated] = useState(false); + const normalizeRole = useCallback((role?: string | null): UserRole | null => { + if (!role) return null; + const normalized = role.toLowerCase(); + if (normalized === UserRole.SUPERADMIN) return UserRole.SUPERADMIN; + if (normalized === UserRole.ADMIN) return UserRole.ADMIN; + if (normalized === UserRole.COLABORADOR) return UserRole.COLABORADOR; + if (normalized === UserRole.ENTREGADOR) return UserRole.ENTREGADOR; + return null; + }, []); /** * Verifica se o usuário tem um role específico @@ -95,7 +104,25 @@ export const useAuth = (): AuthContextType => { // Marcar como autenticado se há token setIsAuthenticated(true); - // Por enquanto, não buscar dados do usuário - apenas marcar como autenticado + const storedUser = localStorage.getItem('user'); + if (storedUser) { + try { + const parsedUser = JSON.parse(storedUser) as UserData; + setUser(parsedUser); + const storedRole = + parsedUser?.nivel || + (parsedUser as unknown as { role?: string; userRole?: string })?.role || + (parsedUser as unknown as { role?: string; userRole?: string })?.userRole; + setUserRole(normalizeRole(storedRole)); + } catch (parseError) { + console.error('Erro ao ler usuário salvo:', parseError); + setUser(null); + setUserRole(null); + } + } else { + setUser(null); + setUserRole(null); + } } catch (error) { console.error('Erro na verificação de autenticação:', error); @@ -126,4 +153,4 @@ export const useAuth = (): AuthContextType => { getUserPermissions: () => typeof ROLE_PERMISSIONS[UserRole] | null; redirectToDefaultRoute: () => void; }; -}; \ No newline at end of file +};