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