import { MobilePage, MobilePageContent, MobilePageHeader, MobilePagePortal, MobilePageTitle, MobilePageTrigger, } from "@/components/mobile/MobilePage"; import { Drawer, DrawerContent, DrawerTrigger } from "@/components/ui/drawer"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger, } from "@/components/ui/sheet"; import { cn } from "@/lib/utils"; import { isMobile } from "react-device-detect"; import { useRef } from "react"; type PlatformAwareDialogProps = { trigger: JSX.Element; content: JSX.Element; triggerClassName?: string; contentClassName?: string; open: boolean; onOpenChange: (open: boolean) => void; }; export default function PlatformAwareDialog({ trigger, content, triggerClassName = "", contentClassName = "", open, onOpenChange, }: PlatformAwareDialogProps) { if (isMobile) { return ( {trigger}
{content}
); } return ( {trigger} {content} ); } type PlatformAwareSheetProps = { trigger: JSX.Element; title?: string | JSX.Element; content: JSX.Element; triggerClassName?: string; titleClassName?: string; contentClassName?: string; open: boolean; onOpenChange: (open: boolean) => void; }; export function PlatformAwareSheet({ trigger, title, content, triggerClassName = "", titleClassName = "", contentClassName = "", open, onOpenChange, }: PlatformAwareSheetProps) { const scrollerRef = useRef(null); if (isMobile) { return ( onOpenChange(true)}> {trigger} onOpenChange(false)} > {title}
{content}
); } return ( {trigger} {title ?? ""} Information {content} ); }