analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
56 lines (50 loc) • 1.84 kB
JavaScript
;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