@grafana/ui
Version:
Grafana Components Library
31 lines (26 loc) • 804 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
;
const PopoverController = ({ placement = "auto", content, children, hideAfter }) => {
const [show, setShow] = React.useState(false);
const hideTimeoutRef = React.useRef(null);
const showPopper = React.useCallback(() => {
if (hideTimeoutRef.current) {
clearTimeout(hideTimeoutRef.current);
}
setShow(true);
}, []);
const hidePopper = React.useCallback(() => {
hideTimeoutRef.current = setTimeout(() => {
setShow(false);
}, hideAfter);
}, [hideAfter]);
return children(showPopper, hidePopper, {
show,
placement,
content
});
};
exports.PopoverController = PopoverController;
//# sourceMappingURL=PopoverController.cjs.map