reactflow-canvas-store
Version:
Global and multi-canvas state store for React Flow projects.
26 lines (25 loc) • 798 B
JavaScript
const canvasStores = {};
//non-reactive store
export const getCanvasStore = (canvasId, key) => {
return canvasStores[canvasId]?.[key];
};
export const setCanvasStore = (canvasId, key, value) => {
if (!canvasStores[canvasId]) {
canvasStores[canvasId] = {};
}
canvasStores[canvasId][key] = value;
};
export const updateCanvasStore = (canvasId, key, value) => {
if (!canvasStores[canvasId]) {
throw new Error(`No store found for canvasId "${canvasId}"`);
}
if (!(key in canvasStores[canvasId])) {
throw new Error(`Key "${key}" does not exist in canvasId "${canvasId}"`);
}
canvasStores[canvasId][key] = value;
};
export const resetCanvasStore = (canvasId) => {
if (canvasStores[canvasId]) {
canvasStores[canvasId] = {};
}
};