import { forwardRef, ReactNode, Ref } from 'react'; import { DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from './'; import { cn } from '~/utils/'; type SelectionProps = { selectHandler?: () => void; selectClasses?: string; selectText?: string; }; type DialogTemplateProps = { title: string; description?: string; main?: ReactNode; buttons?: ReactNode; leftButtons?: ReactNode; selection?: SelectionProps; className?: string; }; const DialogTemplate = forwardRef((props: DialogTemplateProps, ref: Ref) => { const { title, description, main, buttons, leftButtons, selection, className } = props; const { selectHandler, selectClasses, selectText } = selection || {}; const defaultSelect = 'bg-gray-900 text-white transition-colors hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-gray-100 dark:text-gray-900 dark:hover:bg-gray-200 dark:focus:ring-gray-400 dark:focus:ring-offset-gray-900'; return ( {title} {description && ( {description} )}
{main ? main : null}
{leftButtons ? leftButtons : null}
Cancel {buttons ? buttons : null} {selection ? ( {selectText} ) : null}
); }); export default DialogTemplate;