@atlaskit/popup
Version:
A popup displays brief content in an overlay.
34 lines (33 loc) • 1.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useGetMemoizedMergedTriggerRefNew = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
/**
* Here setting ref is not dependent on isOpen flag which is failing in React 18 strict mode
* Implemented behind ff `platform-design-system-popup-ref`
* @returns Function to set trigger ref
*/
var useGetMemoizedMergedTriggerRefNew = exports.useGetMemoizedMergedTriggerRefNew = function useGetMemoizedMergedTriggerRefNew() {
var _useState = (0, _react.useState)(function () {
return (0, _memoizeOne.default)(function (ref, setTriggerRef) {
return function (node) {
if (node) {
if (typeof ref === 'function') {
ref(node);
} else if (ref) {
ref.current = node;
}
setTriggerRef(node);
}
};
});
}),
_useState2 = (0, _slicedToArray2.default)(_useState, 1),
getMemoizedMergedTriggerRefNew = _useState2[0];
return getMemoizedMergedTriggerRefNew;
};