@intility/bifrost-react
Version:
React library for Intility's design system, Bifrost.
30 lines (29 loc) • 895 B
JavaScript
"use client";
import { jsx as _jsx } from "react/jsx-runtime";
import { forwardRef, useLayoutEffect, useRef } from "react";
import setRef from "../../utils/setRef.js";
const Popover = /*#__PURE__*/ forwardRef(({ open, ...props }, ref)=>{
const popoverRef = useRef(null);
useLayoutEffect(()=>{
if (!popoverRef.current) return;
const stackElement = popoverRef.current;
if (!open && stackElement.matches(":popover-open")) {
stackElement.hidePopover?.();
}
if (open && !stackElement.matches(":popover-open")) {
stackElement.showPopover?.();
}
}, [
open
]);
return /*#__PURE__*/ _jsx("div", {
...props,
ref: (r)=>{
setRef(popoverRef, r);
setRef(ref, r);
},
popover: "manual"
});
});
Popover.displayName = "Popover";
export default Popover;