UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

48 lines (46 loc) 1.7 kB
'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; import { useItemHighlightStateGetter } from "../../hooks/useItemHighlightStateGetter.mjs"; import { useIsItemFocusedGetter } from "../../hooks/useIsItemFocusedGetter.mjs"; import { getModifiedArcProperties } from "./getModifiedArcProperties.mjs"; export function useTransformData(series) { const { id: seriesId, data, faded, highlighted } = series; const getHighlightState = useItemHighlightStateGetter(); const isItemFocused = useIsItemFocusedGetter(); const dataWithHighlight = React.useMemo(() => data.map((item, itemIndex) => { const identifier = { type: 'pie', seriesId, dataIndex: itemIndex }; const highlightState = getHighlightState(identifier); const isHighlighted = highlightState === 'highlighted'; const isFaded = highlightState === 'faded'; const isFocused = isItemFocused(identifier); // TODO v9: Replace the second argument with the result of useSeriesLayout const arcSizes = getModifiedArcProperties(series, { radius: { inner: series.innerRadius ?? 0, outer: series.outerRadius, label: series.arcLabelRadius ?? 0, available: 0 } }, isHighlighted, isFaded); const attributesOverride = _extends({ additionalRadius: 0 }, isFaded && faded || isHighlighted && highlighted || {}); return _extends({}, item, attributesOverride, { dataIndex: itemIndex, isFaded, isHighlighted, isFocused }, arcSizes); }), [data, seriesId, getHighlightState, isItemFocused, series, faded, highlighted]); return dataWithHighlight; }