| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | 
							- import type { FC, ReactElement } from 'react'
 
- import { useTranslation } from 'react-i18next'
 
- import cn from 'classnames'
 
- import s from './common.module.css'
 
- import Modal from '@/app/components/base/modal'
 
- import { XClose } from '@/app/components/base/icons/src/vender/line/general'
 
- import { AlertCircle } from '@/app/components/base/icons/src/vender/solid/alertsAndFeedback'
 
- import { CheckCircle } from '@/app/components/base/icons/src/vender/solid/general'
 
- import Button from '@/app/components/base/button'
 
- export type ConfirmCommonProps = {
 
-   type?: string
 
-   isShow: boolean
 
-   onCancel: () => void
 
-   title: string
 
-   desc?: string
 
-   onConfirm?: () => void
 
-   showOperate?: boolean
 
-   showOperateCancel?: boolean
 
-   confirmBtnClassName?: string
 
-   confirmText?: string
 
-   confirmWrapperClassName?: string
 
- }
 
- const ConfirmCommon: FC<ConfirmCommonProps> = ({
 
-   type = 'danger',
 
-   isShow,
 
-   onCancel,
 
-   title,
 
-   desc,
 
-   onConfirm,
 
-   showOperate = true,
 
-   showOperateCancel = true,
 
-   confirmBtnClassName,
 
-   confirmText,
 
-   confirmWrapperClassName,
 
- }) => {
 
-   const { t } = useTranslation()
 
-   const CONFIRM_MAP: Record<string, { icon: ReactElement; confirmText: string }> = {
 
-     danger: {
 
-       icon: <AlertCircle className='w-6 h-6 text-[#D92D20]' />,
 
-       confirmText: t('common.operation.remove'),
 
-     },
 
-     success: {
 
-       icon: <CheckCircle className='w-6 h-6 text-[#039855]' />,
 
-       confirmText: t('common.operation.ok'),
 
-     },
 
-   }
 
-   return (
 
-     <Modal isShow={isShow} onClose={() => {}} className='!w-[480px] !max-w-[480px] !p-0 !rounded-2xl' wrapperClassName={confirmWrapperClassName}>
 
-       <div className={cn(s[`wrapper-${type}`], 'relative p-8')}>
 
-         <div className='flex items-center justify-center absolute top-4 right-4 w-8 h-8 cursor-pointer' onClick={onCancel}>
 
-           <XClose className='w-4 h-4 text-gray-500' />
 
-         </div>
 
-         <div className='flex items-center justify-center mb-3 w-12 h-12 bg-white shadow-xl rounded-xl'>
 
-           {CONFIRM_MAP[type].icon}
 
-         </div>
 
-         <div className='text-xl font-semibold text-gray-900'>{title}</div>
 
-         {
 
-           desc && <div className='mt-1 text-sm text-gray-500'>{desc}</div>
 
-         }
 
-         {
 
-           showOperate && (
 
-             <div className='flex items-center justify-end mt-10'>
 
-               {
 
-                 showOperateCancel && (
 
-                   <Button
 
-                     className='mr-2 min-w-24 text-sm font-medium !text-gray-700'
 
-                     onClick={onCancel}
 
-                   >
 
-                     {t('common.operation.cancel')}
 
-                   </Button>
 
-                 )
 
-               }
 
-               <Button
 
-                 type='primary'
 
-                 className={confirmBtnClassName || ''}
 
-                 onClick={onConfirm}
 
-               >
 
-                 {confirmText || CONFIRM_MAP[type].confirmText}
 
-               </Button>
 
-             </div>
 
-           )
 
-         }
 
-       </div>
 
-     </Modal>
 
-   )
 
- }
 
- export default ConfirmCommon
 
 
  |