@mui/x-charts
Version:
The community edition of the Charts components (MUI X).
52 lines (51 loc) • 1.56 kB
JavaScript
;
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
};