UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

79 lines (77 loc) 2.3 kB
"use strict"; '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 }) } }; };