UNPKG

react-plot

Version:

Library of React components to render SVG 2D plots.

46 lines 1.59 kB
import { useMemo, useState } from 'react'; export const initialPlotOverridesState = { axes: {}, }; export function usePlotOverridesState() { const [overrides, setOverrides] = useState(initialPlotOverridesState); const controls = useMemo(() => { return { setAxis(axisId, override) { setOverrides((state) => ({ ...state, axes: { ...state.axes, [axisId]: override }, })); }, resetAxis(axisId) { setOverrides((state) => ({ ...state, axes: Object.fromEntries(Object.entries(state.axes).filter(([existingAxisId]) => existingAxisId !== axisId)), })); }, setAxes(overrides) { setOverrides((state) => { const newAxes = { ...state.axes }; for (const [axisId, override] of Object.entries(overrides)) { newAxes[axisId] = override; } return { ...state, axes: newAxes, }; }); }, resetAxes(axisIds) { setOverrides((state) => ({ ...state, axes: Object.fromEntries(Object.entries(state.axes).filter(([axisId]) => !axisIds.includes(axisId))), })); }, }; }, []); return { overrides, controls, }; } //# sourceMappingURL=usePlotOverrides.js.map