Skip to content

Commit 47c19bf

Browse files
authored
fix: Add missing animations to discreet split panel (#3322)
1 parent 8ec9c2d commit 47c19bf

27 files changed

+948
-703
lines changed

package-lock.json

Lines changed: 602 additions & 472 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pages/app-layout/dashboard-content-type.page.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import React, { useState } from 'react';
55
import AppLayout from '~components/app-layout';
66
import Button from '~components/button';
77
import Header from '~components/header';
8+
import SpaceBetween from '~components/space-between';
89
import SplitPanel from '~components/split-panel';
910

1011
import ScreenshotArea from '../utils/screenshot-area';
@@ -23,12 +24,14 @@ export default function () {
2324
breadcrumbs={<Breadcrumbs />}
2425
navigation={<Navigation />}
2526
tools={<Tools>{toolsContent.long}</Tools>}
26-
contentHeader={
27-
<Header variant="h1" actions={<Button onClick={() => setSplitPanelOpen(true)}>Add widget</Button>}>
28-
Dashboard page
29-
</Header>
27+
content={
28+
<SpaceBetween size="m">
29+
<Header variant="h1" actions={<Button onClick={() => setSplitPanelOpen(true)}>Add widget</Button>}>
30+
Dashboard page
31+
</Header>
32+
<Containers />
33+
</SpaceBetween>
3034
}
31-
content={<Containers />}
3235
splitPanelPreferences={{ position: 'side' }}
3336
splitPanelOpen={splitPanelOpen}
3437
splitPanel={

src/__integ__/utils.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22
// SPDX-License-Identifier: Apache-2.0
33
import * as glob from 'glob';
44

5+
export type Theme = 'classic' | 'refresh' | 'refresh-toolbar';
6+
export type Size = 'desktop' | 'mobile';
7+
58
export function findAllPages(): string[] {
69
return glob.sync('**/*.page.tsx', { cwd: 'pages' }).map(file => file.replace(/\.page\.tsx$/, ''));
710
}
11+
12+
export async function times(n: number, fn: () => Promise<void>) {
13+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
14+
for (const _ of new Array(n)) {
15+
await fn();
16+
}
17+
}

src/__tests__/utils.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,21 @@ function wrap({ default: Component }: { default: React.ComponentType }, Wrapper:
6262

6363
export function requireComponent(componentName: string): any {
6464
if (componentName === 'split-panel') {
65-
// eslint-disable-next-line @typescript-eslint/no-var-requires
65+
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
6666
return wrap(require(path.join(componentsDir, 'split-panel')), WrappedSplitPanel);
6767
}
68+
// eslint-disable-next-line @typescript-eslint/no-require-imports
6869
return require(path.join(componentsDir, componentName));
6970
}
7071

7172
export function requireComponentDefinition(componentName: string): any {
73+
// eslint-disable-next-line @typescript-eslint/no-require-imports
7274
return require(path.join(definitionsDir, componentName));
7375
}
7476

7577
export function requireDesignTokensFile(fileName: string): any {
78+
// eslint-disable-next-line @typescript-eslint/no-require-imports
7679
return require(path.join(designTokensDir, fileName));
7780
}
81+
82+
export const testIf = (condition: boolean) => (condition ? test : test.skip);

src/app-layout/__integ__/app-layout-focus-delegation.test.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import { BasePageObject } from '@cloudscape-design/browser-test-tools/page-objec
44
import useBrowser from '@cloudscape-design/browser-test-tools/use-browser';
55

66
import createWrapper from '../../../lib/components/test-utils/selectors';
7+
import { Theme } from '../../__integ__/utils.js';
78
import { viewports } from './constants';
8-
import { getUrlParams, testIf, Theme } from './utils';
9+
import { getUrlParams, testIf } from './utils';
910

1011
import splitPanelTestUtilStyles from '../../../lib/components/split-panel/test-classes/styles.selectors.js';
1112

@@ -131,7 +132,9 @@ describe.each(['classic', 'refresh', 'refresh-toolbar'] as const)('%s', theme =>
131132
setupTest(
132133
async page => {
133134
// Mobile nav is closed on page load
134-
mobile && (await page.click(wrapper.findNavigationToggle().toSelector()));
135+
if (mobile) {
136+
await page.click(wrapper.findNavigationToggle().toSelector());
137+
}
135138
await page.setWindowSize({ width: 1100, height: 800 });
136139
await page.click(wrapper.findSplitPanel().findOpenButton().toSelector());
137140
await expect(page.isExisting(wrapper.findSplitPanel().findOpenPanelSide().toSelector())).resolves.toBe(

src/app-layout/__integ__/app-layout-refresh-content-width.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import useBrowser from '@cloudscape-design/browser-test-tools/use-browser';
55

66
import createWrapper from '../../../lib/components/test-utils/selectors';
77
import { scrollbarThickness } from '../../__integ__/scrollbars';
8+
import { Theme } from '../../__integ__/utils';
89
import { viewports } from './constants';
9-
import { getUrlParams, Theme } from './utils';
10+
import { getUrlParams } from './utils';
1011

1112
const wrapper = createWrapper().findAppLayout();
1213

src/app-layout/__integ__/app-layout-refresh-edge-controls.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import { BasePageObject } from '@cloudscape-design/browser-test-tools/page-objec
44
import useBrowser from '@cloudscape-design/browser-test-tools/use-browser';
55

66
import createWrapper from '../../../lib/components/test-utils/selectors';
7+
import { Theme } from '../../__integ__/utils';
78
import { viewports } from './constants';
8-
import { getUrlParams, Theme } from './utils';
9+
import { getUrlParams } from './utils';
910

1011
const wrapper = createWrapper().findAppLayout();
1112

src/app-layout/__integ__/app-layout-refresh-notifications.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import { BasePageObject } from '@cloudscape-design/browser-test-tools/page-objec
44
import useBrowser from '@cloudscape-design/browser-test-tools/use-browser';
55

66
import createWrapper from '../../../lib/components/test-utils/selectors';
7+
import { Theme } from '../../__integ__/utils';
78
import { viewports } from './constants';
8-
import { getUrlParams, Theme } from './utils';
9+
import { getUrlParams } from './utils';
910

1011
const wrapper = createWrapper().findAppLayout();
1112

src/app-layout/__integ__/app-layout-sticky-elements.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import { BasePageObject } from '@cloudscape-design/browser-test-tools/page-objec
44
import useBrowser from '@cloudscape-design/browser-test-tools/use-browser';
55

66
import createWrapper from '../../../lib/components/test-utils/selectors';
7+
import { Theme } from '../../__integ__/utils';
78
import { viewports } from './constants';
8-
import { getUrlParams, testIf, Theme } from './utils';
9+
import { getUrlParams, testIf } from './utils';
910

1011
const wrapper = createWrapper().findAppLayout();
1112

src/app-layout/__integ__/awsui-applayout-sticky.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import { BasePageObject } from '@cloudscape-design/browser-test-tools/page-objec
44
import useBrowser from '@cloudscape-design/browser-test-tools/use-browser';
55

66
import createWrapper from '../../../lib/components/test-utils/selectors';
7+
import { Theme } from '../../__integ__/utils';
78
import { viewports } from './constants';
8-
import { getUrlParams, Theme } from './utils';
9+
import { getUrlParams } from './utils';
910

1011
const wrapper = createWrapper().findAppLayout();
1112
const stickyToggleSelector = createWrapper().findFlashbar().findItems().get(1).findActionButton().toSelector();

0 commit comments

Comments
 (0)