'use client'; import * as React from 'react'; import { useIsMobile } from '@djangocfg/ui-core/hooks'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Drawer, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, } from '@djangocfg/ui-core/components'; import { ResponsiveDialogProvider, useResponsiveDialogContext } from '../context'; import type { ResponsiveDialogProps, ResponsiveDialogContentProps, ResponsiveDialogHeaderProps, ResponsiveDialogTitleProps, ResponsiveDialogDescriptionProps, ResponsiveDialogFooterProps, } from '../types'; export function ResponsiveDialog({ open, onOpenChange, children }: ResponsiveDialogProps) { const isMobile = useIsMobile(); const Root = isMobile ? Drawer : Dialog; return ( {children} ); } ResponsiveDialog.displayName = 'ResponsiveDialog'; export function ResponsiveDialogContent({ children, className }: ResponsiveDialogContentProps) { const { isMobile } = useResponsiveDialogContext(); if (isMobile) { return {children}; } return {children}; } ResponsiveDialogContent.displayName = 'ResponsiveDialogContent'; export function ResponsiveDialogHeader({ className, ...props }: ResponsiveDialogHeaderProps) { const { isMobile } = useResponsiveDialogContext(); if (isMobile) { return ; } return ; } ResponsiveDialogHeader.displayName = 'ResponsiveDialogHeader'; export function ResponsiveDialogTitle({ className, ...props }: ResponsiveDialogTitleProps) { const { isMobile } = useResponsiveDialogContext(); if (isMobile) { return ; } return ; } ResponsiveDialogTitle.displayName = 'ResponsiveDialogTitle'; export function ResponsiveDialogDescription({ className, ...props }: ResponsiveDialogDescriptionProps) { const { isMobile } = useResponsiveDialogContext(); if (isMobile) { return ; } return ; } ResponsiveDialogDescription.displayName = 'ResponsiveDialogDescription'; export function ResponsiveDialogFooter({ className, ...props }: ResponsiveDialogFooterProps) { const { isMobile } = useResponsiveDialogContext(); if (isMobile) { return ; } return ; } ResponsiveDialogFooter.displayName = 'ResponsiveDialogFooter';