UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

48 lines (47 loc) 1.1 kB
'use client'; import { getSVGPoint } from "../../../getSVGPoint.js"; export const useChartItemClick = ({ params, store, instance }) => { const { onItemClick } = params; if (!onItemClick) { return { instance: {} }; } const getItemPosition = event => { const svgPoint = getSVGPoint(event?.currentTarget, event); if (!instance.isPointInside(svgPoint.x, svgPoint.y)) { return undefined; } let item = undefined; for (const seriesType of Object.keys(store.state.series.seriesConfig)) { // @ts-ignore The type inference for store.state does not support generic yet item = store.state.series.seriesConfig[seriesType].getItemAtPosition?.(store.state, { x: svgPoint.x, y: svgPoint.y }); if (item) { return item; } } return item; }; return { instance: { handleClick: event => { const item = getItemPosition(event); if (item !== undefined) { onItemClick(event, item); } } } }; }; useChartItemClick.params = { onItemClick: true };