import { useIsSmScreen } from '@crypto-dex-sdk/hooks' import { Transition, TransitionChild } from '@headlessui/react' import classNames from 'classnames' import type { FC, ReactElement } from 'react' import { Fragment } from 'react' import ReactDOM from 'react-dom' import { Dialog } from '../../dialog' import { useSlideInContext } from './SlideIn' import { useEscapeClose } from './useEscapeClose' export interface FromLeftProps { show: boolean onClose: () => void afterEnter?: () => void beforeEnter?: () => void beforeLeave?: () => void afterLeave?: () => void children: ReactElement className?: string } export const FromLeft: FC = ({ show, beforeLeave, beforeEnter, afterEnter, afterLeave, onClose, children, className, }) => { const isSmallScreen = useIsSmScreen() useEscapeClose(onClose) const portal = useSlideInContext() if (!portal) return <> if (isSmallScreen) { return (
{children}
) } return ReactDOM.createPortal(
{children}
, portal, ) }