UNPKG

analytica-frontend-lib

Version:

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

56 lines (50 loc) 1.84 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); var _chunkXRCGVXQTjs = require('./chunk-XRCGVXQT.js'); // src/store/comparatorStore.ts var _zustand = require('zustand'); var _middleware = require('zustand/middleware'); function createComparatorStore(config = {}) { const { storageKey = "comparator-storage", chartColors = _chunkXRCGVXQTjs.COMPARATOR_CHART_COLORS } = config; return _zustand.create.call(void 0, )( _middleware.persist.call(void 0, (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: _middleware.createJSONStorage.call(void 0, () => localStorage) } ) ); } var useComparatorStore = createComparatorStore(); exports.createComparatorStore = createComparatorStore; exports.useComparatorStore = useComparatorStore; //# sourceMappingURL=chunk-FSKZJVAX.js.map