react-native-chart-kit
Version:
Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.
36 lines (35 loc) • 1.35 kB
JavaScript
import { useEffect, useMemo } from "react";
import { buildLineChartDebugLayoutModel } from "./debugLayout";
import { getFontFamilyProps, measureLineChartText } from "./text";
export const useLineChartDebugLayout = ({ enabled, model, onLayoutDebug, tooltip, yAxisLabels }) => {
const { boxes, legendModel, resolvedTheme, xLabelLayout } = model;
const debugLayoutModel = useMemo(() => enabled
? buildLineChartDebugLayoutModel({
boxes,
legendItems: legendModel?.renderProps.items,
measureYLabel: (text) => measureLineChartText(text, {
fontSize: resolvedTheme.typography.axisLabelSize,
...getFontFamilyProps(resolvedTheme.typography.fontFamily)
}),
tooltip,
xLabels: xLabelLayout.items,
yAxisLabelFontSize: resolvedTheme.typography.axisLabelSize,
yLabels: yAxisLabels
})
: undefined, [
boxes,
enabled,
legendModel,
resolvedTheme.typography.axisLabelSize,
resolvedTheme.typography.fontFamily,
tooltip,
xLabelLayout.items,
yAxisLabels
]);
useEffect(() => {
if (debugLayoutModel) {
onLayoutDebug?.(debugLayoutModel);
}
}, [debugLayoutModel, onLayoutDebug]);
return debugLayoutModel;
};