'use client'; import * as PopoverPrimitive from '@radix-ui/react-popover'; import * as React from 'react'; import { cn } from '@/lib/utils'; interface PopoverProps extends PopoverPrimitive.PopoverProps { disableOutsideClick?: boolean; } const Popover = ({ children, open: openState, onOpenChange, disableOutsideClick = false, }: PopoverProps) => { const [open, setOpen] = React.useState(true); React.useEffect(() => { setOpen(!!openState); }, [openState]); const handleOnOpenChange = React.useCallback( (e: boolean) => { if (disableOutsideClick && !e) { return; } if (onOpenChange) { onOpenChange?.(e); } setOpen(e); }, [onOpenChange, disableOutsideClick], ); return ( {children} ); }; const PopoverTrigger = PopoverPrimitive.Trigger; const PopoverContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, align = 'center', sideOffset = 4, ...props }, ref) => ( )); PopoverContent.displayName = PopoverPrimitive.Content.displayName; export { Popover, PopoverContent, PopoverTrigger };