2019-01-17 02:27:43 -06:00
|
|
|
import React, { FC } from 'react';
|
2020-02-28 08:09:55 -06:00
|
|
|
import _ from 'lodash';
|
2018-09-04 10:24:08 -05:00
|
|
|
import DropDownChild from './DropDownChild';
|
2019-06-18 10:17:27 -05:00
|
|
|
import { NavModelItem } from '@grafana/data';
|
2018-09-04 10:24:08 -05:00
|
|
|
|
|
|
|
interface Props {
|
2019-05-12 07:15:23 -05:00
|
|
|
link: NavModelItem;
|
2020-04-27 13:36:28 -05:00
|
|
|
onHeaderClick?: () => void;
|
2018-09-04 10:24:08 -05:00
|
|
|
}
|
|
|
|
|
2021-01-20 00:59:48 -06:00
|
|
|
const SideMenuDropDown: FC<Props> = (props) => {
|
2020-04-27 13:36:28 -05:00
|
|
|
const { link, onHeaderClick } = props;
|
2020-02-28 08:09:55 -06:00
|
|
|
let childrenLinks: NavModelItem[] = [];
|
|
|
|
if (link.children) {
|
2021-01-20 00:59:48 -06:00
|
|
|
childrenLinks = _.filter(link.children, (item) => !item.hideFromMenu);
|
2020-02-28 08:09:55 -06:00
|
|
|
}
|
|
|
|
|
2018-09-04 10:24:08 -05:00
|
|
|
return (
|
|
|
|
<ul className="dropdown-menu dropdown-menu--sidemenu" role="menu">
|
|
|
|
<li className="side-menu-header">
|
2020-04-27 13:36:28 -05:00
|
|
|
<a className="side-menu-header-link" href={link.url} onClick={onHeaderClick}>
|
2019-01-22 01:18:03 -06:00
|
|
|
<span className="sidemenu-item-text">{link.text}</span>
|
2019-01-22 01:12:48 -06:00
|
|
|
</a>
|
2018-09-04 10:24:08 -05:00
|
|
|
</li>
|
2020-02-28 08:09:55 -06:00
|
|
|
{childrenLinks.map((child, index) => {
|
|
|
|
return <DropDownChild child={child} key={`${child.url}-${index}`} />;
|
|
|
|
})}
|
2018-09-04 10:24:08 -05:00
|
|
|
</ul>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default SideMenuDropDown;
|