@modern-kit/react
Version:
1 lines • 1.32 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/utils/mergeRefs/index.ts"],"sourcesContent":["import { isFunction } from '@modern-kit/utils';\n\n/**\n * @description 여러 ref 객체를 하나의 ref 객체로 병합합니다.\n *\n * @template T - 참조 객체의 타입\n * @param {React.Ref<T>[]} refs 병합할 참조 객체 배열\n * @returns {((node: T) => void)} 병합된 참조 객체\n *\n * @example\n * ```tsx\n * const ref1 = useRef<HTMLDivElement>(null);\n * const ref2 = useRef<HTMLDivElement>(null);\n * const mergedRef = mergeRefs(ref1, ref2);\n *\n * <div ref={mergedRef} />\n * ```\n */\nexport const mergeRefs = <T = unknown>(\n ...refs: React.Ref<T>[]\n): ((node: T) => void) => {\n return (node: T) =>\n refs.forEach((ref) => {\n if (isFunction(ref)) {\n ref(node);\n } else if (ref != null) {\n const refToUse = ref as React.MutableRefObject<T>;\n refToUse.current = node;\n }\n });\n};\n"],"names":[],"mappings":";;AAkBO,MAAM,SAAA,GAAY,IACpB,IAAA,KACqB;AACxB,EAAA,OAAO,CAAC,IAAA,KACN,IAAA,CAAK,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACpB,IAAA,IAAI,UAAA,CAAW,GAAG,CAAA,EAAG;AACnB,MAAA,GAAA,CAAI,IAAI,CAAA;AAAA,IACV,CAAA,MAAA,IAAW,OAAO,IAAA,EAAM;AACtB,MAAA,MAAM,QAAA,GAAW,GAAA;AACjB,MAAA,QAAA,CAAS,OAAA,GAAU,IAAA;AAAA,IACrB;AAAA,EACF,CAAC,CAAA;AACL;;;;"}