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