sccoreui
Version:
ui-sccore
32 lines (31 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const overlaypanel_1 = require("primereact/overlaypanel");
const OverlayPanel = (0, react_1.forwardRef)((props, ref) => {
const overlayRef = (0, react_1.useRef)(null);
(0, react_1.useImperativeHandle)(ref, () => overlayRef.current);
(0, react_1.useEffect)(() => {
const handleScroll = (event) => {
var _a, _b;
const target = event.target;
// Check if target is an HTMLElement
if (!(target instanceof HTMLElement)) {
(_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.hide();
return;
}
// Hide only when scrolling outside overlay
if (!target.closest(".p-overlaypanel")) {
(_b = overlayRef.current) === null || _b === void 0 ? void 0 : _b.hide();
}
};
window.addEventListener("scroll", handleScroll, true);
return () => {
window.removeEventListener("scroll", handleScroll, true);
};
}, []);
return (0, jsx_runtime_1.jsx)(overlaypanel_1.OverlayPanel, Object.assign({ ref: overlayRef }, props));
});
OverlayPanel.displayName = "OverlayPanel";
exports.default = OverlayPanel;