Skip to content

Commit f12239e

Browse files
authored
chore: update awsui to cloudscape-design (#29)
1 parent 8a9abc0 commit f12239e

17 files changed

+74
-79
lines changed

src/main/js/dashboard-frontend/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {
6-
"@awsui/components-react": "^3.0.166",
7-
"@awsui/design-tokens": "^3.0.10",
8-
"@awsui/global-styles": "^1.0.8",
6+
"@cloudscape-design/components": "^3.0.240",
7+
"@cloudscape-design/design-tokens": "^3.0.9",
8+
"@cloudscape-design/global-styles": "^1.0.8",
99
"ace-builds": "^1.4.12",
1010
"dagre-d3": "^0.6.4",
1111
"mutationobserver-shim": "^0.3.7",
@@ -38,7 +38,7 @@
3838
"prebuild": "rm -rf ../../resources/node; mkdir -p ../../resources/node; npm i",
3939
"build": "react-scripts build",
4040
"postbuild": "cp -r ./build ./dashboard-frontend; mv ./dashboard-frontend ../../resources/node",
41-
"test": "react-scripts test --transformIgnorePatterns \"node_modules/(?!(@awsui/|entity-decode/))\"",
41+
"test": "react-scripts test --transformIgnorePatterns \"node_modules/(?!(@cloudscape-design/|entity-decode/))\"",
4242
"eject": "react-scripts eject"
4343
},
4444
"eslintConfig": {

src/main/js/dashboard-frontend/src/__tests__/ComponentTable.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import React from "react";
1414

1515
import wrapper, {
1616
ElementWrapper,
17-
} from "@awsui/components-react/test-utils/dom";
17+
} from "@cloudscape-design/components/test-utils/dom";
1818

1919
import 'mutationobserver-shim';
2020
import { render } from "@testing-library/react";

src/main/js/dashboard-frontend/src/__tests__/ConfigEditor.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jest.mock("../index");
88

99
import React from "react";
1010

11-
import wrapper from "@awsui/components-react/test-utils/dom";
11+
import wrapper from "@cloudscape-design/components/test-utils/dom";
1212

1313
import 'mutationobserver-shim';
1414
import { render } from "@testing-library/react";

src/main/js/dashboard-frontend/src/__tests__/DetailHeader.test.tsx

+10-10
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import ServerEndpoint from "../communication/ServerEndpoint";
77
import React from "react";
88

9-
import wrapper, {ElementWrapper,} from "@awsui/components-react/test-utils/dom";
9+
import wrapper, {ElementWrapper,} from "@cloudscape-design/components/test-utils/dom";
1010

1111
import {render} from "@testing-library/react";
1212
import 'mutationobserver-shim';
@@ -32,43 +32,43 @@ test("Buttons are enabled based on service status", () => {
3232
SERVER.pushComponentUpdate(0);
3333
expect(
3434
// @ts-ignore
35-
detailHeader.findButton(".start").getElement()
35+
detailHeader.findButton("[data-testid=\"start-button\"]").getElement()
3636
).not.toBeDisabled();
3737
expect(
3838
// @ts-ignore
39-
detailHeader.findButton(".stop").getElement()
39+
detailHeader.findButton("[data-testid=\"stop-button\"]").getElement()
4040
).not.toBeDisabled();
4141

4242
SERVER.pushComponentUpdate(1);
4343
expect(
4444
// @ts-ignore
45-
detailHeader.findButton(".start").getElement()
45+
detailHeader.findButton("[data-testid=\"start-button\"]").getElement()
4646
).toBeDisabled();
4747
expect(
4848
// @ts-ignore
49-
detailHeader.findButton(".stop").getElement()
49+
detailHeader.findButton("[data-testid=\"stop-button\"]").getElement()
5050
).not.toBeDisabled();
5151

5252
SERVER.pushComponentUpdate(2);
5353
expect(
5454
// @ts-ignore
55-
detailHeader.findButton(".start").getElement()
55+
detailHeader.findButton("[data-testid=\"start-button\"]").getElement()
5656
).not.toBeDisabled();
5757
expect(
5858
// @ts-ignore
59-
detailHeader.findButton(".stop").getElement()
59+
detailHeader.findButton("[data-testid=\"stop-button\"]").getElement()
6060
).toBeDisabled();
6161
});
6262

6363
test("Buttons function properly", (done) => {
6464
SERVER.pushComponentUpdate(0);
6565
const reqSpy = jest.spyOn(ServerEndpoint.prototype, "sendRequest");
6666
// @ts-ignore
67-
detailHeader.findButton(".start").click();
67+
detailHeader.findButton("[data-testid=\"start-button\"]").click();
6868
// @ts-ignore
69-
detailHeader.findButton(".stop").click();
69+
detailHeader.findButton("[data-testid=\"stop-button\"]").click();
7070
// @ts-ignore
71-
detailHeader.findButton(".reinstall").click();
71+
detailHeader.findButton("[data-testid=\"reinstall-button\"]").click();
7272
setTimeout(() => {
7373
expect(reqSpy).toHaveBeenNthCalledWith(1, {
7474
call: APICall.startComponent,

src/main/js/dashboard-frontend/src/components/Arch.tsx

+16-14
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55

66
import React, { Component } from "react";
7-
import {Box, ColumnLayout, Container, SpaceBetween} from "@awsui/components-react";
7+
import {Box, ColumnLayout, Container, Header, SpaceBetween} from "@cloudscape-design/components";
88
import { SERVER } from "../index";
99
import { APICall } from "../util/CommUtils";
1010

@@ -72,20 +72,22 @@ class Arch extends Component {
7272
];
7373

7474
return (
75-
<Container header={<h2>Device Details</h2>}>
76-
<ColumnLayout columns={4} variant="text-grid">
77-
{items.map((group) => (
78-
<SpaceBetween size="xs">
79-
{group.map((item) => (
80-
<div>
81-
<Box margin={{bottom: "xxxs"}} color="text-label">{item.field}</Box>
82-
<div>{item.value}</div>
83-
</div>
75+
<Box padding={{top: "m"}}>
76+
<Container header={<Header variant={"h2"}>Device Details</Header>}>
77+
<ColumnLayout columns={4} variant="text-grid">
78+
{items.map((group, index) => (
79+
<SpaceBetween size="xs" key={index}>
80+
{group.map((item) => (
81+
<div key={item.field}>
82+
<Box margin={{bottom: "xxxs"}} color="text-label">{item.field}</Box>
83+
<div>{item.value}</div>
84+
</div>
85+
))}
86+
</SpaceBetween>
8487
))}
85-
</SpaceBetween>
86-
))}
87-
</ColumnLayout>
88-
</Container>
88+
</ColumnLayout>
89+
</Container>
90+
</Box>
8991
);
9092
}
9193
}

src/main/js/dashboard-frontend/src/components/ComponentTable.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ import {
1616
SpaceBetween,
1717
StatusIndicator,
1818
Table
19-
} from "@awsui/components-react";
19+
} from "@cloudscape-design/components";
2020

2121
import {ComponentItem} from "../util/ComponentItem";
2222
import {SERVER} from "../index";
2323
import {APICall} from "../util/CommUtils";
2424
import {SERVICE_ROUTE_HREF_PREFIX, USER_CREATED} from "../util/constNames";
25-
import {BoxProps} from "@awsui/components-react/box/interfaces";
26-
import {TableProps} from "@awsui/components-react/table";
25+
import {BoxProps} from "@cloudscape-design/components/box/interfaces";
26+
import {TableProps} from "@cloudscape-design/components/table";
2727

2828
interface ServiceTableProps {
2929
title: string;

src/main/js/dashboard-frontend/src/components/Overview.tsx

+6-12
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,17 @@ import React, { Component } from "react";
77
import ComponentTable from "./ComponentTable";
88
import { ALL_DEP_GRAPH_NODES } from "../util/constNames";
99
import DependencyGraph from "./details/DependencyGraph";
10-
import {Header} from "@awsui/components-react";
10+
import {Grid, Header} from "@cloudscape-design/components";
1111

1212
class Overview extends Component {
1313
render() {
1414
return (
1515
<>
16-
<Header variant={"h1"}>{`Local debug console`}</Header>
17-
<div className="awsui-grid">
18-
<div className="awsui-row">
19-
<div className="col-12 col-l-8 col-xl-6">
20-
<ComponentTable title="Components" />
21-
</div>
22-
<div className="col-12 col-l-8 col-xl-6">
23-
<DependencyGraph rootComponent={ALL_DEP_GRAPH_NODES} />
24-
</div>
25-
</div>
26-
</div>
16+
<Header variant={"h1"}>Local debug console</Header>
17+
<Grid gridDefinition={[{ colspan: {default: 12, l: 8, xl: 6} }, { colspan: {default: 12, l: 8, xl: 6} }]}>
18+
<ComponentTable title="Components" />
19+
<DependencyGraph rootComponent={ALL_DEP_GRAPH_NODES} />
20+
</Grid>
2721
</>
2822
);
2923
}

src/main/js/dashboard-frontend/src/components/details/ComponentDetail.tsx

+12-16
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,25 @@ import { useHistory, withRouter } from "react-router-dom";
1010
import { SERVICE_ROUTE_HREF_PREFIX } from "../../util/constNames";
1111
import DetailHeader from "./DetailHeader";
1212
import DetailBody from "./DetailBody";
13+
import {Grid, SpaceBetween} from "@cloudscape-design/components";
1314

1415
function ComponentDetail() {
1516
let service = useHistory().location.pathname.substring(
1617
SERVICE_ROUTE_HREF_PREFIX.length - 1
1718
);
1819

1920
return (
20-
<>
21-
<DetailHeader service={service} />
22-
<div className="awsui-grid">
23-
<div className="awsui-row">
24-
<div className="col-12 col-l-12 col-xl-12">
25-
<DetailBody service={service} />
26-
</div>
27-
<div className="col-12 col-l-6 col-xl-6">
28-
<ConfigEditor dark={false} service={service} />
29-
</div>
30-
<div className="col-12 col-l-6 col-xl-6">
31-
<DependencyGraph rootComponent={service} />
32-
</div>
33-
</div>
34-
</div>
35-
</>
21+
<SpaceBetween size={"m"}>
22+
<DetailHeader service={service}/>
23+
<Grid gridDefinition={[{colspan: {default: 12, l: 12, xl: 12}},
24+
{colspan: {default: 12, l: 6, xl: 6}}, {
25+
colspan: {default: 12, l: 6, xl: 6}
26+
}]}>
27+
<DetailBody service={service} />
28+
<ConfigEditor dark={false} service={service} />
29+
<DependencyGraph rootComponent={service} />
30+
</Grid>
31+
</SpaceBetween>
3632
);
3733
}
3834

src/main/js/dashboard-frontend/src/components/details/ConfigEditor.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
FlashbarProps,
1919
Header,
2020
Spinner,
21-
} from "@awsui/components-react";
21+
} from "@cloudscape-design/components";
2222

2323
interface ConfigEditorProps {
2424
dark: boolean;

src/main/js/dashboard-frontend/src/components/details/DependencyGraph.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import React, { Component, createRef } from "react";
77
import { withRouter } from "react-router-dom";
88

9-
import { Container, Header } from "@awsui/components-react";
9+
import { Container, Header } from "@cloudscape-design/components";
1010
import * as d3 from "d3";
1111
import dagreD3 from "dagre-d3";
1212
import { ComponentItem } from "../../util/ComponentItem";

src/main/js/dashboard-frontend/src/components/details/DetailBody.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import {
99
ColumnLayout,
1010
Container,
1111
Popover, SpaceBetween, StatusIndicator, StatusIndicatorProps
12-
} from "@awsui/components-react";
12+
} from "@cloudscape-design/components";
1313
import { ComponentItem } from "../../util/ComponentItem";
1414
import { SERVER } from "../../index";
1515
import { APICall } from "../../util/CommUtils";
16-
import {BoxProps} from "@awsui/components-react/box/interfaces";
16+
import {BoxProps} from "@cloudscape-design/components/box/interfaces";
1717

1818
interface DetailBodyProps {
1919
service: string;

src/main/js/dashboard-frontend/src/components/details/DetailHeader.tsx

+5-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import React, { Component } from "react";
77
import { SERVER } from "../../index";
88
import { APICall } from "../../util/CommUtils";
9-
import {Button, Header, SpaceBetween, StatusIndicatorProps} from "@awsui/components-react";
9+
import {Button, Header, SpaceBetween, StatusIndicatorProps} from "@cloudscape-design/components";
1010
import { ComponentItem } from "../../util/ComponentItem";
1111

1212
interface DetailHeaderProps {
@@ -96,23 +96,24 @@ export default class DetailHeader extends Component<
9696
render() {
9797
return (
9898
<Header
99+
variant={"h1"}
99100
actions={
100101
<SpaceBetween direction={"horizontal"} size={"xs"}>
101102
<Button
102-
className="start"
103103
disabled={!this.state.service.canStart}
104104
onClick={this.onStartClick}
105+
data-testid={"start-button"}
105106
>
106107
Start
107108
</Button>
108109
<Button
109-
className="stop"
110110
disabled={!this.state.service.canStop}
111111
onClick={this.onStopClick}
112+
data-testid={"stop-button"}
112113
>
113114
Stop
114115
</Button>
115-
<Button className="reinstall" onClick={this.onReinstallClick}>
116+
<Button onClick={this.onReinstallClick} data-testid={"reinstall-button"}>
116117
Reinstall
117118
</Button>
118119
</SpaceBetween>

src/main/js/dashboard-frontend/src/index.tsx

+7-5
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import { HashRouter, Route, Switch, Redirect } from "react-router-dom";
1111
import { routes } from "./navigation/constRoutes";
1212
import NavSideBar from "./navigation/NavSideBar";
1313

14-
import '@awsui/global-styles/index.css';
15-
import {AppLayout, Flashbar, FlashbarProps} from "@awsui/components-react";
14+
import "@cloudscape-design/global-styles/index.css"
15+
import {AppLayout, Flashbar, FlashbarProps} from "@cloudscape-design/components";
1616
import ServerEndpoint from "./communication/ServerEndpoint";
1717
import Breadcrumbs from "./navigation/Breadcrumbs";
1818
import { SERVICE_ROUTE_HREF_PREFIX } from "./util/constNames";
@@ -21,6 +21,7 @@ export var SERVER: ServerEndpoint;
2121

2222
interface AppState {
2323
flashItems: FlashbarProps.MessageDefinition[];
24+
navigationOpen: boolean;
2425
}
2526

2627
class App extends Component<any, AppState> {
@@ -30,7 +31,8 @@ class App extends Component<any, AppState> {
3031
SERVER = new ServerEndpoint(window.WEBSOCKET_PORT, window.USERNAME, window.PASSWORD, 5, this.websocketError);
3132

3233
this.state = {
33-
flashItems: []
34+
flashItems: [],
35+
navigationOpen: true,
3436
};
3537
}
3638

@@ -59,11 +61,11 @@ class App extends Component<any, AppState> {
5961
return (
6062
<HashRouter>
6163
<AppLayout
62-
className="app"
6364
navigation={<NavSideBar />}
6465
breadcrumbs={<Breadcrumbs />}
6566
notifications={<Flashbar items={this.state.flashItems} />}
66-
navigationOpen={true}
67+
navigationOpen={this.state.navigationOpen}
68+
onNavigationChange={(e) => this.setState({navigationOpen: e.detail.open})}
6769
toolsHide={true}
6870
contentType="default"
6971
content={

src/main/js/dashboard-frontend/src/navigation/Breadcrumbs.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import React from "react";
77
import { useLocation } from "react-router-dom";
88
import { routes } from "./constRoutes";
9-
import { BreadcrumbGroup } from "@awsui/components-react";
9+
import { BreadcrumbGroup } from "@cloudscape-design/components";
1010
import { PROJECT_NAME, SERVICE_ROUTE_HREF_PREFIX } from "../util/constNames";
11-
import {BreadcrumbGroupProps} from "@awsui/components-react/breadcrumb-group/interfaces";
11+
import {BreadcrumbGroupProps} from "@cloudscape-design/components/breadcrumb-group/interfaces";
1212

1313
export function findTitle(href: string) {
1414
if (href.startsWith(SERVICE_ROUTE_HREF_PREFIX))

src/main/js/dashboard-frontend/src/navigation/NavSideBar.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import React from "react";
77
import { withRouter, useHistory } from "react-router-dom";
88

9-
import {SideNavigation, SideNavigationProps} from "@awsui/components-react";
9+
import {SideNavigation, SideNavigationProps} from "@cloudscape-design/components";
1010
import { routes } from "./constRoutes";
1111
import { PROJECT_NAME } from "../util/constNames";
1212

src/main/js/dashboard-frontend/src/styles/dependency-graph.scss

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
@import '~@awsui/design-tokens/index.scss';
6+
@import '~@cloudscape-design/design-tokens/index.scss';
77

88
.holder {
99
overflow-x: scroll;

src/main/js/dashboard-frontend/src/util/ComponentItem.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
import {StatusIndicatorProps} from "@awsui/components-react/status-indicator/internal";
6+
import {StatusIndicatorProps} from "@cloudscape-design/components/status-indicator/internal";
77

88
export class ComponentItem {
99
name: string;

0 commit comments

Comments
 (0)