62 lines
1.6 KiB
JavaScript
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();
|
|
}
|
|
}));
|