@drivy/cobalt
Version:
Opinionated design system for Drivy's projects.
28 lines (25 loc) • 918 B
JavaScript
import { useEffect } from 'react';
import { registerPopover } from './popoverRegistry.js';
import { useDesktopPopoverCore } from './useDesktopPopoverCore.js';
const DesktopPopover = ({ targetRef, children, isOpen, onOpenChange, ...rest }) => {
const referenceElement = targetRef && "current" in targetRef ? targetRef.current : targetRef;
useEffect(() => {
if (!onOpenChange)
return;
return registerPopover(() => {
onOpenChange(false);
});
}, [onOpenChange]);
const { refs, getReferenceProps, renderFloating } = useDesktopPopoverCore({
isOpen,
onOpenChange,
referenceElement,
...rest,
});
if (typeof children === "function") {
return children({ refs, getReferenceProps, renderFloating });
}
return renderFloating(children);
};
export { DesktopPopover };
//# sourceMappingURL=DesktopPopover.js.map