UNPKG

1.07 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.mergeRefs = mergeRefs;
5exports.default = void 0;
6
7var _react = require("react");
8
9var toFnRef = function toFnRef(ref) {
10 return !ref || typeof ref === 'function' ? ref : function (value) {
11 ref.current = value;
12 };
13};
14
15function mergeRefs(refA, refB) {
16 var a = toFnRef(refA);
17 var b = toFnRef(refB);
18 return function (value) {
19 if (a) a(value);
20 if (b) b(value);
21 };
22}
23/**
24 * Create and returns a single callback ref composed from two other Refs.
25 *
26 * ```tsx
27 * const Button = React.forwardRef((props, ref) => {
28 * const [element, attachRef] = useCallbackRef<HTMLButtonElement>();
29 * const mergedRef = useMergedRefs(ref, attachRef);
30 *
31 * return <button ref={mergedRef} {...props}/>
32 * })
33 * ```
34 *
35 * @param refA A Callback or mutable Ref
36 * @param refB A Callback or mutable Ref
37 * @category refs
38 */
39
40
41function useMergedRefs(refA, refB) {
42 return (0, _react.useMemo)(function () {
43 return mergeRefs(refA, refB);
44 }, [refA, refB]);
45}
46
47var _default = useMergedRefs;
48exports.default = _default;
\No newline at end of file