Skip to content
Snippets Groups Projects
Unverified Commit 5198fc4b authored by 4shb0rne's avatar 4shb0rne Committed by GitHub
Browse files

fix: sidebar behavior in lower screen size (#35311)

parent a2460efa
No related branches found
No related tags found
No related merge requests found
---
"@rocket.chat/meteor": patch
---
Fixes an issue where menus inside sidebar keeps opened even if the sidebar is collapsed
......@@ -7,6 +7,7 @@ import {
useHandleMenuAction,
type GenericMenuItemProps,
} from '@rocket.chat/ui-client';
import { useLayout } from '@rocket.chat/ui-contexts';
import { useState, memo } from 'react';
import { useTranslation } from 'react-i18next';
......@@ -17,7 +18,7 @@ import { useUserMenu } from './hooks/useUserMenu';
const UserMenu = ({ user }: { user: IUser }) => {
const { t } = useTranslation();
const [isOpen, setIsOpen] = useState(false);
const { sidebar } = useLayout();
const sections = useUserMenu(user);
const items = sections.reduce((acc, { items }) => [...acc, ...items], [] as GenericMenuItemProps[]);
......@@ -36,6 +37,7 @@ const UserMenu = ({ user }: { user: IUser }) => {
onAction={handleAction}
isOpen={isOpen}
onOpenChange={setIsOpen}
disabled={sidebar.isCollapsed}
/>
</FeaturePreviewOff>
<FeaturePreviewOn>
......@@ -50,6 +52,7 @@ const UserMenu = ({ user }: { user: IUser }) => {
onAction={handleAction}
isOpen={isOpen}
onOpenChange={setIsOpen}
disabled={sidebar.isCollapsed}
/>
</FeaturePreviewOn>
</FeaturePreview>
......
import { Sidebar } from '@rocket.chat/fuselage';
import { GenericMenu } from '@rocket.chat/ui-client';
import { useLayout } from '@rocket.chat/ui-contexts';
import type { HTMLAttributes } from 'react';
import { useTranslation } from 'react-i18next';
......@@ -9,10 +10,12 @@ type AdministrationProps = Omit<HTMLAttributes<HTMLElement>, 'is'>;
const Administration = (props: AdministrationProps) => {
const { t } = useTranslation();
const { sidebar } = useLayout();
const sections = useAdministrationMenu();
return <GenericMenu sections={sections} title={t('Administration')} is={Sidebar.TopBar.Action} {...props} />;
return (
<GenericMenu sections={sections} title={t('Administration')} is={Sidebar.TopBar.Action} disabled={sidebar.isCollapsed} {...props} />
);
};
export default Administration;
import { Sidebar } from '@rocket.chat/fuselage';
import { GenericMenu } from '@rocket.chat/ui-client';
import { useLayout } from '@rocket.chat/ui-contexts';
import type { HTMLAttributes } from 'react';
import { useTranslation } from 'react-i18next';
......@@ -9,10 +10,19 @@ type CreateRoomProps = Omit<HTMLAttributes<HTMLElement>, 'is'>;
const CreateRoom = (props: CreateRoomProps) => {
const { t } = useTranslation();
const { sidebar } = useLayout();
const sections = useCreateRoom();
return <GenericMenu icon='edit-rounded' sections={sections} title={t('Create_new')} is={Sidebar.TopBar.Action} {...props} />;
return (
<GenericMenu
icon='edit-rounded'
sections={sections}
title={t('Create_new')}
is={Sidebar.TopBar.Action}
disabled={sidebar.isCollapsed}
{...props}
/>
);
};
export default CreateRoom;
import { Sidebar } from '@rocket.chat/fuselage';
import { GenericMenu } from '@rocket.chat/ui-client';
import { useLayout } from '@rocket.chat/ui-contexts';
import type { HTMLAttributes } from 'react';
import { useTranslation } from 'react-i18next';
......@@ -9,11 +10,19 @@ type SortProps = Omit<HTMLAttributes<HTMLElement>, 'is'>;
const Sort = (props: SortProps) => {
const { t } = useTranslation();
const { sidebar } = useLayout();
const sections = useSortMenu();
return (
<GenericMenu icon='sort' sections={sections} title={t('Display')} selectionMode='multiple' is={Sidebar.TopBar.Action} {...props} />
<GenericMenu
icon='sort'
sections={sections}
title={t('Display')}
selectionMode='multiple'
is={Sidebar.TopBar.Action}
disabled={sidebar.isCollapsed}
{...props}
/>
);
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment