{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/hooks/usePreservedCallback/index.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\n/**\n * @description 주어진 콜백 함수의 `참조를 유지`하고, 컴포넌트 렌더링 사이에 재사용할 수 있도록 도와주는 커스텀 훅입니다.\n *\n * 이 훅은 특히 콜백 함수가 렌더링 중에 변경될 때 유용합니다. 불필요한 함수 생성을 방지하고 최적화하며, 최신 버전의 콜백 함수를 사용 할 수 있습니다.\n *\n * @template T - 콜백 함수의 타입.\n * @param {T} callback - 참조를 유지하고자 하는 콜백 함수.\n * @returns {T} 최신 콜백 함수 참조를 사용하는 메모이제이션된 콜백 함수.\n *\n * @example\n * const preservedCallback = usePreservedCallback(callback);\n *\n * preservedCallback();\n */\nexport function usePreservedCallback<T extends (...args: any[]) => any>(\n  callback: T\n): T {\n  const callbackRef = useRef<T>(callback);\n\n  callbackRef.current = callback;\n\n  return useCallback((...args: any[]) => {\n    return callbackRef.current(...args);\n  }, []) as T;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,SAAgB,qBACd,UACG;CACH,MAAM,cAAc,OAAU,SAAS;CAEvC,YAAY,UAAU;CAEtB,OAAO,aAAa,GAAG,SAAgB;EACrC,OAAO,YAAY,QAAQ,GAAG,KAAK;IAClC,EAAE,CAAC"}