context.js 692 B

12345678910111213141516171819202122
  1. import * as React from 'react';
  2. import useEvent from "rc-util/es/hooks/useEvent";
  3. function voidFunc() {}
  4. const WatermarkContext = /*#__PURE__*/React.createContext({
  5. add: voidFunc,
  6. remove: voidFunc
  7. });
  8. export function usePanelRef(panelSelector) {
  9. const watermark = React.useContext(WatermarkContext);
  10. const panelEleRef = React.useRef(null);
  11. const panelRef = useEvent(ele => {
  12. if (ele) {
  13. const innerContentEle = panelSelector ? ele.querySelector(panelSelector) : ele;
  14. watermark.add(innerContentEle);
  15. panelEleRef.current = innerContentEle;
  16. } else {
  17. watermark.remove(panelEleRef.current);
  18. }
  19. });
  20. return panelRef;
  21. }
  22. export default WatermarkContext;