Skip to content

Commit 682312d

Browse files
fix: Use theme-aware navigation toggle icon in AppLayout toolbar skeleton
1 parent fd44c64 commit 682312d

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

‎src/app-layout/__tests__/skeleton.test.tsx‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
import React from 'react';
44
import { render } from '@testing-library/react';
55

6+
import { isThemeActive } from '@cloudscape-design/component-toolkit/internal';
7+
68
import AppLayout from '../../../lib/components/app-layout';
79
import { BeforeMainSlotSkeleton } from '../../../lib/components/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts';
810
import AppLayoutToolbar from '../../../lib/components/app-layout-toolbar';
911
import BreadcrumbGroup from '../../../lib/components/breadcrumb-group';
1012
import { getFunnelKeySelector } from '../../../lib/components/internal/analytics/selectors';
13+
import { getIconHTML } from '../../icon/__tests__/utils';
1114
import { describeEachAppLayout, renderComponent } from './utils';
1215

1316
import testutilStyles from '../../../lib/components/app-layout/test-classes/styles.selectors.js';
@@ -34,6 +37,15 @@ jest.mock('../../../lib/components/internal/widgets', () => ({
3437
createWidgetizedComponent: createWidgetizedComponentMock,
3538
}));
3639

40+
jest.mock('@cloudscape-design/component-toolkit/internal', () => ({
41+
...jest.requireActual('@cloudscape-design/component-toolkit/internal'),
42+
isThemeActive: jest.fn().mockReturnValue(false),
43+
}));
44+
45+
afterEach(() => {
46+
(isThemeActive as jest.Mock).mockReturnValue(false);
47+
});
48+
3749
describeEachAppLayout({ themes: ['refresh-toolbar'] }, () => {
3850
it('renders complete component by default', () => {
3951
const { wrapper } = renderComponent(
@@ -61,6 +73,17 @@ describeEachAppLayout({ themes: ['refresh-toolbar'] }, () => {
6173
widgetMockEnabled = false;
6274
});
6375

76+
it('renders the menu icon on the navigation toggle', () => {
77+
const { wrapper } = renderComponent(<AppLayout navigation="test nav" />);
78+
expect(wrapper.findNavigationToggle()!.findIcon()!.getElement()).toContainHTML(getIconHTML('menu'));
79+
});
80+
81+
it('renders the side-bar icon on the navigation toggle in One Theme', () => {
82+
(isThemeActive as jest.Mock).mockReturnValue(true);
83+
const { wrapper } = renderComponent(<AppLayout navigation="test nav" />);
84+
expect(wrapper.findNavigationToggle()!.findIcon()!.getElement()).toContainHTML(getIconHTML('side-bar'));
85+
});
86+
6487
it('renders skeleton parts only', () => {
6588
const { wrapper } = renderComponent(
6689
<AppLayout

‎src/app-layout/visual-refresh-toolbar/skeleton/toolbar-container.tsx‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import React from 'react';
44
import clsx from 'clsx';
55

6+
import { isThemeActive, Theme } from '@cloudscape-design/component-toolkit/internal';
7+
68
import { AppLayoutProps } from '../../../app-layout/interfaces';
79
import { BreadcrumbGroupProps } from '../../../breadcrumb-group/interfaces';
810
import { BreadcrumbsSlotContextType } from '../contexts';
@@ -70,6 +72,7 @@ interface ToolbarSkeletonStructureProps {
7072
export const ToolbarSkeletonStructure = React.forwardRef<HTMLElement, ToolbarSkeletonStructureProps>(
7173
({ ariaLabels, expandedDrawerId, hasNavigation, navigationOpen, ownBreadcrumbs, discoveredBreadcrumbs }, ref) => {
7274
const drawerExpandedMode = !!expandedDrawerId;
75+
const isOneTheme = isThemeActive(Theme.OneTheme);
7376
// istanbul ignore next: not interactive during SSR
7477
const noop = () => {};
7578
return (
@@ -80,7 +83,7 @@ export const ToolbarSkeletonStructure = React.forwardRef<HTMLElement, ToolbarSke
8083
<TriggerButton
8184
ariaLabel={ariaLabels?.navigationToggle ?? undefined}
8285
ariaExpanded={!drawerExpandedMode && navigationOpen}
83-
iconName="menu"
86+
iconName={isOneTheme ? 'side-bar' : 'menu'}
8487
className={testutilStyles['navigation-toggle']}
8588
onClick={noop}
8689
selected={!drawerExpandedMode && navigationOpen}

0 commit comments

Comments
 (0)