Skip to content

Commit 8565ca4

Browse files
authored
fix: OnNavigationChange callback (#3542)
1 parent 2196366 commit 8565ca4

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/app-layout/__tests__/app-layout-navigation.test.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,22 @@ describeEachAppLayout({ themes: ['refresh-toolbar'], sizes: ['desktop', 'mobile'
4242
expect(wrapper.findNavigation()).toBeTruthy();
4343
expect(wrapper.findNavigationToggle()).toBeFalsy();
4444
});
45+
46+
(size === 'desktop' ? test : test.skip)('should call onNavigationToggle on open/close navigation', () => {
47+
const mockOnNavigationChange = jest.fn();
48+
const { wrapper } = renderComponent(
49+
<AppLayout navigation={<>Mock Navigation</>} onNavigationChange={mockOnNavigationChange} content={<>Content</>} />
50+
);
51+
52+
expect(wrapper.findOpenNavigationPanel()).toBeTruthy();
53+
wrapper.findNavigationToggle().click();
54+
expect(mockOnNavigationChange).toHaveBeenCalledTimes(1);
55+
expect(mockOnNavigationChange).toHaveBeenCalledWith(expect.objectContaining({ detail: { open: false } }));
56+
expect(wrapper.findOpenNavigationPanel()).toBeFalsy();
57+
58+
wrapper.findNavigationToggle().click();
59+
expect(mockOnNavigationChange).toHaveBeenCalledTimes(2);
60+
expect(mockOnNavigationChange).toHaveBeenCalledWith(expect.objectContaining({ detail: { open: true } }));
61+
expect(wrapper.findOpenNavigationPanel()).toBeTruthy();
62+
});
4563
});

src/app-layout/visual-refresh-toolbar/toolbar/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ export function AppLayoutToolbarImplementation({
171171
if (setExpandedDrawerId) {
172172
setExpandedDrawerId(null);
173173
}
174-
if (navigationOpen) {
174+
if (navigationOpen && expandedDrawerId) {
175175
return;
176176
}
177177
onNavigationToggle?.(!navigationOpen);

0 commit comments

Comments
 (0)