import { useMemo } from 'react'; import { scaleLinear } from 'd3'; type UseScaleLinearYProps = { maxValue: number; minValue: number; yStart: number; yEnd: number; }; const useScaleLinearY = ({ maxValue, minValue, yStart, yEnd, }: UseScaleLinearYProps) => { const maxValueOrZero = maxValue || 0; const minValueOrZero = minValue || 0; return useMemo( () => scaleLinear() .domain([minValueOrZero, maxValueOrZero]) .range([yEnd, yStart]), [maxValueOrZero, minValueOrZero, yStart, yEnd] ); }; export default useScaleLinearY;