feat: implement user authentication checks in PresenceManager and perfil pages
- Added authentication verification in the PresenceManager component to manage user presence status based on authentication state. - Updated the perfil page to conditionally execute queries only if the user is authenticated, enhancing security and performance. - Introduced derived variables to track user authentication status, ensuring that presence management and data fetching are only performed for logged-in users.
This commit is contained in:
@@ -125,11 +125,23 @@
|
||||
const funcionarioIdDisponivel = $derived(currentUser?.data?.funcionarioId ?? null);
|
||||
const gestorIdDisponivel = $derived(currentUser?.data?._id ?? null);
|
||||
|
||||
// ✅ CORRIGIDO: Queries no nível superior (sem argumentos) sempre criadas
|
||||
// Verificar autenticação antes de executar queries
|
||||
const usuarioAutenticado = $derived(currentUser?.data !== null && currentUser?.data !== undefined);
|
||||
|
||||
// ✅ CORRIGIDO: Queries condicionais - só executar se usuário estiver autenticado
|
||||
// Queries que não requerem argumentos são criadas uma vez
|
||||
const funcionarioQuery = useQuery(api.funcionarios.getCurrent, {});
|
||||
const timesSubordinadosQuery = useQuery(api.times.listarSubordinadosDoGestorAtual, {});
|
||||
const chamadosQuery = useQuery(api.chamados.listarChamadosUsuario, {});
|
||||
const funcionarioQuery = useQuery(
|
||||
api.funcionarios.getCurrent,
|
||||
usuarioAutenticado ? {} : 'skip'
|
||||
);
|
||||
const timesSubordinadosQuery = useQuery(
|
||||
api.times.listarSubordinadosDoGestorAtual,
|
||||
usuarioAutenticado ? {} : 'skip'
|
||||
);
|
||||
const chamadosQuery = useQuery(
|
||||
api.chamados.listarChamadosUsuario,
|
||||
usuarioAutenticado ? {} : 'skip'
|
||||
);
|
||||
|
||||
// ✅ CORRIGIDO: Queries com argumentos obrigatórios usando $derived.by para estabilidade
|
||||
// Usamos uma chave estável baseada no ID para evitar recriação desnecessária
|
||||
|
||||
Reference in New Issue
Block a user