Skip to content

Commit 01d3ff0

Browse files
committed
Refactoring the menu opening and closing options to make it cleaner and adding the new Request forms menu item
1 parent 3691124 commit 01d3ff0

1 file changed

Lines changed: 28 additions & 21 deletions

File tree

  • src/components/Layouts/Primary/TopBar/Items/NavMenu

src/components/Layouts/Primary/TopBar/Items/NavMenu/NavMenu.tsx

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -129,25 +129,20 @@ const NavMenu: React.FC = () => {
129129
: 0;
130130
}, [loading]);
131131

132-
const [reportsMenuOpen, setReportsMenuOpen] = useState(false);
133-
const [toolsMenuOpen, setToolsMenuOpen] = useState(false);
132+
enum MenuId {
133+
Reports = 'reports',
134+
Tools = 'tools',
135+
RequestForms = 'requestForms',
136+
}
134137

135-
const handleReportsMenuToggle = () => {
136-
setReportsMenuOpen((prevOpen) => !prevOpen);
137-
handleToolsMenuClose();
138-
};
139-
140-
const handleReportsMenuClose = () => {
141-
setReportsMenuOpen(false);
142-
};
138+
const [openMenu, setOpenMenu] = useState<MenuId | null>(null);
143139

144-
const handleToolsMenuToggle = () => {
145-
setToolsMenuOpen((prevOpen) => !prevOpen);
146-
handleReportsMenuClose();
140+
const handleMenuToggle = (menu: MenuId) => {
141+
setOpenMenu((prev) => (prev === menu ? null : menu));
147142
};
148143

149-
const handleToolsMenuClose = () => {
150-
setToolsMenuOpen(false);
144+
const handleMenuClose = () => {
145+
setOpenMenu(null);
151146
};
152147
const { pathname } = useRouter();
153148

@@ -178,9 +173,9 @@ const NavMenu: React.FC = () => {
178173

179174
<NavMenuDropdown
180175
page={navPages[3]}
181-
menuOpen={reportsMenuOpen}
182-
handleMenuToggle={handleReportsMenuToggle}
183-
handleMenuClose={handleReportsMenuClose}
176+
menuOpen={openMenu === MenuId.Reports}
177+
handleMenuToggle={() => handleMenuToggle(MenuId.Reports)}
178+
handleMenuClose={handleMenuClose}
184179
testId="ReportMenuToggle"
185180
sum={sum}
186181
toolData={toolData}
@@ -189,16 +184,28 @@ const NavMenu: React.FC = () => {
189184
/>
190185
<NavMenuDropdown
191186
page={navPages[4]}
192-
menuOpen={toolsMenuOpen}
193-
handleMenuToggle={handleToolsMenuToggle}
194-
handleMenuClose={handleToolsMenuClose}
187+
menuOpen={openMenu === MenuId.Tools}
188+
handleMenuToggle={() => handleMenuToggle(MenuId.Tools)}
189+
handleMenuClose={handleMenuClose}
195190
testId="ToolsMenuToggle"
196191
sum={sum}
197192
toolData={toolData}
198193
loading={loading}
199194
isTool={true}
200195
/>
201196

197+
<NavMenuDropdown
198+
page={navPages[5]}
199+
menuOpen={openMenu === MenuId.RequestForms}
200+
handleMenuToggle={() => handleMenuToggle(MenuId.RequestForms)}
201+
handleMenuClose={handleMenuClose}
202+
testId="RequestFormsMenuToggle"
203+
sum={sum}
204+
toolData={toolData}
205+
loading={loading}
206+
isTool={false}
207+
/>
208+
202209
{isCoaching && (
203210
<Grid item className={classes.navListItem}>
204211
<MenuItem

0 commit comments

Comments
 (0)