import { cn } from "@/lib/utils"; import { isPWA } from "@/utils/isPWA"; import { ReactNode, useEffect, useState } from "react"; import { Button } from "../ui/button"; import { IoMdArrowRoundBack } from "react-icons/io"; import { motion, AnimatePresence } from "framer-motion"; type MobilePageProps = { children: ReactNode; open: boolean; onOpenChange: (open: boolean) => void; }; export function MobilePage({ children, open, onOpenChange }: MobilePageProps) { const [isVisible, setIsVisible] = useState(open); useEffect(() => { if (open) { setIsVisible(true); } }, [open]); const handleAnimationComplete = () => { if (!open) { setIsVisible(false); onOpenChange(false); } }; return ( {isVisible && ( {children} )} ); } type MobileComponentProps = { children: ReactNode; className?: string; }; export function MobilePageContent({ children, className, ...props }: MobileComponentProps) { return (
{children}
); } export function MobilePageDescription({ children, className, ...props }: MobileComponentProps) { return (

{children}

); } interface MobilePageHeaderProps extends React.HTMLAttributes { onClose: () => void; } export function MobilePageHeader({ children, className, onClose, ...props }: MobilePageHeaderProps) { return (
{children}
); } export function MobilePageTitle({ children, className, ...props }: MobileComponentProps) { return (

{children}

); }