fix: resolve infinite loading in Layout and add auth redirect
All checks were successful
Build and Deploy / build-and-push (push) Successful in 1m12s

This commit is contained in:
Cauê Faleiros
2026-02-25 11:12:57 -03:00
parent 456f13c930
commit 6e050d649f

View File

@@ -29,23 +29,39 @@ export const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) =>
useEffect(() => {
const fetchCurrentUser = async () => {
const storedUserId = localStorage.getItem('ctms_user_id');
if (storedUserId) {
if (!storedUserId) {
navigate('/login');
return;
}
try {
const user = await getUserById(storedUserId);
if (user) {
setCurrentUser(user);
} else {
// User ID exists in storage but not in DB (deleted user?)
localStorage.removeItem('ctms_user_id');
navigate('/login');
}
} catch (err) {
console.error("Failed to fetch user:", err);
// Fallback or error state
}
};
fetchCurrentUser();
}, []);
}, [navigate]);
const handleLogout = () => {
localStorage.removeItem('ctms_user_id');
localStorage.removeItem('ctms_tenant_id');
navigate('/login');
};
if (!currentUser) {
return <div className="flex h-screen items-center justify-center bg-slate-50">Carregando...</div>;
const storedUserId = localStorage.getItem('ctms_user_id');
if (!storedUserId) return null; // Will redirect in useEffect
return <div className="flex h-screen items-center justify-center bg-slate-50 text-slate-400">Autenticando...</div>;
}
const isSuperAdmin = currentUser.role === 'super_admin';