Navigation: Add persistence to collapsible nav items (#47292)

This commit is contained in:
kay delaney 2022-04-05 09:17:02 +01:00 committed by GitHub
parent e430f5021d
commit 2018d83e1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -9,6 +9,7 @@ import { NavBarMenuItem } from './NavBarMenuItem';
import { NavBarItemWithoutMenu } from './NavBarItemWithoutMenu';
import { isMatchOrChildMatch } from '../utils';
import { NavBarToggle } from './NavBarToggle';
import { useLocalStorage } from 'react-use';
export interface Props {
activeItem?: NavModelItem;
@ -217,6 +218,7 @@ function CollapsibleNavItem({
className?: string;
}) {
const styles = useStyles2(getCollapsibleStyles);
const [sectionExpanded, setSectionExpanded] = useLocalStorage(`grafana.navigation.expanded[${link.text}]`, false);
return (
<li className={cx(styles.menuItem, className)}>
@ -235,7 +237,8 @@ function CollapsibleNavItem({
</NavBarItemWithoutMenu>
<div className={styles.collapsibleSectionWrapper}>
<CollapsableSection
isOpen={false}
isOpen={Boolean(sectionExpanded)}
onToggle={(isOpen) => setSectionExpanded(isOpen)}
className={styles.collapseWrapper}
contentClassName={styles.collapseContent}
label={