'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';