UNPKG

923 BJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.default = useForkRef;
11
12var React = _interopRequireWildcard(require("react"));
13
14var _setRef = _interopRequireDefault(require("./setRef"));
15
16function useForkRef(refA, refB) {
17 /**
18 * This will create a new function if the ref props change and are defined.
19 * This means react will call the old forkRef with `null` and the new forkRef
20 * with the ref. Cleanup naturally emerges from this behavior
21 */
22 return React.useMemo(function () {
23 if (refA == null && refB == null) {
24 return null;
25 }
26
27 return function (refValue) {
28 (0, _setRef.default)(refA, refValue);
29 (0, _setRef.default)(refB, refValue);
30 };
31 }, [refA, refB]);
32}
\No newline at end of file