UNPKG

@sanity/tsdoc

Version:

Generate API reference docs from TypeScript projects and store in a Sanity-friendly JSON format. Render a static frontend, or as React components.

20 lines (14 loc) 670 B
import {useContext, useMemo} from 'react' import {addResponsiveProp} from './addResponsiveProp' import {SizeContext} from './SizeContext' export function useSize(props?: {size?: number | number[]; min?: number; max?: number}): number[] { const {min = 0, max = Infinity, size = 0} = props || {} const delta = useContext(SizeContext) ?? 0 const __cache_key__ = JSON.stringify([size, delta]) return useMemo( () => addResponsiveProp(size, delta).map((s) => Math.min(Math.max(s, min), max)), // Improve performance: Keep object identify for a given hash of the value // eslint-disable-next-line react-hooks/exhaustive-deps [__cache_key__], ) }