import { FocusScope } from '@react-aria/focus'; import { css } from '@rocket.chat/css-in-js'; import { Box } from '@rocket.chat/fuselage'; import { useLayout, useLayoutSizes } from '@rocket.chat/ui-contexts'; import { memo } from 'react'; import Sidebar from './sidebar'; import SidePanel from './sidepanel'; import { NAVIGATION_REGION_ID } from '../../lib/constants'; const NavigationRegion = () => { const { isTablet, sidebar, sidePanel: { displaySidePanel }, } = useLayout(); const { sidebar: sidebarSize } = useLayoutSizes(); const navMobileStyle = css` position: absolute; user-select: none; transform: translate3d(-100%, 0, 0); -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-user-drag: none; touch-action: pan-y; will-change: transform; .rtl & { transform: translate3d(200%, 0, 0); &.opened { box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 15px 1px; transform: translate3d(0px, 0px, 0px); } } `; const navRegionStyle = css` position: relative; z-index: 2; display: flex; height: 100%; user-select: none; transition: transform 0.3s; &.opened { box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 15px 1px; transform: translate3d(0px, 0px, 0px); } .hidden-visibility { visibility: hidden; } `; const navBackdropStyle = css` position: absolute; z-index: 1; top: 0; left: 0; height: 100%; user-select: none; transition: opacity 0.3s; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); touch-action: pan-y; -webkit-user-drag: none; &.opened { width: 100%; background-color: rgb(0, 0, 0); opacity: 0.8; } `; const sidebarWrapStyle = css` width: ${sidebarSize}; min-width: ${sidebarSize}; transition: transform 0.3s; &.collapsed { transform: translateX(-${sidebarSize}); margin-right: -${sidebarSize}; } `; const showSideBar = !displaySidePanel || !isTablet; const isSidebarOpen = !sidebar.isCollapsed && isTablet; const hideSidePanel = sidebar.overlayed || (sidebar.isCollapsed && isTablet); return ( <> {showSideBar && ( )} {displaySidePanel && ( )} {isTablet && ( sidebar.toggle()} /> )} ); }; export default memo(NavigationRegion);