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