koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
1 lines • 1.21 kB
Source Map (JSON)
{"version":3,"file":"useCallbackRef.cjs","sources":["../../../../src/internal/hooks/useCallbackRef.ts"],"sourcesContent":["import {useCallback, useRef} from 'react';\n\nimport {useSafeLayoutEffect} from './useSafeLayoutEffect.ts';\n\n/**\n * React hook to persist any value between renders,\n * but keeps it up-to-date if it changes.\n *\n * @param fn the function to persist\n * @param deps the function dependency list\n */\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nexport function useCallbackRef<T extends (...args: any[]) => any>(\n fn: T | undefined,\n deps: React.DependencyList = []\n): T {\n const ref = useRef(fn);\n\n useSafeLayoutEffect(() => {\n ref.current = fn;\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback(((...args) => ref.current?.(...args)) as T, deps);\n}\n"],"names":["useCallbackRef","fn","deps","ref","useRef","useSafeLayoutEffect","useCallback","args","_a"],"mappings":"6JAYO,SAASA,EACZC,EACAC,EAA6B,GAC5B,CACK,MAAAC,EAAMC,SAAOH,CAAE,EAErBI,OAAAA,EAAAA,oBAAoB,IAAM,CACtBF,EAAI,QAAUF,CAAA,CACjB,EAGMK,EAAA,YAAa,IAAIC,IAAS,OAAA,OAAAC,EAAAL,EAAI,UAAJ,YAAAK,EAAA,KAAAL,EAAc,GAAGI,IAAaL,CAAI,CACvE"}