Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/meteor/client/components/Page/PageHeaderNoShadow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import type { ComponentPropsWithoutRef, ReactNode } from 'react';
import { useTranslation } from 'react-i18next';

import { HeaderToolbar } from '../Header';
import { SidebarTogglerV2 } from '../SidebarTogglerV2';
import SidebarToggler from '../SidebarToggler';

type PageHeaderProps = {
title: ReactNode;
Expand Down Expand Up @@ -36,7 +36,7 @@ const PageHeaderNoShadow = ({ children = undefined, title, onClickBack, ...props
<FeaturePreview feature='newNavigation'>
<FeaturePreviewOff>
<HeaderToolbar>
<SidebarTogglerV2 />
<SidebarToggler />
</HeaderToolbar>
</FeaturePreviewOff>
<FeaturePreviewOn>{null}</FeaturePreviewOn>
Expand Down
4 changes: 3 additions & 1 deletion apps/meteor/client/providers/LayoutProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { useBreakpoints } from '@rocket.chat/fuselage-hooks';
import { useFeaturePreview } from '@rocket.chat/ui-client';
import { LayoutContext, useRouter, useSetting } from '@rocket.chat/ui-contexts';
import type { ReactNode } from 'react';
import { useMemo, useState, useEffect } from 'react';
Expand All @@ -20,6 +21,7 @@ const LayoutProvider = ({ children }: LayoutProviderProps) => {
const [navBarSearchExpanded, setNavBarSearchExpanded] = useState(false);
const breakpoints = useBreakpoints(); // ["xs", "sm", "md", "lg", "xl", xxl"]
const [hiddenActions, setHiddenActions] = useState(hiddenActionsDefaultValue);
const enhancedNavigationEnabled = useFeaturePreview('newNavigation');

const router = useRouter();
// Once the layout is embedded, it can't be changed
Expand All @@ -28,7 +30,7 @@ const LayoutProvider = ({ children }: LayoutProviderProps) => {
const isMobile = !breakpoints.includes('md');
const isTablet = !breakpoints.includes('lg');

const shouldToggle = isTablet || isMobile;
const shouldToggle = enhancedNavigationEnabled ? isTablet || isMobile : isMobile;

useEffect(() => {
setIsCollapsed(shouldToggle);
Expand Down
12 changes: 6 additions & 6 deletions apps/meteor/client/providers/MeteorProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ const MeteorProvider = ({ children }: MeteorProviderProps) => (
<SessionProvider>
<TooltipProvider>
<ToastMessagesProvider>
<LayoutProvider>
<AvatarUrlProvider>
<UserProvider>
<AvatarUrlProvider>
<UserProvider>
<LayoutProvider>
<AuthenticationProvider>
<CustomSoundProvider>
<DeviceProvider>
Expand All @@ -66,9 +66,9 @@ const MeteorProvider = ({ children }: MeteorProviderProps) => (
</DeviceProvider>
</CustomSoundProvider>
</AuthenticationProvider>
</UserProvider>
</AvatarUrlProvider>
</LayoutProvider>
</LayoutProvider>
</UserProvider>
</AvatarUrlProvider>
</ToastMessagesProvider>
</TooltipProvider>
</SessionProvider>
Expand Down
4 changes: 2 additions & 2 deletions apps/meteor/client/views/room/NotSubscribedRoom.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import type { ReactElement } from 'react';
import { Trans, useTranslation } from 'react-i18next';

import RoomLayout from './layout/RoomLayout';
import { SidebarTogglerV2 } from '../../components/SidebarTogglerV2';
import SidebarToggler from '../../components/SidebarToggler';
import { useJoinRoom } from '../../hooks/useJoinRoom';

type NotSubscribedRoomProps = {
Expand All @@ -30,7 +30,7 @@ const NotSubscribedRoom = ({ rid, reference, type }: NotSubscribedRoomProps): Re
<FeaturePreviewOff>
<Header justifyContent='start'>
<HeaderToolbar>
<SidebarTogglerV2 />
<SidebarToggler />
</HeaderToolbar>
</Header>
</FeaturePreviewOff>
Expand Down
4 changes: 2 additions & 2 deletions apps/meteor/client/views/room/RoomNotFound.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next';

import RoomLayout from './layout/RoomLayout';
import NotFoundState from '../../components/NotFoundState';
import { SidebarTogglerV2 } from '../../components/SidebarTogglerV2';
import SidebarToggler from '../../components/SidebarToggler';

const RoomNotFound = (): ReactElement => {
const { t } = useTranslation();
Expand All @@ -20,7 +20,7 @@ const RoomNotFound = (): ReactElement => {
<FeaturePreviewOff>
<Header justifyContent='start'>
<HeaderToolbar>
<SidebarTogglerV2 />
<SidebarToggler />
</HeaderToolbar>
</Header>
</FeaturePreviewOff>
Expand Down
12 changes: 12 additions & 0 deletions apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,18 @@ export class HomeSidenav {
return this.sidebarToolbar.getByRole('button', { name: 'Home' });
}

get btnDisplay(): Locator {
return this.sidebarToolbar.getByRole('button', { name: 'Display' });
}

get btnCreateNew(): Locator {
return this.sidebarToolbar.getByRole('button', { name: 'Create new' });
}

get btnAdministration(): Locator {
return this.sidebarToolbar.getByRole('button', { name: 'Administration' });
}

async setDisplayMode(mode: 'Extended' | 'Medium' | 'Condensed'): Promise<void> {
await this.sidebarToolbar.getByRole('button', { name: 'Display', exact: true }).click();
await this.sidebarToolbar.getByRole('menuitemcheckbox', { name: mode }).click();
Expand Down
8 changes: 8 additions & 0 deletions apps/meteor/tests/e2e/sidebar.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ test.describe.serial('sidebar', () => {
await page.waitForSelector('main');
});

test('should sidebar`s toolbar buttons not be disabled in tablet view', async ({ page }) => {
await page.setViewportSize({ width: 1023, height: 767 });

await expect(poHomeChannel.sidenav.btnDisplay).not.toBeDisabled();
await expect(poHomeChannel.sidenav.btnCreateNew).not.toBeDisabled();
await expect(poHomeChannel.sidenav.btnAdministration).not.toBeDisabled();
});

test('should navigate on sidebar toolbar using arrow keys', async ({ page }) => {
await poHomeChannel.sidenav.userProfileMenu.focus();
await page.keyboard.press('Tab');
Expand Down
Loading