34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
// src/hooks/useSchedules.js
|
|
import { useState, useEffect } from 'react';
|
|
import { getAuthHeader } from '@/utils/apiAuthHeader';
|
|
|
|
// Agora recebe chargerId!
|
|
export function useSchedules(chargerId) {
|
|
const [schedules, setSchedules] = useState([]);
|
|
const [loading, setLoading] = useState(true);
|
|
const [error, setError] = useState('');
|
|
|
|
useEffect(() => {
|
|
if (!chargerId) return; // Só busca se houver carregador selecionado
|
|
setLoading(true);
|
|
fetch(`/api/chargers/${chargerId}/schedule`, {
|
|
headers: getAuthHeader(),
|
|
})
|
|
.then(res => {
|
|
if (res.status === 401 || res.status === 403) {
|
|
setError('Sessão expirada. Faça login novamente.');
|
|
return { data: [] };
|
|
}
|
|
return res.json();
|
|
})
|
|
.then(json => {
|
|
setSchedules(json.data || []);
|
|
setError('');
|
|
})
|
|
.catch(() => setError('Falha ao carregar agendamentos'))
|
|
.finally(() => setLoading(false));
|
|
}, [chargerId]); // <-- Atualiza quando o chargerId mudar
|
|
|
|
return { schedules, setSchedules, loading, error };
|
|
}
|