import Avatar from '@/components/ui/Avatar' import Button from '@/components/ui/Button' import type { DialogProps } from '@/components/ui/Dialog' import Dialog from '@/components/ui/Dialog' import { useLocalization } from '@/utils/hooks/useLocalization' import type { ReactNode } from 'react' import { FaCheckCircle, FaExclamationTriangle, FaExclamationCircle, FaInfoCircle, } from 'react-icons/fa'; type StatusType = 'info' | 'success' | 'warning' | 'danger' interface ConfirmDialogProps extends DialogProps { cancelText?: ReactNode | string confirmText?: ReactNode | string confirmButtonColor?: string type?: StatusType title?: ReactNode | string onCancel?: () => void onConfirm?: () => void } const StatusIcon = ({ status }: { status: StatusType }) => { switch (status) { case 'info': return ( ) case 'success': return ( ) case 'warning': return ( ) case 'danger': return ( ) default: return null } } const UiDialog = (props: ConfirmDialogProps) => { const { translate } = useLocalization() const { type = 'info', title, children, onCancel, onConfirm, cancelText = translate('::Cancel'), confirmText = translate('::OK'), confirmButtonColor, ...rest } = props const handleCancel = () => { onCancel?.() } const handleConfirm = () => { onConfirm?.() } return (
{title}
{children}
{onCancel && ( )} {onConfirm && ( )}
) } export default UiDialog