Navigation: Remember expanded sections in megamenu (#59661)

use local storage to remember which sections of megamenu are expanded
This commit is contained in:
Ashley Harrison
2022-12-01 16:04:36 +00:00
committed by GitHub
parent 97e81ecbde
commit 94c5be8dfb

View File

@@ -1,5 +1,6 @@
import { css, cx } from '@emotion/css';
import React, { useState } from 'react';
import React from 'react';
import { useLocalStorage } from 'react-use';
import { GrafanaTheme2, NavModelItem } from '@grafana/data';
import { Button, Icon, useStyles2 } from '@grafana/ui';
@@ -28,7 +29,8 @@ export function NavBarMenuSection({
const FeatureHighlightWrapper = link.highlightText ? NavFeatureHighlight : React.Fragment;
const isActive = link === activeItem;
const hasActiveChild = hasChildMatch(link, activeItem);
const [sectionExpanded, setSectionExpanded] = useState(Boolean(hasActiveChild));
const [sectionExpanded, setSectionExpanded] =
useLocalStorage(`grafana.navigation.expanded[${link.text}]`, false) ?? Boolean(hasActiveChild);
return (
<>