fleet/frontend/pages/admin/components/SideNav/SideNav.tsx
Jacob Shandling 280e3261bf
UI, Premium to Sandbox addendum 1: Hide MDM settings (#11425)
## Addresses 1 of 2 [additional specs for premium to
sandbox](https://fleetdm.slack.com/archives/C01EZVBHFHU/p1682644171632189)

- Hides the MDM Settings tab in Sandbox mode
- Slight reorganization of directories and names


## Checklist for submitter

- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2023-04-28 13:13:13 -07:00

54 lines
1.3 KiB
TypeScript

import React from "react";
import classnames from "classnames";
import { IAppConfigFormProps } from "pages/admin/OrgSettingsPage/cards/constants";
import SideNavItem from "../SideNavItem";
const baseClass = "side-nav";
export interface ISideNavItem<T> {
title: string;
urlSection: string;
path: string;
Card: (props: T) => JSX.Element;
exclude?: boolean;
}
interface ISideNavProps {
navItems: ISideNavItem<IAppConfigFormProps>[];
activeItem: string;
CurrentCard: JSX.Element;
className?: string;
}
const SideNav = ({
navItems,
activeItem,
CurrentCard,
className,
}: ISideNavProps) => {
const classes = classnames(baseClass, className);
return (
<div className={classes}>
<div className={`${baseClass}__container`}>
<nav aria-label="settings">
<ul className={`${baseClass}__nav-list`}>
{navItems.map((navItem) => (
<SideNavItem
key={navItem.title}
title={navItem.title}
path={navItem.path}
isActive={navItem.urlSection === activeItem}
/>
))}
</ul>
</nav>
<div className={`${baseClass}__card-container`}>{CurrentCard}</div>
</div>
</div>
);
};
export default SideNav;