UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

56 lines (54 loc) 1.65 kB
import { COMPARATOR_CHART_COLORS } from "./chunk-ZDQTP6K3.mjs"; // src/store/comparatorStore.ts import { create } from "zustand"; import { createJSONStorage, persist } from "zustand/middleware"; function createComparatorStore(config = {}) { const { storageKey = "comparator-storage", chartColors = COMPARATOR_CHART_COLORS } = config; return create()( persist( (set, get) => ({ comparisonType: null, selectedItems: [], setComparisonType: (type) => set({ comparisonType: type }), setSelectedItems: (items) => set({ selectedItems: items }), addItem: (item) => { const { selectedItems } = get(); if (selectedItems.length >= 5) return; if (selectedItems.some((i) => i.id === item.id)) return; const newItem = { ...item, color: chartColors[selectedItems.length] }; set({ selectedItems: [...selectedItems, newItem] }); }, removeItem: (itemId) => { const { selectedItems } = get(); const newItems = selectedItems.filter((i) => i.id !== itemId).map((item, idx) => ({ ...item, color: chartColors[idx] })); set({ selectedItems: newItems }); }, clearSelection: () => set({ comparisonType: null, selectedItems: [] }) }), { name: storageKey, storage: createJSONStorage(() => localStorage) } ) ); } var useComparatorStore = createComparatorStore(); export { createComparatorStore, useComparatorStore }; //# sourceMappingURL=chunk-MRTAPHOQ.mjs.map