/* eslint-disable react/jsx-props-no-spreading -- Standard shadcn pattern: forward remaining props to underlying elements */ import * as React from 'react'; import { createPortal } from 'react-dom'; import * as DialogPrimitive from '@radix-ui/react-dialog'; import { cn } from '@renderer/lib/utils'; import { X } from 'lucide-react'; const Dialog = DialogPrimitive.Root; const DialogTrigger = DialogPrimitive.Trigger; const DialogClose = DialogPrimitive.Close; type DialogPortalProps = React.ComponentPropsWithoutRef; const DialogPortal = ({ children, container }: DialogPortalProps): React.ReactPortal | null => { const [mounted, setMounted] = React.useState(false); React.useLayoutEffect(() => { setMounted(true); }, []); const portalContainer = container ?? (mounted ? globalThis.document?.body : null); return portalContainer ? createPortal(<>{children}, portalContainer) : null; }; DialogPortal.displayName = DialogPrimitive.Portal.displayName; const DialogOverlay = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )); DialogOverlay.displayName = DialogPrimitive.Overlay.displayName; const DialogContent = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, children, ...props }, ref) => (
Close {children}
)); DialogContent.displayName = DialogPrimitive.Content.displayName; const DialogHeader = ({ className, ...props }: React.HTMLAttributes): React.JSX.Element => (
); const DialogFooter = ({ className, ...props }: React.HTMLAttributes): React.JSX.Element => (
); const DialogTitle = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )); DialogTitle.displayName = DialogPrimitive.Title.displayName; const DialogDescription = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )); DialogDescription.displayName = DialogPrimitive.Description.displayName; export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, }; /* eslint-enable react/jsx-props-no-spreading -- Re-enable after shadcn component */