import * as React from 'react' type ResultBox = { v: T } export function useConstant(fn: () => T): T { // RSC compat if (typeof document === 'undefined') { return React.useMemo(() => fn(), []) } const ref = React.useRef>(undefined) if (!ref.current) { ref.current = { v: fn() } } return ref.current.v }