@mui/x-charts
Version:
The community edition of the Charts components (MUI X).
37 lines • 1.5 kB
JavaScript
import * as React from 'react';
import { useDrawingArea } from '../../hooks/useDrawingArea';
import { useSeries } from '../../hooks/useSeries';
import { CartesianContext } from './CartesianContext';
import { normalizeAxis } from './normalizeAxis';
import { computeValue } from './computeValue';
import { jsx as _jsx } from "react/jsx-runtime";
function CartesianContextProvider(props) {
const {
xAxis: inXAxis,
yAxis: inYAxis,
dataset,
xExtremumGetters,
yExtremumGetters,
children
} = props;
const formattedSeries = useSeries();
const drawingArea = useDrawingArea();
const xAxis = React.useMemo(() => normalizeAxis(inXAxis, dataset, 'x'), [inXAxis, dataset]);
const yAxis = React.useMemo(() => normalizeAxis(inYAxis, dataset, 'y'), [inYAxis, dataset]);
const xValues = React.useMemo(() => computeValue(drawingArea, formattedSeries, xAxis, xExtremumGetters, 'x'), [drawingArea, formattedSeries, xAxis, xExtremumGetters]);
const yValues = React.useMemo(() => computeValue(drawingArea, formattedSeries, yAxis, yExtremumGetters, 'y'), [drawingArea, formattedSeries, yAxis, yExtremumGetters]);
const value = React.useMemo(() => ({
isInitialized: true,
data: {
xAxis: xValues.axis,
yAxis: yValues.axis,
xAxisIds: xValues.axisIds,
yAxisIds: yValues.axisIds
}
}), [xValues, yValues]);
return /*#__PURE__*/_jsx(CartesianContext.Provider, {
value: value,
children: children
});
}
export { CartesianContextProvider };