'use client' import React from 'react' import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, DialogFooter } from "@components/ui/dialog" import { ButtonBlack } from '../Form/Form' import { cn } from "@/lib/utils" type ModalParams = { dialogTitle?: string dialogDescription?: string dialogContent: React.ReactNode dialogClose?: React.ReactNode | null dialogTrigger?: React.ReactNode addDefCloseButton?: boolean onOpenChange: (open: boolean) => void isDialogOpen?: boolean minHeight?: 'sm' | 'md' | 'lg' | 'xl' | 'no-min' minWidth?: 'sm' | 'md' | 'lg' | 'xl' | 'no-min' customHeight?: string customWidth?: string } const Modal = (params: ModalParams) => { const getMinHeight = () => { switch (params.minHeight) { case 'sm': return 'md:min-h-[300px]' case 'md': return 'md:min-h-[500px]' case 'lg': return 'md:min-h-[700px]' case 'xl': return 'md:min-h-[900px]' default: return '' } } const getMinWidth = () => { switch (params.minWidth) { case 'sm': return 'md:min-w-[600px]' case 'md': return 'md:min-w-[800px]' case 'lg': return 'md:min-w-[1000px]' case 'xl': return 'md:min-w-[1200px]' default: return '' } } return ( {params.dialogTrigger && ( {params.dialogTrigger} )} {params.dialogTitle && params.dialogDescription && ( {params.dialogTitle} {params.dialogDescription} )}
{params.dialogContent}
{(params.dialogClose || params.addDefCloseButton) && ( {params.dialogClose} {params.addDefCloseButton && ( Close )} )}
) } export default Modal