@drivy/cobalt
Version:
Opinionated design system for Drivy's projects.
29 lines (28 loc) • 922 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 ("function" == typeof children) return children({
refs,
getReferenceProps,
renderFloating
});
return renderFloating(children);
};
export { DesktopPopover };
//# sourceMappingURL=DesktopPopover.js.map