import { Box } from '@rocket.chat/fuselage'; import { useLayout, useCurrentRoute, useRoutePath, useSetting, useCurrentModal, useRoute } from '@rocket.chat/ui-contexts'; import { PaletteStyleTag } from '@rocket.chat/ui-theming/src/PaletteStyleTag'; import { SidebarPaletteStyleTag } from '@rocket.chat/ui-theming/src/SidebarPaletteStyleTag'; import type { ReactElement, ReactNode } from 'react'; import React, { useEffect, useRef } from 'react'; import Sidebar from '../../../sidebar'; const LayoutWithSidebar = ({ children }: { children: ReactNode }): ReactElement => { const { isEmbedded: embeddedLayout } = useLayout(); const [currentRouteName = '', currentParameters = {}] = useCurrentRoute(); const modal = useCurrentModal(); const currentRoutePath = useRoutePath(currentRouteName, currentParameters); const channelRoute = useRoute('channel'); const removeSidenav = embeddedLayout && !currentRoutePath?.startsWith('/admin'); const readReceiptsEnabled = useSetting('Message_Read_Receipt_Store_Users'); const firstChannelAfterLogin = useSetting('First_Channel_After_Login'); const redirected = useRef(false); useEffect(() => { const needToBeRedirect = currentRoutePath && ['/', '/home'].includes(currentRoutePath); if (!needToBeRedirect) { return; } if (!firstChannelAfterLogin || typeof firstChannelAfterLogin !== 'string') { return; } if (redirected.current) { return; } redirected.current = true; channelRoute.push({ name: firstChannelAfterLogin }); }, [channelRoute, currentRoutePath, firstChannelAfterLogin]); return ( {!removeSidenav ? : null}
{children}
); }; export default LayoutWithSidebar;