42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { useQuery } from 'react-query';
|
|
import api from '../services/api';
|
|
|
|
export interface EventoCalendario {
|
|
id: string;
|
|
data: string;
|
|
tipo: string;
|
|
descricao: string;
|
|
}
|
|
|
|
// Hook para buscar atendimentos e audiências do calendário
|
|
export function useCalendarioAtendimentos() {
|
|
return useQuery<EventoCalendario[]>('calendarioAtendimentos', async () => {
|
|
// Buscar atendimentos
|
|
const atendimentosRes = await api.get('/atendimentos');
|
|
const atendimentos = atendimentosRes.data.map((a: any) => ({
|
|
id: a.id,
|
|
data: a.dataAtendimento?.slice(0, 10),
|
|
tipo: 'Atendimento',
|
|
descricao: a.titulo || 'Atendimento',
|
|
}));
|
|
|
|
// Buscar audiências, tratar erro 404
|
|
let audiencias: EventoCalendario[] = [];
|
|
try {
|
|
const audienciasRes = await api.get('/audiencias');
|
|
audiencias = audienciasRes.data.map((a: any) => ({
|
|
id: a.id,
|
|
data: a.data?.slice(0, 10),
|
|
tipo: 'Audiência',
|
|
descricao: a.tipo || 'Audiência',
|
|
}));
|
|
} catch (error: any) {
|
|
if (error?.response?.status !== 404) throw error;
|
|
// Se for 404, ignora audiências
|
|
}
|
|
|
|
// Junta todos eventos
|
|
return [...atendimentos, ...audiencias];
|
|
});
|
|
}
|