UNPKG

@material-ui/core

Version:

React components that implement Google's Material Design.

32 lines (25 loc) 923 B
"use strict"; 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")); 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]); }