diff --git a/.changeset/hide-create-new-no-perms.md b/.changeset/hide-create-new-no-perms.md new file mode 100644 index 0000000000000..e37280db7aa02 --- /dev/null +++ b/.changeset/hide-create-new-no-perms.md @@ -0,0 +1,5 @@ +--- +'@rocket.chat/meteor': patch +--- + +Hides the "Create New" button in the navbar when the user has no creation permissions, instead of showing a disabled or empty menu. diff --git a/apps/meteor/client/navbar/NavBarPagesGroup/NavBarItemCreateNew.tsx b/apps/meteor/client/navbar/NavBarPagesGroup/NavBarItemCreateNew.tsx index f2b3c2956e97d..49207893ce0dd 100644 --- a/apps/meteor/client/navbar/NavBarPagesGroup/NavBarItemCreateNew.tsx +++ b/apps/meteor/client/navbar/NavBarPagesGroup/NavBarItemCreateNew.tsx @@ -12,6 +12,10 @@ const NavBarItemCreateNew = (props: CreateRoomProps) => { const sections = useCreateNewMenu(); + if (sections.length === 0) { + return null; + } + return ; }; diff --git a/apps/meteor/client/navbar/NavBarPagesGroup/hooks/useCreateNewMenu.ts b/apps/meteor/client/navbar/NavBarPagesGroup/hooks/useCreateNewMenu.ts index 633b193c48398..cce34375d3b7c 100644 --- a/apps/meteor/client/navbar/NavBarPagesGroup/hooks/useCreateNewMenu.ts +++ b/apps/meteor/client/navbar/NavBarPagesGroup/hooks/useCreateNewMenu.ts @@ -1,17 +1,13 @@ -import { useAtLeastOnePermission } from '@rocket.chat/ui-contexts'; import { useTranslation } from 'react-i18next'; import { useCreateNewItems } from './useCreateNewItems'; -const CREATE_ROOM_PERMISSIONS = ['create-c', 'create-p', 'create-d', 'start-discussion', 'start-discussion-other-user']; - export const useCreateNewMenu = () => { const { t } = useTranslation(); - const showCreate = useAtLeastOnePermission(CREATE_ROOM_PERMISSIONS); const createRoomItems = useCreateNewItems(); - const sections = [{ title: t('Create_new'), items: createRoomItems, permission: showCreate }]; + const sections = [{ title: t('Create_new'), items: createRoomItems }]; - return sections.filter((section) => section.permission); + return sections.filter((section) => section.items.length > 0); }; diff --git a/packages/ui-client/src/components/GenericMenu/GenericMenu.tsx b/packages/ui-client/src/components/GenericMenu/GenericMenu.tsx index 73209c7c56552..e6f32aa7d1c92 100644 --- a/packages/ui-client/src/components/GenericMenu/GenericMenu.tsx +++ b/packages/ui-client/src/components/GenericMenu/GenericMenu.tsx @@ -19,7 +19,6 @@ type GenericMenuConditionalProps = sections?: { title?: ReactNode; items: GenericMenuItemProps[]; - permission?: boolean | '' | 0 | null | undefined; }[]; items?: never; }