FactuGES_ERP/packages/rdx-ui/src/components/full-screen-modal.tsx
David d57b71c200 refactor: standardize import statements and formatting across components
- Updated import statements in `textarea.tsx`, `toggle.tsx`, and `tooltip.tsx` for consistency.
- Added missing semicolons and adjusted formatting in `use-mobile.ts` and `use-mobile.tsx`.
- Cleaned up `package.json` and `root.json` files by removing unnecessary line breaks.
- Simplified `turbo.json` by consolidating array formatting for better readability.
2026-09-10 13:26:33 +02:00

47 lines
1.4 KiB
TypeScript

import { Button, Dialog, DialogContent } from "@repo/shadcn-ui/components";
import { cn } from "@repo/shadcn-ui/lib/utils";
import { X } from "lucide-react";
import type React from "react";
interface FullscreenModalProps {
isOpen: boolean;
onClose: () => void;
title: string;
children: React.ReactNode;
className?: string;
}
export const FullscreenModal = ({
isOpen,
onClose,
title,
children,
className,
}: FullscreenModalProps) => {
return (
<Dialog onOpenChange={onClose} open={isOpen}>
<DialogContent
className={cn(
"max-w-none max-h-none w-screen h-screen",
"bg-background border-0 rounded-none p-0",
"data-[state=open]:animate-in data-[state=closed]:animate-out",
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
className
)}
>
{/* Header fijo */}
<div className="flex items-center justify-between p-6 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
<h2 className="text-2xl font-semibold tracking-tight">{title}</h2>
<Button className="size-8 p-0" onClick={onClose} size="sm" variant="ghost">
<X className="h-4 w-4" />
<span className="sr-only">Cerrar</span>
</Button>
</div>
{/* Contenido scrolleable */}
<div className="flex-1 overflow-auto p-6">{children}</div>
</DialogContent>
</Dialog>
);
};