From 94c5be8dfb45ba6d6f9cb8f5cf3bcb8fd43d2daa Mon Sep 17 00:00:00 2001 From: Ashley Harrison Date: Thu, 1 Dec 2022 16:04:36 +0000 Subject: [PATCH] Navigation: Remember expanded sections in megamenu (#59661) use local storage to remember which sections of megamenu are expanded --- public/app/core/components/MegaMenu/NavBarMenuSection.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/app/core/components/MegaMenu/NavBarMenuSection.tsx b/public/app/core/components/MegaMenu/NavBarMenuSection.tsx index 61fe115470a..01e57b0e95d 100644 --- a/public/app/core/components/MegaMenu/NavBarMenuSection.tsx +++ b/public/app/core/components/MegaMenu/NavBarMenuSection.tsx @@ -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 ( <>