@coreui/react-pro
Version:
UI Components Library for React.js
41 lines (37 loc) • 1.2 kB
JavaScript
;
var React = require('react');
var core = require('@popperjs/core');
const usePopper = () => {
const _popper = React.useRef(undefined);
const el = React.useRef(null);
const initPopper = React.useCallback((reference, popper, options) => {
var _a;
(_a = _popper.current) === null || _a === void 0 ? void 0 : _a.destroy();
_popper.current = core.createPopper(reference, popper, options);
el.current = popper;
}, []);
const destroyPopper = React.useCallback(() => {
const popperInstance = _popper.current;
if (popperInstance && el.current) {
popperInstance.destroy();
}
_popper.current = undefined;
}, []);
const updatePopper = React.useCallback((options) => {
const popperInstance = _popper.current;
if (popperInstance && options) {
popperInstance.setOptions(options);
}
if (popperInstance) {
popperInstance.update();
}
}, []);
return {
popper: _popper.current,
initPopper,
destroyPopper,
updatePopper,
};
};
exports.usePopper = usePopper;
//# sourceMappingURL=usePopper.js.map