// @flow // $FlowFixMe import { Global } from '@emotion/react'; // $FlowFixMe import { grey } from '@mui/material/colors'; // $FlowFixMe import Typography from '@mui/material/Typography'; import { HEADER_HEIGHT_MOBILE } from 'component/fileRenderMobile/view'; import { SwipeableDrawer as MUIDrawer } from '@mui/material'; import * as ICONS from 'constants/icons'; import * as React from 'react'; import Button from 'component/button'; import Icon from 'component/common/icon'; import Portal from '@mui/material/Portal'; const DRAWER_PULLER_HEIGHT = 42; type Props = { children: Node, open: Boolean, theme: string, mobilePlayerDimensions?: { height: number }, title: string, didInitialDisplay?: boolean, toggleDrawer: () => void, }; export default function SwipeableDrawer(props: Props) { const { mobilePlayerDimensions, title, children, open, theme, didInitialDisplay, toggleDrawer } = props; const [coverHeight, setCoverHeight] = React.useState(); const videoHeight = coverHeight || (mobilePlayerDimensions ? mobilePlayerDimensions.height : 0); React.useEffect(() => { if (open && !mobilePlayerDimensions) { const element = document.querySelector(`.file-page__video-container`); if (element) { const rect = element.getBoundingClientRect(); setCoverHeight(rect.height); } } }, [mobilePlayerDimensions, open]); const drawerGlobalStyles = ( .MuiPaper-root': { overflow: 'visible', color: 'var(--color-text)', position: 'absolute', height: `calc(100% - ${DRAWER_PULLER_HEIGHT}px)`, }, }} /> ); const Puller = () => ( ); return ( <> {drawerGlobalStyles} {didInitialDisplay && (
{open ? ( <> {title}
)} {children}
); }