Skip to content

Commit

Permalink
addressed review comments
Browse files Browse the repository at this point in the history
Signed-off-by: Yi Cai <yicai@redhat.com>
  • Loading branch information
ciiay committed Jan 31, 2025
1 parent d7becf7 commit 1e35b77
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 45 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "red-hat-developer-hub-backstage-plugin-global-header",
"version": "0.0.2",
"version": "0.0.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/components/DynamicRoot/CommonIcons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import Home from '@mui/icons-material/HomeOutlined';
import InsertChart from '@mui/icons-material/InsertChartOutlined';
import Layers from '@mui/icons-material/Layers';
import List from '@mui/icons-material/List';
import Logout from '@mui/icons-material/LogoutOutlined';
import ManageAccounts from '@mui/icons-material/ManageAccountsOutlined';
import MonitorHeart from '@mui/icons-material/MonitorHeartOutlined';
import Notifications from '@mui/icons-material/NotificationsOutlined';
import People from '@mui/icons-material/People';
Expand All @@ -21,8 +23,6 @@ import School from '@mui/icons-material/SchoolOutlined';
import Star from '@mui/icons-material/Star';
import Storefront from '@mui/icons-material/StorefrontOutlined';
import Textsms from '@mui/icons-material/TextsmsOutlined';
import ManageAccounts from '@mui/icons-material/ManageAccountsOutlined';
import Logout from '@mui/icons-material/LogoutOutlined';

const CommonIcons: {
[k: string]: React.ComponentType<{}>;
Expand Down
25 changes: 12 additions & 13 deletions packages/app/src/components/Root/Root.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import { makeStyles } from 'tss-react/mui';

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

import { useDisplayedSidebarItems } from '../../utils/dynamicUI/useDisplayedSidebarItems';
import { useDynamicSidebarConfiguration } from '../../utils/dynamicUI/useDynamicSidebarConfiguration';
import { ResolvedMenuItem } from '../DynamicRoot/DynamicRootContext';
import { ApplicationHeaders } from './ApplicationHeaders';
import { MenuIcon } from './MenuIcon';
Expand Down Expand Up @@ -102,11 +102,8 @@ const getMenuItem = (menuItem: ResolvedMenuItem, isNestedMenuItem = false) => {
};

export const Root = ({ children }: PropsWithChildren<{}>) => {
const {
showSearchBar,
displayedDynamicRoutes: dynamicRoutes,
displayedMenuItems: menuItems,
} = useDisplayedSidebarItems();
const { showSearchBar, showSettingsButton, dynamicRoutes, menuItems } =
useDynamicSidebarConfiguration();
const [openItems, setOpenItems] = useState<{ [key: string]: boolean }>({});

const { loading: loadingPermission, allowed: canDisplayRBACMenuItem } =
Expand Down Expand Up @@ -291,13 +288,15 @@ export const Root = ({ children }: PropsWithChildren<{}>) => {
{renderMenuItems(false, true)}
</SidebarGroup>
<SidebarDivider />
<SidebarGroup
label="Settings"
to="/settings"
icon={<AccountCircleOutlinedIcon />}
>
<SidebarSettings icon={AccountCircleOutlinedIcon} />
</SidebarGroup>
{showSettingsButton && (
<SidebarGroup
label="Settings"
to="/settings"
icon={<AccountCircleOutlinedIcon />}
>
<SidebarSettings icon={AccountCircleOutlinedIcon} />
</SidebarGroup>
)}
</Sidebar>
{children}
</SidebarPage>
Expand Down
29 changes: 0 additions & 29 deletions packages/app/src/utils/dynamicUI/useDisplayedSidebarItems.ts

This file was deleted.

21 changes: 21 additions & 0 deletions packages/app/src/utils/dynamicUI/useDynamicSidebarConfiguration.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { useContext } from 'react';

import DynamicRootContext from '../../components/DynamicRoot/DynamicRootContext';

export const useDynamicSidebarConfiguration = () => {
const { dynamicRoutes, menuItems, mountPoints } =
useContext(DynamicRootContext);
const headerComponents = mountPoints['global.header/component'] ?? [];
const profileMountPoints = mountPoints['global.header/profile'] ?? [];

return {
showSearchBar: !headerComponents.some(
({ config }) => (config as any)?.type === 'search',
),
showSettingsButton: !profileMountPoints.some(
({ config }) => (config as any)?.props.link === '/settings',
),
dynamicRoutes,
menuItems,
};
};

0 comments on commit 1e35b77

Please sign in to comment.