Skip to content

Commit a0eabfa

Browse files
feat: [IAC-5075]: fix ling issues
1 parent 0e6e134 commit a0eabfa

File tree

8 files changed

+37
-35
lines changed

8 files changed

+37
-35
lines changed

plugins/harness-iacm/src/components/WorkspaceList/ResourceDetailDrawer/AttributeList.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@ const AttributeList: React.FC<AttributeListProps> = ({
5555
<Box className={classes.valueComparison}>
5656
<ValueDisplay
5757
value={driftValue}
58-
isDrift={true}
58+
isDrift
5959
label="Actual Value:"
6060
copyTopOffset="25px"
6161
/>
6262
<ValueDisplay
6363
value={item.value}
64-
isDrift={true}
64+
isDrift
6565
label="Expected Value:"
6666
copyTopOffset="25px"
6767
/>

plugins/harness-iacm/src/components/WorkspaceList/ResourceDetailDrawer/DriftIcon.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import React from 'react';
2-
import ReplayCircleFilledIcon from '@mui/icons-material/ReplayCircleFilled';
2+
import ReplayIcon from '@material-ui/icons/Replay';
33
import DeleteIcon from '@material-ui/icons/Delete';
4-
import CircleIcon from '@mui/icons-material/Circle';
4+
import LensIcon from '@material-ui/icons/Lens';
55

66
export const getDriftIcon = (driftStatus?: string): React.ReactNode => {
77
switch (driftStatus?.toLowerCase()) {
88
case 'drifted':
9-
return <ReplayCircleFilledIcon style={{ fontSize: 18, color: '#ff9800' }} />;
9+
return <ReplayIcon style={{ fontSize: 18, color: '#ff9800' }} />;
1010
case 'changed':
11-
return <ReplayCircleFilledIcon style={{ fontSize: 18, color: '#ff9800' }} />;
11+
return <ReplayIcon style={{ fontSize: 18, color: '#ff9800' }} />;
1212
case 'deleted':
1313
return <DeleteIcon style={{ fontSize: 18, color: '#9e9e9e' }} />;
1414
case 'unchanged':
15-
return <CircleIcon style={{ fontSize: 18, color: '#9e9e9e' }} />;
15+
return <LensIcon style={{ fontSize: 18, color: '#9e9e9e' }} />;
1616
default:
1717
return null;
1818
}

plugins/harness-iacm/src/components/WorkspaceList/ResourceDetailDrawer/index.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ const ResourceDetailDrawer: React.FC<ResourceDetailDrawerProps> = ({
2020
const [searchValue, setSearchValue] = useState('');
2121

2222
const driftStatus = resource?.drift_status;
23-
const driftAttributes = (resource as any)?.drift_attributes || {};
23+
const driftAttributes = useMemo(
24+
() => resource?.drift_attributes || {},
25+
[resource]
26+
);
2427
const isDeleted = driftStatus === 'deleted';
2528
const allDeleted = isDeleted && Object.keys(driftAttributes).length > 0;
2629
const headerIcon = driftStatus ? getDriftIcon(driftStatus) : null;
@@ -46,7 +49,7 @@ const ResourceDetailDrawer: React.FC<ResourceDetailDrawerProps> = ({
4649
{resource && (
4750
<>
4851
{/* Search Input - Sticky */}
49-
<SearchField value={searchValue} onChange={setSearchValue} sticky />
52+
<SearchField value={searchValue} onChange={setSearchValue} />
5053

5154
{/* VALUE Header */}
5255
<Typography className={classes.valueHeader}>VALUE</Typography>

plugins/harness-iacm/src/components/WorkspaceList/index.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ export interface Workspace {
7171
}
7272

7373
export enum WorkspaceDataType {
74-
Resource,
75-
DataSource,
76-
Output,
74+
ResourceType = 'Resource',
75+
DataSourceType = 'DataSource',
76+
OutputType = 'Output',
7777
}
7878

7979
function WorkspaceList() {
@@ -96,7 +96,7 @@ function WorkspaceList() {
9696
const [page, setPage] = useState(0);
9797
const [pageSize, setPageSize] = useState(10);
9898
const [selectedTab, setSelectedTab] = React.useState<WorkspaceDataType>(
99-
WorkspaceDataType.Resource,
99+
WorkspaceDataType.ResourceType,
100100
);
101101
const [selectedRowData, setSelectedRowData] = useState<Resource | DataSource | null>(null);
102102

@@ -106,7 +106,7 @@ function WorkspaceList() {
106106
const drawerTitle = useMemo(() => {
107107
const driftStatus = selectedRowData?.drift_status || '';
108108
const capitalizedStatus = driftStatus ? driftStatus.charAt(0).toUpperCase() + driftStatus.slice(1) : '';
109-
return `${capitalizedStatus} ${selectedTab === WorkspaceDataType.Resource ? 'Resources' : 'Data Sources'}`
109+
return `${capitalizedStatus} ${selectedTab === WorkspaceDataType.ResourceType ? 'Resources' : 'Data Sources'}`
110110
}, [selectedRowData, selectedTab]);
111111
const {
112112
projectId,
@@ -174,7 +174,7 @@ function WorkspaceList() {
174174
);
175175

176176
const handleRowClick = useCallback((data: Resource | DataSource) => {
177-
if(selectedTab === WorkspaceDataType.Output) return; //do not open drawer for outputs
177+
if(selectedTab === WorkspaceDataType.OutputType) return; // do not open drawer for outputs
178178
setSelectedRowData(data);
179179
}, [selectedTab]);
180180

@@ -266,9 +266,9 @@ function WorkspaceList() {
266266
onChange={handleChange}
267267
aria-label="workspace_list_tabs"
268268
>
269-
<Tab label={`Resources (${resources?.length})`} />
270-
<Tab label={`Data Sources (${dataSources?.length})`} />
271-
<Tab label={`Outputs (${outputs?.length})`} />
269+
<Tab label={`Resources (${resources?.length ?? 0})`} value={WorkspaceDataType.ResourceType} />
270+
<Tab label={`Data Sources (${dataSources?.length ?? 0})`} value={WorkspaceDataType.DataSourceType} />
271+
<Tab label={`Outputs (${outputs?.length ?? 0})`} value={WorkspaceDataType.OutputType} />
272272
</Tabs>
273273
<WorkspaceTable
274274
setRefresh={setRefresh}
@@ -287,7 +287,7 @@ function WorkspaceList() {
287287
/>
288288
</div>
289289
<ResourceDetailDrawer
290-
open={!!selectedRowData} //open drawer if there is selected row data
290+
open={!!selectedRowData} // open drawer if there is selected row data
291291
resource={selectedRowData}
292292
onClose={handleDrawerClose}
293293
title={drawerTitle}

plugins/harness-iacm/src/components/WorkspaceList/useGetWorkspaceTableColumns.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { TableColumn } from '@backstage/core-components';
2-
import { Button, Link, Typography, makeStyles } from '@material-ui/core';
2+
import { Button, Typography, makeStyles } from '@material-ui/core';
33
import React, { useMemo, useState } from 'react';
44
import { TableData } from '../../types';
55

@@ -38,11 +38,7 @@ const useStyles = makeStyles(theme => ({
3838
},
3939
}));
4040

41-
export const useGetWorkspaceTableColumns = ({
42-
baseUrl,
43-
}: {
44-
baseUrl: string;
45-
}) => {
41+
export const useGetWorkspaceTableColumns = () => {
4642
const classes = useStyles();
4743

4844
const getProviderIcon = (name?: string): React.ReactNode => {
@@ -115,7 +111,7 @@ export const useGetWorkspaceTableColumns = ({
115111
(row1.module ?? '').localeCompare(row2.module ?? ''),
116112
},
117113
],
118-
[baseUrl, classes],
114+
[classes],
119115
);
120116

121117
const outputsColumns: TableColumn[] = useMemo(

plugins/harness-iacm/src/hooks/useGetResources.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ interface BaseResource {
2626
associate_public_ip_address: string;
2727
availability_zone: string;
2828
};
29+
drift_attributes: {
30+
[key: string]: string;
31+
};
2932
}
3033

3134
export interface Resource extends BaseResource {}

plugins/harness-iacm/src/utils/getWorkspaceData.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ export const getCurrTableData = (
1212
data: WorkspaceData,
1313
): Resource[] | Output[] | DataSource[] => {
1414
switch (workspaceDataType) {
15-
case WorkspaceDataType.Resource:
15+
case WorkspaceDataType.ResourceType:
1616
return data.resources || [];
17-
case WorkspaceDataType.DataSource:
17+
case WorkspaceDataType.DataSourceType:
1818
return data.dataSources || [];
19-
case WorkspaceDataType.Output:
19+
case WorkspaceDataType.OutputType:
2020
return data.outputs || [];
2121
default:
2222
return [];
@@ -28,11 +28,11 @@ export const getTotalElements = (
2828
data: WorkspaceData,
2929
): number => {
3030
switch (workspaceDataType) {
31-
case WorkspaceDataType.Resource:
31+
case WorkspaceDataType.ResourceType:
3232
return data.resources?.length || 0;
33-
case WorkspaceDataType.DataSource:
33+
case WorkspaceDataType.DataSourceType:
3434
return data.dataSources?.length || 0;
35-
case WorkspaceDataType.Output:
35+
case WorkspaceDataType.OutputType:
3636
return data.outputs?.length || 0;
3737
default:
3838
return 0;

plugins/harness-iacm/src/utils/getWorkspaceTableConfig.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@ export const getWorkspaceTableConfig = (
1717
columns: WorkspaceColumns,
1818
): WorkspaceTableConfig => {
1919
switch (workspaceDataType) {
20-
case WorkspaceDataType.Resource:
20+
case WorkspaceDataType.ResourceType:
2121
return {
2222
columns: columns.resourceColumns,
2323
title: 'Workspace Resources',
2424
};
25-
case WorkspaceDataType.Output:
25+
case WorkspaceDataType.OutputType:
2626
return {
2727
columns: columns.outputsColumns,
2828
title: 'Workspace Outputs',
2929
};
30-
case WorkspaceDataType.DataSource:
30+
case WorkspaceDataType.DataSourceType:
3131
return {
3232
columns: columns.dataSourceColumns,
3333
title: 'Workspace Data Sources',

0 commit comments

Comments
 (0)