Skip to content

Commit 0bfcbb5

Browse files
authored
Merge pull request #1659 from opossum-tool/refactoring-displaypackageinfo
Refactoring DisplayPackageInfo
2 parents 261cc2d + b20a550 commit 0bfcbb5

File tree

101 files changed

+2607
-1236
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+2607
-1236
lines changed

src/Frontend/Components/AggregatedAttributionsPanel/AccordionPanel.tsx

+4-5
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ export function AccordionPanel(props: AccordionPanelProps): ReactElement {
4747
const [expanded, setExpanded] = useState<boolean>(false);
4848

4949
useMemo(() => {
50-
setExpanded(props.panelData.attributionIdsWithCount?.length > 0);
51-
}, [props.panelData.attributionIdsWithCount]);
50+
setExpanded(props.panelData.displayAttributionsWithCount?.length > 0);
51+
}, [props.panelData.displayAttributionsWithCount]);
5252

5353
function handleExpansionChange(
5454
// eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -69,7 +69,7 @@ export function AccordionPanel(props: AccordionPanelProps): ReactElement {
6969
key={`PackagePanel-${props.panelData.title}`}
7070
expanded={expanded}
7171
onChange={handleExpansionChange}
72-
disabled={isDisabled(props.panelData.attributionIdsWithCount)}
72+
disabled={isDisabled(props.panelData.displayAttributionsWithCount)}
7373
>
7474
<MuiAccordionSummary
7575
sx={{
@@ -86,8 +86,7 @@ export function AccordionPanel(props: AccordionPanelProps): ReactElement {
8686
>
8787
<PackagePanel
8888
title={props.panelData.title}
89-
attributionIdsWithCount={props.panelData.attributionIdsWithCount}
90-
attributions={props.panelData.attributions}
89+
attributionIdsWithCount={props.panelData.displayAttributionsWithCount}
9190
isAddToPackageEnabled={props.isAddToPackageEnabled}
9291
/>
9392
</MuiAccordionDetails>

src/Frontend/Components/AggregatedAttributionsPanel/AggregatedAttributionsPanel.tsx

+8-6
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ import {
1919
import { isIdOfResourceWithChildren } from '../../util/can-resource-have-children';
2020
import { SyncAccordionPanel } from './SyncAccordionPanel';
2121
import {
22-
getContainedManualPackages,
2322
getExternalAttributionIdsWithCount,
2423
PanelAttributionData,
2524
} from '../../util/get-contained-packages';
2625
import { AttributionIdWithCount } from '../../types/types';
27-
import { getDisplayContainedExternalPackagesWithCount } from './accordion-panel-helpers';
26+
import {
27+
getDisplayContainedExternalPackagesWithCount,
28+
getDisplayContainedManualPackagesWithCount,
29+
} from './accordion-panel-helpers';
2830

2931
interface AggregatedAttributionsPanelProps {
3032
isAddToPackageEnabled: boolean;
@@ -105,17 +107,17 @@ export function AggregatedAttributionsPanel(
105107
title={PackagePanelTitle.ContainedExternalPackages}
106108
workerArgs={containedExternalPackagesWorkerArgs}
107109
syncFallbackArgs={containedExternalPackagesSyncFallbackArgs}
108-
getDisplayAttributionIdsWithCount={
110+
getDisplayAttributionsWithCount={
109111
getDisplayContainedExternalPackagesWithCount
110112
}
111-
attributions={externalData.attributions}
112113
isAddToPackageEnabled={props.isAddToPackageEnabled}
113114
/>
114115
<WorkerAccordionPanel
115116
title={PackagePanelTitle.ContainedManualPackages}
116117
workerArgs={containedManualPackagesWorkerArgs}
117-
getDisplayAttributionIdsWithCount={getContainedManualPackages}
118-
attributions={manualData.attributions}
118+
getDisplayAttributionsWithCount={
119+
getDisplayContainedManualPackagesWithCount
120+
}
119121
isAddToPackageEnabled={props.isAddToPackageEnabled}
120122
/>
121123
</>

src/Frontend/Components/AggregatedAttributionsPanel/SyncAccordionPanel.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
import { AccordionPanel } from './AccordionPanel';
1111
import { PackagePanelTitle } from '../../enums/enums';
1212
import { AttributionIdWithCount, PanelData } from '../../types/types';
13-
import { getDisplayAttributionsWithCount } from './accordion-panel-helpers';
13+
import { getDisplayExternalAttributionsWithCount } from './accordion-panel-helpers';
1414

1515
interface SyncAccordionPanelProps {
1616
title: PackagePanelTitle;
@@ -23,15 +23,14 @@ interface SyncAccordionPanelProps {
2323
export function SyncAccordionPanel(
2424
props: SyncAccordionPanelProps
2525
): ReactElement {
26-
const displayAttributionIdsWithCount = getDisplayAttributionsWithCount(
26+
const displayAttributionsWithCount = getDisplayExternalAttributionsWithCount(
2727
props.getAttributionIdsWithCount(),
2828
props.attributions,
2929
props.attributionsToHashes
3030
);
3131
const panelData: PanelData = {
3232
title: props.title,
33-
attributionIdsWithCount: displayAttributionIdsWithCount,
34-
attributions: props.attributions,
33+
displayAttributionsWithCount,
3534
};
3635

3736
return (

src/Frontend/Components/AggregatedAttributionsPanel/WorkerAccordionPanel.tsx

+40-43
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,22 @@
33
// SPDX-License-Identifier: Apache-2.0
44

55
import React, { ReactElement, useContext, useMemo, useState } from 'react';
6-
import {
7-
Attributions,
8-
AttributionsToHashes,
9-
} from '../../../shared/shared-types';
6+
import { AttributionsToHashes } from '../../../shared/shared-types';
107
import { AccordionPanel } from './AccordionPanel';
118
import { PackagePanelTitle } from '../../enums/enums';
129
import {
13-
AttributionIdsWithCountAndResourceId,
14-
AttributionIdWithCount,
10+
DisplayAttributionsWithCountAndResourceId,
11+
DisplayAttributionWithCount,
1512
PanelData,
1613
} from '../../types/types';
1714
import { AccordionWorkersContext } from '../WorkersContextProvider/WorkersContextProvider';
1815
import { PanelAttributionData } from '../../util/get-contained-packages';
1916

20-
const EMPTY_ATTRIBUTION_IDS_WITH_COUNT_AND_RESOURCE_ID = {
21-
resourceId: '',
22-
attributionIdsWithCount: [],
23-
};
17+
const EMPTY_DISPLAY_ATTRIBUTIONS_WITH_COUNT_AND_RESOURCE_ID: DisplayAttributionsWithCountAndResourceId =
18+
{
19+
resourceId: '',
20+
displayAttributionsWithCount: [],
21+
};
2422

2523
type ContainedAttributionsAccordionWorkerArgs =
2624
| ContainedExternalAttributionsAccordionWorkerArgs
@@ -44,21 +42,20 @@ interface WorkerAccordionPanelProps {
4442
| PackagePanelTitle.ContainedManualPackages;
4543
workerArgs: ContainedAttributionsAccordionWorkerArgs;
4644
syncFallbackArgs?: ContainedAttributionsAccordionWorkerArgs;
47-
getDisplayAttributionIdsWithCount(
45+
getDisplayAttributionsWithCount(
4846
workerArgs: ContainedAttributionsAccordionWorkerArgs
49-
): Array<AttributionIdWithCount>;
50-
attributions: Attributions;
47+
): Array<DisplayAttributionWithCount>;
5148
isAddToPackageEnabled: boolean;
5249
}
5350

5451
export function WorkerAccordionPanel(
5552
props: WorkerAccordionPanelProps
5653
): ReactElement {
5754
const [
58-
attributionIdsWithCountAndResourceId,
59-
setAttributionIdsWithCountAndResourceId,
60-
] = useState<AttributionIdsWithCountAndResourceId>(
61-
EMPTY_ATTRIBUTION_IDS_WITH_COUNT_AND_RESOURCE_ID
55+
displayAttributionsWithCountAndResourceId,
56+
setDisplayAttributionsWithCountAndResourceId,
57+
] = useState<DisplayAttributionsWithCountAndResourceId>(
58+
EMPTY_DISPLAY_ATTRIBUTIONS_WITH_COUNT_AND_RESOURCE_ID
6259
);
6360
const resourceDetailsTabsWorkers = useContext(AccordionWorkersContext);
6461

@@ -79,8 +76,8 @@ export function WorkerAccordionPanel(
7976
props.workerArgs,
8077
worker,
8178
props.title,
82-
setAttributionIdsWithCountAndResourceId,
83-
props.getDisplayAttributionIdsWithCount,
79+
setDisplayAttributionsWithCountAndResourceId,
80+
props.getDisplayAttributionsWithCount,
8481
props.syncFallbackArgs
8582
);
8683
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -89,19 +86,17 @@ export function WorkerAccordionPanel(
8986
let panelData: PanelData;
9087
if (
9188
props.workerArgs.selectedResourceId ===
92-
attributionIdsWithCountAndResourceId.resourceId
89+
displayAttributionsWithCountAndResourceId.resourceId
9390
) {
9491
panelData = {
9592
title: props.title,
96-
attributionIdsWithCount:
97-
attributionIdsWithCountAndResourceId.attributionIdsWithCount,
98-
attributions: props.attributions,
93+
displayAttributionsWithCount:
94+
displayAttributionsWithCountAndResourceId.displayAttributionsWithCount,
9995
};
10096
} else {
10197
panelData = {
10298
title: props.title,
103-
attributionIdsWithCount: [],
104-
attributions: props.attributions,
99+
displayAttributionsWithCount: [],
105100
};
106101
}
107102

@@ -118,16 +113,16 @@ async function loadAttributionIdsWithCount(
118113
workerArgs: ContainedAttributionsAccordionWorkerArgs,
119114
worker: Worker,
120115
panelTitle: string,
121-
setAttributionIdsWithCountAndResourceId: (
122-
attributionIdsWithCountAndResourceId: AttributionIdsWithCountAndResourceId
116+
setDisplayAttributionsWithCountAndResourceId: (
117+
attributionIdsWithCountAndResourceId: DisplayAttributionsWithCountAndResourceId
123118
) => void,
124-
getDisplayAttributionIdsWithCount: (
119+
getDisplayAttributionsWithCount: (
125120
workerArgs: ContainedAttributionsAccordionWorkerArgs
126-
) => Array<AttributionIdWithCount>,
121+
) => Array<DisplayAttributionWithCount>,
127122
syncFallbackArgs?: ContainedAttributionsAccordionWorkerArgs
128123
): Promise<void> {
129-
setAttributionIdsWithCountAndResourceId(
130-
EMPTY_ATTRIBUTION_IDS_WITH_COUNT_AND_RESOURCE_ID
124+
setDisplayAttributionsWithCountAndResourceId(
125+
EMPTY_DISPLAY_ATTRIBUTIONS_WITH_COUNT_AND_RESOURCE_ID
131126
);
132127

133128
// WebWorkers can fail for different reasons, e.g. because they run out
@@ -142,21 +137,21 @@ async function loadAttributionIdsWithCount(
142137
logErrorAndComputeInMainProcess(
143138
panelTitle,
144139
Error('Web Worker execution error.'),
145-
setAttributionIdsWithCountAndResourceId,
146-
getDisplayAttributionIdsWithCount,
140+
setDisplayAttributionsWithCountAndResourceId,
141+
getDisplayAttributionsWithCount,
147142
workerArgs,
148143
syncFallbackArgs
149144
);
150145
} else {
151-
setAttributionIdsWithCountAndResourceId(output);
146+
setDisplayAttributionsWithCountAndResourceId(output);
152147
}
153148
};
154149
} catch (error) {
155150
logErrorAndComputeInMainProcess(
156151
panelTitle,
157152
error,
158-
setAttributionIdsWithCountAndResourceId,
159-
getDisplayAttributionIdsWithCount,
153+
setDisplayAttributionsWithCountAndResourceId,
154+
getDisplayAttributionsWithCount,
160155
workerArgs,
161156
syncFallbackArgs
162157
);
@@ -166,21 +161,23 @@ async function loadAttributionIdsWithCount(
166161
function logErrorAndComputeInMainProcess(
167162
panelTitle: string,
168163
error: unknown,
169-
setAttributionIdsWithCountAndResourceId: (
170-
attributionIdsWithCountAndResourceId: AttributionIdsWithCountAndResourceId
164+
setDisplayAttributionsWithCountAndResourceId: (
165+
attributionIdsWithCountAndResourceId: DisplayAttributionsWithCountAndResourceId
171166
) => void,
172-
getDisplayAttributionIdsWithCount: (
167+
getDisplayAttributionsWithCount: (
173168
workerArgs: ContainedAttributionsAccordionWorkerArgs
174-
) => Array<AttributionIdWithCount>,
169+
) => Array<DisplayAttributionWithCount>,
175170
workerArgs: ContainedAttributionsAccordionWorkerArgs,
176171
syncFallbackArgs?: ContainedAttributionsAccordionWorkerArgs
177172
): void {
178-
const displayAttributionIdsWithCount = getDisplayAttributionIdsWithCount(
173+
console.info(`Error in ResourceDetailsTab ${panelTitle}: `, error);
174+
175+
const displayAttributionIdsWithCount = getDisplayAttributionsWithCount(
179176
syncFallbackArgs || workerArgs
180177
);
181178

182-
setAttributionIdsWithCountAndResourceId({
179+
setDisplayAttributionsWithCountAndResourceId({
183180
resourceId: workerArgs.selectedResourceId,
184-
attributionIdsWithCount: displayAttributionIdsWithCount,
181+
displayAttributionsWithCount: displayAttributionIdsWithCount,
185182
});
186183
}

0 commit comments

Comments
 (0)