testes/src_2/features/fleet-v2/hooks/useMonitoring.js

62 lines
1.6 KiB
JavaScript

import { create } from 'zustand';
import { monitoringService } from '../services/monitoringService';
import { toast } from 'sonner';
export const useMonitoring = create((set, get) => ({
monitoringData: [],
mokiData: [],
loading: false,
error: null,
fetchMonitoring: async () => {
set({ loading: true, error: null });
try {
const data = await monitoringService.getMonitoring();
set({ monitoringData: Array.isArray(data) ? data : (data.data || []) });
} catch (error) {
set({ error: error.message });
console.error('Erro ao carregar monitoramento:', error);
} finally {
set({ loading: false });
}
},
fetchMokiData: async () => {
set({ loading: true });
try {
const data = await monitoringService.getMokiData();
set({ mokiData: Array.isArray(data) ? data : (data.data || []) });
} catch (error) {
console.error('Erro ao carregar dados Moki:', error);
} finally {
set({ loading: false });
}
},
createMonitoring: async (data) => {
try {
await monitoringService.createMonitoring(data);
toast.success('Registro de monitoramento criado!');
get().fetchMonitoring();
} catch (error) {
toast.error('Erro ao criar monitoramento: ' + error.message);
}
},
updateMoki: async (id, data) => {
try {
await monitoringService.updateMokiData(id, data);
toast.success('Checklist atualizado!');
get().fetchMokiData();
} catch (error) {
toast.error('Erro ao atualizar checklist: ' + error.message);
}
},
// Refreshes both
fetchAll: () => {
get().fetchMonitoring();
get().fetchMokiData();
}
}));