@mui/x-charts
Version:
The community edition of MUI X Charts components.
79 lines (77 loc) • 2.3 kB
JavaScript
'use client';
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useChartSeries = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var React = _interopRequireWildcard(require("react"));
var _colorPalettes = require("../../../../colorPalettes");
var _processSeries = require("./processSeries");
const useChartSeries = ({
params,
store,
seriesConfig
}) => {
const {
series,
dataset,
theme,
colors
} = params;
// The effect do not track any value defined synchronously during the 1st render by hooks called after `useChartSeries`
// As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one
const isFirstRender = React.useRef(true);
React.useEffect(() => {
if (isFirstRender.current) {
isFirstRender.current = false;
return;
}
store.update(prev => (0, _extends2.default)({}, prev, {
series: (0, _extends2.default)({}, prev.series, {
processedSeries: (0, _processSeries.preprocessSeries)({
series,
colors: typeof colors === 'function' ? colors(theme) : colors,
seriesConfig,
dataset
})
})
}));
}, [colors, dataset, series, theme, seriesConfig, store]);
return {};
};
exports.useChartSeries = useChartSeries;
useChartSeries.params = {
dataset: true,
series: true,
colors: true,
theme: true
};
const EMPTY_ARRAY = [];
useChartSeries.getDefaultizedParams = ({
params
}) => (0, _extends2.default)({}, params, {
series: params.series?.length ? params.series : EMPTY_ARRAY,
colors: params.colors ?? _colorPalettes.rainbowSurgePalette,
theme: params.theme ?? 'light'
});
useChartSeries.getInitialState = ({
series = [],
colors,
theme,
dataset
}, _, seriesConfig) => {
return {
series: {
seriesConfig,
processedSeries: (0, _processSeries.preprocessSeries)({
series,
colors: typeof colors === 'function' ? colors(theme) : colors,
seriesConfig,
dataset
})
}
};
};
;