{"version":3,"file":"use-latest-ref.cjs","sources":["../../../src/hooks/use-latest-ref.ts"],"sourcesContent":["import { useLayoutEffect, useRef, type RefObject } from 'react';\n\n/**\n * Returns a ref that always holds the latest `value`, updated in the commit\n * phase (render-phase ref writes are unsafe under the React Compiler).\n *\n * Read `ref.current` inside event handlers or subscription dispatchers to get\n * always-fresh values without listing them as effect dependencies, the\n * `useEffectEvent` pattern (not usable directly while React 18 is supported).\n * @param value - Value to keep current; may change every render.\n * @returns Stable ref whose `current` tracks the last committed `value`.\n * @group Hooks\n * @internal\n */\nexport function useLatestRef<Value>(value: Value): RefObject<Value> {\n  const ref = useRef(value);\n  useLayoutEffect(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n"],"names":["useRef","useLayoutEffect"],"mappings":";;;;;;;;;;;AAcO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAA;AAClE,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAO,KAAK,CAAA,CAAA;AACxB,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAChB,CAAC,CAAA,CAAA;AACD,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}