| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | import { Dialog, Transition } from '@headlessui/react'import { Fragment } from 'react'import { useTranslation } from 'react-i18next'import ConfirmUI from '../confirm-ui'// https://headlessui.com/react/dialogtype IConfirm = {  className?: string  isShow: boolean  onClose: () => void  type?: 'info' | 'warning'  title: string  content: string  confirmText?: string  onConfirm: () => void  cancelText?: string  onCancel: () => void}export default function Confirm({  isShow,  onClose,  type = 'warning',  title,  content,  confirmText,  cancelText,  onConfirm,  onCancel,}: IConfirm) {  const { t } = useTranslation()  const confirmTxt = confirmText || `${t('common.operation.confirm')}`  const cancelTxt = cancelText || `${t('common.operation.cancel')}`  return (    <Transition appear show={isShow} as={Fragment}>      <Dialog as="div" className="relative z-[100]" onClose={onClose} onClick={e => e.preventDefault()}>        <Transition.Child          as={Fragment}          enter="ease-out duration-300"          enterFrom="opacity-0"          enterTo="opacity-100"          leave="ease-in duration-200"          leaveFrom="opacity-100"          leaveTo="opacity-0"        >          <div className="fixed inset-0 bg-black bg-opacity-25" />        </Transition.Child>        <div className="fixed inset-0 overflow-y-auto">          <div className="flex items-center justify-center min-h-full p-4 text-center">            <Transition.Child              as={Fragment}              enter="ease-out duration-300"              enterFrom="opacity-0 scale-95"              enterTo="opacity-100 scale-100"              leave="ease-in duration-200"              leaveFrom="opacity-100 scale-100"              leaveTo="opacity-0 scale-95"            >              <Dialog.Panel className={'w-full max-w-md transform overflow-hidden rounded-2xl bg-white text-left align-middle shadow-xl transition-all'}>                <ConfirmUI                  type={type}                  title={title}                  content={content}                  confirmText={confirmTxt}                  cancelText={cancelTxt}                  onConfirm={onConfirm}                  onCancel={onCancel}                />              </Dialog.Panel>            </Transition.Child>          </div>        </div>      </Dialog>    </Transition>  )}
 |