UNPKG

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