diff --git a/apps/meteor/client/navbar/NavBar.tsx b/apps/meteor/client/navbar/NavBar.tsx new file mode 100644 index 0000000000000..5381dc2a5cdcf --- /dev/null +++ b/apps/meteor/client/navbar/NavBar.tsx @@ -0,0 +1,60 @@ +import { NavBar as NavBarComponent, NavBarSection, NavBarGroup, NavBarDivider } from '@rocket.chat/fuselage'; +import { usePermission, useTranslation, useUser } from '@rocket.chat/ui-contexts'; +import React from 'react'; + +import { useIsCallEnabled, useIsCallReady } from '../contexts/CallContext'; +import { useOmnichannelShowQueueLink } from '../hooks/omnichannel/useOmnichannelShowQueueLink'; +import UserMenu from '../sidebar/header/UserMenu'; +import { + NavBarItemOmniChannelCallDialPad, + NavBarItemOmnichannelContact, + NavBarItemOmnichannelLivechatToggle, + NavBarItemOmnichannelQueue, + NavBarItemOmnichannelCallToggle, +} from './Omnichannel'; +import NavBarAdministrationMenu from './actions/Administration'; +import NavBarAuditMenu from './actions/Audit.tsx'; +import { NavBarPageDirectory, NavBarPageHome, NavBarPageMarketPlace } from './pages'; + +export const NavBar = () => { + const t = useTranslation(); + const user = useUser(); + + const showOmnichannel = usePermission('view-livechat-manager'); + const hasManageAppsPermission = usePermission('manage-apps'); + const hasAccessMarketplacePermission = usePermission('access-marketplace'); + const showMarketplace = hasAccessMarketplacePermission || hasManageAppsPermission; + + const showOmnichannelQueueLink = useOmnichannelShowQueueLink(); + const isCallEnabled = useIsCallEnabled(); + const isCallReady = useIsCallReady(); + + return ( + + + + + + {showMarketplace && } + + + + {showOmnichannel && ( + + {showOmnichannelQueueLink && } + {isCallReady && } + + {isCallEnabled && } + + + )} + + + + + {user && } + + + + ); +}; diff --git a/apps/meteor/client/views/root/MainLayout/LayoutWithSidebar.tsx b/apps/meteor/client/views/root/MainLayout/LayoutWithSidebar.tsx index b92991e7d1f9e..dd78c1c69da7e 100644 --- a/apps/meteor/client/views/root/MainLayout/LayoutWithSidebar.tsx +++ b/apps/meteor/client/views/root/MainLayout/LayoutWithSidebar.tsx @@ -4,7 +4,7 @@ import { useThemeMode } from '@rocket.chat/ui-theming/src/hooks/useThemeMode'; import type { ReactElement, ReactNode } from 'react'; import React, { useEffect, useRef } from 'react'; -import { NavBar } from '../../../NavBar'; +import { NavBar } from '../../../navbar'; import Sidebar from '../../../sidebar'; import AccessibilityShortcut from './AccessibilityShortcut';