UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

39 lines (36 loc) 1.17 kB
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