Skip to content

Commit 1e35b77

Browse files
committed
addressed review comments
Signed-off-by: Yi Cai <[email protected]>
1 parent d7becf7 commit 1e35b77

File tree

5 files changed

+36
-45
lines changed

5 files changed

+36
-45
lines changed

dynamic-plugins/wrappers/red-hat-developer-hub-backstage-plugin-global-header/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "red-hat-developer-hub-backstage-plugin-global-header",
3-
"version": "0.0.2",
3+
"version": "0.0.5",
44
"main": "src/index.ts",
55
"types": "src/index.ts",
66
"license": "Apache-2.0",

packages/app/src/components/DynamicRoot/CommonIcons.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import Home from '@mui/icons-material/HomeOutlined';
1212
import InsertChart from '@mui/icons-material/InsertChartOutlined';
1313
import Layers from '@mui/icons-material/Layers';
1414
import List from '@mui/icons-material/List';
15+
import Logout from '@mui/icons-material/LogoutOutlined';
16+
import ManageAccounts from '@mui/icons-material/ManageAccountsOutlined';
1517
import MonitorHeart from '@mui/icons-material/MonitorHeartOutlined';
1618
import Notifications from '@mui/icons-material/NotificationsOutlined';
1719
import People from '@mui/icons-material/People';
@@ -21,8 +23,6 @@ import School from '@mui/icons-material/SchoolOutlined';
2123
import Star from '@mui/icons-material/Star';
2224
import Storefront from '@mui/icons-material/StorefrontOutlined';
2325
import Textsms from '@mui/icons-material/TextsmsOutlined';
24-
import ManageAccounts from '@mui/icons-material/ManageAccountsOutlined';
25-
import Logout from '@mui/icons-material/LogoutOutlined';
2626

2727
const CommonIcons: {
2828
[k: string]: React.ComponentType<{}>;

packages/app/src/components/Root/Root.tsx

+12-13
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import { makeStyles } from 'tss-react/mui';
2828

2929
import { policyEntityReadPermission } from '@janus-idp/backstage-plugin-rbac-common';
3030

31-
import { useDisplayedSidebarItems } from '../../utils/dynamicUI/useDisplayedSidebarItems';
31+
import { useDynamicSidebarConfiguration } from '../../utils/dynamicUI/useDynamicSidebarConfiguration';
3232
import { ResolvedMenuItem } from '../DynamicRoot/DynamicRootContext';
3333
import { ApplicationHeaders } from './ApplicationHeaders';
3434
import { MenuIcon } from './MenuIcon';
@@ -102,11 +102,8 @@ const getMenuItem = (menuItem: ResolvedMenuItem, isNestedMenuItem = false) => {
102102
};
103103

104104
export const Root = ({ children }: PropsWithChildren<{}>) => {
105-
const {
106-
showSearchBar,
107-
displayedDynamicRoutes: dynamicRoutes,
108-
displayedMenuItems: menuItems,
109-
} = useDisplayedSidebarItems();
105+
const { showSearchBar, showSettingsButton, dynamicRoutes, menuItems } =
106+
useDynamicSidebarConfiguration();
110107
const [openItems, setOpenItems] = useState<{ [key: string]: boolean }>({});
111108

112109
const { loading: loadingPermission, allowed: canDisplayRBACMenuItem } =
@@ -291,13 +288,15 @@ export const Root = ({ children }: PropsWithChildren<{}>) => {
291288
{renderMenuItems(false, true)}
292289
</SidebarGroup>
293290
<SidebarDivider />
294-
<SidebarGroup
295-
label="Settings"
296-
to="/settings"
297-
icon={<AccountCircleOutlinedIcon />}
298-
>
299-
<SidebarSettings icon={AccountCircleOutlinedIcon} />
300-
</SidebarGroup>
291+
{showSettingsButton && (
292+
<SidebarGroup
293+
label="Settings"
294+
to="/settings"
295+
icon={<AccountCircleOutlinedIcon />}
296+
>
297+
<SidebarSettings icon={AccountCircleOutlinedIcon} />
298+
</SidebarGroup>
299+
)}
301300
</Sidebar>
302301
{children}
303302
</SidebarPage>

packages/app/src/utils/dynamicUI/useDisplayedSidebarItems.ts

-29
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { useContext } from 'react';
2+
3+
import DynamicRootContext from '../../components/DynamicRoot/DynamicRootContext';
4+
5+
export const useDynamicSidebarConfiguration = () => {
6+
const { dynamicRoutes, menuItems, mountPoints } =
7+
useContext(DynamicRootContext);
8+
const headerComponents = mountPoints['global.header/component'] ?? [];
9+
const profileMountPoints = mountPoints['global.header/profile'] ?? [];
10+
11+
return {
12+
showSearchBar: !headerComponents.some(
13+
({ config }) => (config as any)?.type === 'search',
14+
),
15+
showSettingsButton: !profileMountPoints.some(
16+
({ config }) => (config as any)?.props.link === '/settings',
17+
),
18+
dynamicRoutes,
19+
menuItems,
20+
};
21+
};

0 commit comments

Comments
 (0)