Spaces:
Running
Running
'use client' | |
import type { FC } from 'react' | |
import React from 'react' | |
import { useTranslation } from 'react-i18next' | |
import cn from 'classnames' | |
import s from './style.module.css' | |
import Modal from '@/app/components/base/modal' | |
import Button from '@/app/components/base/button' | |
import { AlertCircle } from '@/app/components/base/icons/src/vender/solid/alertsAndFeedback' | |
type Props = { | |
isShow: boolean | |
onHide: () => void | |
onRemove: () => void | |
text?: string | |
children?: JSX.Element | |
} | |
const DeleteConfirmModal: FC<Props> = ({ | |
isShow, | |
onHide, | |
onRemove, | |
children, | |
text, | |
}) => { | |
const { t } = useTranslation() | |
if (!isShow) | |
return null | |
return ( | |
<Modal | |
isShow={isShow} | |
onClose={onHide} | |
wrapperClassName='z-50' | |
className={cn(s.delModal, 'z-50')} | |
closable | |
> | |
<div onClick={(e) => { | |
e.stopPropagation() | |
e.stopPropagation() | |
e.nativeEvent.stopImmediatePropagation() | |
}}> | |
<div className={s.warningWrapper}> | |
<AlertCircle className='w-6 h-6 text-red-600' /> | |
</div> | |
{text | |
? ( | |
<div className='text-xl font-semibold text-gray-900 mb-3'>{text}</div> | |
) | |
: children} | |
<div className='flex gap-2 justify-end'> | |
<Button onClick={onHide}>{t('common.operation.cancel')}</Button> | |
<Button | |
type='warning' | |
onClick={onRemove} | |
className='border-red-700 border-[0.5px]' | |
> | |
{t('common.operation.sure')} | |
</Button> | |
</div> | |
</div> | |
</Modal> | |
) | |
} | |
export default React.memo(DeleteConfirmModal) | |