| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- 'use client'
 
- import { Dialog } from '@headlessui/react'
 
- import { useTranslation } from 'react-i18next'
 
- import Button from '../button'
 
- type DrawerProps = {
 
-   title?: string
 
-   description?: string
 
-   panelClassname?: string
 
-   children: React.ReactNode
 
-   footer?: React.ReactNode
 
-   mask?: boolean
 
-   isOpen: boolean
 
-   // closable: boolean
 
-   onClose: () => void
 
-   onCancel?: () => void
 
-   onOk?: () => void
 
- }
 
- export default function Drawer({
 
-   title = '',
 
-   description = '',
 
-   panelClassname = '',
 
-   children,
 
-   footer,
 
-   mask = true,
 
-   isOpen,
 
-   onClose,
 
-   onCancel,
 
-   onOk,
 
- }: DrawerProps) {
 
-   const { t } = useTranslation()
 
-   return (
 
-     <Dialog
 
-       unmount={false}
 
-       open={isOpen}
 
-       onClose={() => onClose()}
 
-       className="fixed z-30 inset-0 overflow-y-auto"
 
-     >
 
-       <div className="flex w-screen h-screen justify-end">
 
-         {/* mask */}
 
-         <Dialog.Overlay
 
-           className={`z-40 fixed inset-0 ${!mask ? '' : 'bg-black bg-opacity-30'}`}
 
-         />
 
-         <div className={`z-50 flex flex-col justify-between bg-white w-full
 
-         max-w-sm p-6 overflow-hidden text-left align-middle
 
-         shadow-xl ${panelClassname}`}>
 
-           <>
 
-             {title && <Dialog.Title
 
-               as="h3"
 
-               className="text-lg font-medium leading-6 text-gray-900"
 
-             >
 
-               {title}
 
-             </Dialog.Title>}
 
-             {description && <Dialog.Description className='text-gray-500 text-xs font-normal mt-2'>{description}</Dialog.Description>}
 
-             {children}
 
-           </>
 
-           {footer || (footer === null
 
-             ? null
 
-             : <div className="mt-10 flex flex-row justify-end">
 
-               <Button
 
-                 className='mr-2'
 
-                 onClick={() => {
 
-                   onCancel && onCancel()
 
-                 }}>{t('common.operation.cancel')}</Button>
 
-               <Button
 
-                 onClick={() => {
 
-                   onOk && onOk()
 
-                 }}>{t('common.operation.save')}</Button>
 
-             </div>)}
 
-         </div>
 
-       </div>
 
-     </Dialog>
 
-   )
 
- }
 
 
  |