| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- import { Fragment, useCallback } from 'react'
 
- import type { ReactNode } from 'react'
 
- import { Dialog, DialogPanel, Transition, TransitionChild } from '@headlessui/react'
 
- import cn from '@/utils/classnames'
 
- type DialogProps = {
 
-   className?: string
 
-   children: ReactNode
 
-   show: boolean
 
-   onClose?: () => void
 
-   inWorkflow?: boolean
 
- }
 
- const DialogWrapper = ({
 
-   className,
 
-   children,
 
-   show,
 
-   onClose,
 
-   inWorkflow = true,
 
- }: DialogProps) => {
 
-   const close = useCallback(() => onClose?.(), [onClose])
 
-   return (
 
-     <Transition appear show={show} as={Fragment}>
 
-       <Dialog as="div" className="relative z-40" onClose={close}>
 
-         <TransitionChild>
 
-           <div className={cn(
 
-             'fixed inset-0 bg-black bg-opacity-25',
 
-             'data-[closed]:opacity-0',
 
-             'data-[enter]:opacity-100 data-[enter]:duration-300 data-[enter]:ease-out',
 
-             'data-[leave]:opacity-0 data-[leave]:duration-200 data-[leave]:ease-in',
 
-           )} />
 
-         </TransitionChild>
 
-         <div className="fixed inset-0">
 
-           <div className={cn('flex min-h-full flex-col items-end justify-center pb-2', inWorkflow ? 'pt-[112px]' : 'pr-2 pt-[64px]')}>
 
-             <TransitionChild>
 
-               <DialogPanel className={cn(
 
-                 'relative flex h-0 w-[420px] grow flex-col overflow-hidden border-components-panel-border bg-components-panel-bg-alt p-0 text-left align-middle shadow-xl transition-all',
 
-                 inWorkflow ? 'rounded-l-2xl border-b-[0.5px] border-l-[0.5px] border-t-[0.5px]' : 'rounded-2xl border-[0.5px]',
 
-                 'data-[closed]:scale-95  data-[closed]:opacity-0',
 
-                 'data-[enter]:scale-100 data-[enter]:opacity-100 data-[enter]:duration-300 data-[enter]:ease-out',
 
-                 'data-[leave]:scale-95 data-[leave]:opacity-0 data-[leave]:duration-200 data-[leave]:ease-in',
 
-                 className,
 
-               )}>
 
-                 {children}
 
-               </DialogPanel>
 
-             </TransitionChild>
 
-           </div>
 
-         </div>
 
-       </Dialog>
 
-     </Transition >
 
-   )
 
- }
 
- export default DialogWrapper
 
 
  |