UNPKG

@mui/x-charts

Version:

The community edition of the Charts components (MUI X).

52 lines (51 loc) 1.56 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.useChartHighlight = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback")); var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect")); const useChartHighlight = ({ store, params, models }) => { (0, _useEnhancedEffect.default)(() => { store.update(prevState => (0, _extends2.default)({}, prevState, { highlight: (0, _extends2.default)({}, prevState.highlight, { item: models.highlightedItem.value }) })); }, [store, models.highlightedItem.value]); const clearHighlight = (0, _useEventCallback.default)(() => { params.onHighlightChange?.(null); models.highlightedItem.setControlledValue(null); }); const setHighlight = (0, _useEventCallback.default)(newItem => { params.onHighlightChange?.(newItem); models.highlightedItem.setControlledValue(newItem); }); return { instance: { clearHighlight, setHighlight } }; }; exports.useChartHighlight = useChartHighlight; useChartHighlight.models = { highlightedItem: { getDefaultValue: () => null } }; useChartHighlight.getInitialState = params => ({ highlight: { item: params.highlightedItem ?? null } }); useChartHighlight.params = { highlightedItem: true, onHighlightChange: true };