@atlaskit/popup
Version:
A popup displays brief content in an overlay.
23 lines (22 loc) • 687 B
JavaScript
import { useState } from 'react';
import memoizeOne from '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
*/
export const useGetMemoizedMergedTriggerRefNew = () => {
const [getMemoizedMergedTriggerRefNew] = useState(() => memoizeOne((ref, setTriggerRef) => {
return node => {
if (node) {
if (typeof ref === 'function') {
ref(node);
} else if (ref) {
ref.current = node;
}
setTriggerRef(node);
}
};
}));
return getMemoizedMergedTriggerRefNew;
};