| 12345678910111213141516171819 |
- 'use client'
- // based on https://github.com/Andarist/use-constant
- import { useRef } from 'react'
- type ResultBox<T> = { v: T }
- /**
- * React hook for creating a value exactly once
- */
- export function useConstant<T>(fn: () => T): T {
- const ref = useRef<ResultBox<T> | null>(null)
- if (!ref.current) {
- ref.current = { v: fn() }
- }
- return ref.current.v
- }
|