acud
Version:
acg react 组件库
30 lines • 823 B
JavaScript
import { useEvent } from 'rc-util';
import * as React from 'react';
/**
* 无参函数
*/
function voidFunc() {}
var WatermarkContext = /*#__PURE__*/React.createContext({
add: voidFunc,
remove: voidFunc
});
/**
* 使用面板引用。
* @param panelSelector - 面板选择器。
* @returns 返回使用面板引用的函数。
*/
export function usePanelRef(panelSelector) {
var watermark = React.useContext(WatermarkContext);
var panelEleRef = React.useRef();
var panelRef = useEvent(function (ele) {
if (ele) {
var innerContentEle = panelSelector ? ele.querySelector(panelSelector) : ele;
watermark.add(innerContentEle);
panelEleRef.current = innerContentEle;
} else {
watermark.remove(panelEleRef.current);
}
});
return panelRef;
}
export default WatermarkContext;