import { forwardRef, ReactNode, Ref } from 'react'; import { DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from './'; import { cn } from '~/utils/'; import { useLocalize } from '~/hooks'; type SelectionProps = { selectHandler?: () => void; selectClasses?: string; selectText?: string; }; type DialogTemplateProps = { title: string; description?: string; main?: ReactNode; buttons?: ReactNode; leftButtons?: ReactNode; selection?: SelectionProps; className?: string; headerClassName?: string; showCloseButton?: boolean; }; const DialogTemplate = forwardRef((props: DialogTemplateProps, ref: Ref) => { const localize = useLocalize(); const { title, description, main, buttons, leftButtons, selection, className, headerClassName, showCloseButton, } = props; const { selectHandler, selectClasses, selectText } = selection || {}; const Cancel = localize('com_ui_cancel'); const defaultSelect = 'bg-gray-800 text-white transition-colors hover:bg-gray-700 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-gray-200 dark:text-gray-800 dark:hover:bg-gray-200'; return ( e.stopPropagation()} > {title} {description && ( {description} )}
{main ? main : null}
{leftButtons ? leftButtons : null}
{Cancel} {buttons ? buttons : null} {selection ? ( {selectText} ) : null}
); }); export default DialogTemplate;