web-toolkit
Version:
A GTK inspired toolkit designed to build awesome web apps
37 lines (30 loc) • 1.09 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useForkRef;
var React = _interopRequireWildcard(require("react"));
var _setRef = _interopRequireDefault(require("./setRef"));
/*
* useForkRef.js
* source: https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/utils/useForkRef.js
*/
function useForkRef(refA, refB) {
/**
* This will create a new function if the ref props change and are defined.
* This means react will call the old forkRef with `null` and the new forkRef
* with the ref. Cleanup naturally emerges from this behavior
*/
return React.useMemo(function () {
if (refA == null && refB == null) {
return null;
}
return function (refValue) {
(0, _setRef.default)(refA, refValue);
(0, _setRef.default)(refB, refValue);
};
}, [refA, refB]);
}
//# sourceMappingURL=useForkRef.js.map
;