import { Grid } from '@visx/visx'; import type { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale'; import { includes } from 'ramda'; import { useMemo } from 'react'; import type { ChartAxis } from '../../Chart/models'; interface Props extends Pick { height: number; leftScale?: | ScaleLinear | ScaleTime | ScaleBand; width: number; xScale?: | ScaleLinear | ScaleTime | ScaleBand; } const Grids = ({ height, width, leftScale, xScale, gridLinesType }: Props): JSX.Element => { const displayRows = useMemo( () => includes(gridLinesType, ['all', 'horizontal', undefined]), [gridLinesType] ); const displayColumns = useMemo( () => includes(gridLinesType, ['all', 'vertical', undefined]), [gridLinesType] ); return ( {displayRows && leftScale && ( )} {displayColumns && xScale && ( )} ); }; export default Grids;