@mui/x-charts
Version:
The community edition of MUI X Charts components.
62 lines (61 loc) • 2.14 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useChartInteraction = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
const useChartInteraction = ({
store
}) => {
const cleanInteraction = (0, _useEventCallback.default)(function cleanInteraction() {
store.update({
interaction: (0, _extends2.default)({}, store.state.interaction, {
pointer: null
})
});
});
const setLastUpdateSource = (0, _useEventCallback.default)(function setLastUpdateSource(interaction) {
if (store.state.interaction.lastUpdate !== interaction) {
store.set('interaction', (0, _extends2.default)({}, store.state.interaction, {
lastUpdate: interaction
}));
}
});
const setPointerCoordinate = (0, _useEventCallback.default)(function setPointerCoordinate(coordinate) {
store.set('interaction', (0, _extends2.default)({}, store.state.interaction, {
pointer: coordinate,
lastUpdate: coordinate !== null ? 'pointer' : store.state.interaction.lastUpdate
}));
});
const handlePointerEnter = (0, _useEventCallback.default)(function handlePointerEnter(event) {
store.set('interaction', (0, _extends2.default)({}, store.state.interaction, {
pointerType: event.pointerType
}));
});
const handlePointerLeave = (0, _useEventCallback.default)(function handlePointerLeave() {
store.set('interaction', (0, _extends2.default)({}, store.state.interaction, {
pointerType: null
}));
});
return {
instance: {
cleanInteraction,
setLastUpdateSource,
setPointerCoordinate,
handlePointerEnter,
handlePointerLeave
}
};
};
exports.useChartInteraction = useChartInteraction;
useChartInteraction.getInitialState = () => ({
interaction: {
item: null,
pointer: null,
lastUpdate: 'pointer',
pointerType: null
}
});
useChartInteraction.params = {};