Skip to content
This repository was archived by the owner on Aug 28, 2023. It is now read-only.

Commit 336053a

Browse files
committed
Fix PropType runtime errors
1 parent 049ebc5 commit 336053a

File tree

2 files changed

+43
-27
lines changed

2 files changed

+43
-27
lines changed

app/javascript/react/screens/App/Analytics/screens/AnalyticsSummary/AnalyticsSummary.js

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from 'react';
22
import PropTypes from 'prop-types';
33
import { Spinner, Button } from 'patternfly-react';
44
import { VM_SUMMARY_REPORT_FILTERS, ENV_SUMMARY_REPORT_FILTERS, FINISHED, OK } from '../../constants';
5-
import SummaryAccordion from './components/SummaryAccordion';
5+
import SummaryAccordion, { summaryDataShape } from './components/SummaryAccordion';
66

77
// TODO provider selection?
88
// TODO next page?
@@ -124,16 +124,16 @@ const reportTaskShape = PropTypes.shape({
124124

125125
AnalyticsSummary.propTypes = {
126126
fetchReportsAction: PropTypes.func.isRequired,
127-
vmSummaryReport: reportShape.isRequired,
128-
envSummaryReport: reportShape.isRequired,
127+
vmSummaryReport: reportShape,
128+
envSummaryReport: reportShape,
129129
runReportAction: PropTypes.func.isRequired,
130-
vmSummaryReportRun: reportRunShape.isRequired,
131-
envSummaryReportRun: reportRunShape.isRequired,
130+
vmSummaryReportRun: reportRunShape,
131+
envSummaryReportRun: reportRunShape,
132132
fetchTaskAction: PropTypes.func.isRequired,
133-
isFetchingVmSummaryReportTask: PropTypes.bool.isRequired,
134-
isFetchingEnvSummaryReportTask: PropTypes.bool.isRequired,
135-
vmSummaryReportTask: reportTaskShape.isRequired,
136-
envSummaryReportTask: reportTaskShape.isRequired,
133+
isFetchingVmSummaryReportTask: PropTypes.bool,
134+
isFetchingEnvSummaryReportTask: PropTypes.bool,
135+
vmSummaryReportTask: reportTaskShape,
136+
envSummaryReportTask: reportTaskShape,
137137
fetchResultAction: PropTypes.func.isRequired,
138138
vmSummaryReportResult: PropTypes.shape({
139139
result_set: PropTypes.arrayOf(
@@ -145,7 +145,7 @@ AnalyticsSummary.propTypes = {
145145
'ext_management_system.id': PropTypes.number
146146
})
147147
)
148-
}).isRequired,
148+
}),
149149
envSummaryReportResult: PropTypes.shape({
150150
result_set: PropTypes.arrayOf(
151151
PropTypes.shape({
@@ -156,10 +156,24 @@ AnalyticsSummary.propTypes = {
156156
'ext_management_system.id': PropTypes.number
157157
})
158158
)
159-
}).isRequired,
159+
}),
160160
calculateSummaryDataAction: PropTypes.func.isRequired,
161-
summaryData: SummaryAccordion.propTypes.summaryData.isRequired,
161+
summaryData: summaryDataShape,
162162
onCollectInventoryClick: PropTypes.func.isRequired
163163
};
164164

165+
AnalyticsSummary.defaultProps = {
166+
vmSummaryReport: null,
167+
envSummaryReport: null,
168+
vmSummaryReportRun: null,
169+
envSummaryReportRun: null,
170+
isFetchingVmSummaryReportTask: false,
171+
isFetchingEnvSummaryReportTask: false,
172+
vmSummaryReportTask: null,
173+
envSummaryReportTask: null,
174+
vmSummaryReportResult: null,
175+
envSummaryReportResult: null,
176+
summaryData: null
177+
};
178+
165179
export default AnalyticsSummary;

app/javascript/react/screens/App/Analytics/screens/AnalyticsSummary/components/SummaryAccordion.js

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,28 @@ const SummaryAccordion = ({ summaryData }) => (
3030
</div>
3131
);
3232

33-
SummaryAccordion.propTypes = {
34-
summaryData: PropTypes.shape({
35-
total: PropTypes.shape({
36-
numProviders: PropTypes.number,
33+
export const summaryDataShape = PropTypes.shape({
34+
total: PropTypes.shape({
35+
numProviders: PropTypes.number,
36+
numHypervisors: PropTypes.number,
37+
numVms: PropTypes.number,
38+
allocatedDiskSpace: PropTypes.number,
39+
allocatedMemory: PropTypes.number,
40+
numCpuCores: PropTypes.number
41+
}),
42+
providers: PropTypes.arrayOf(
43+
PropTypes.shape({
3744
numHypervisors: PropTypes.number,
3845
numVms: PropTypes.number,
3946
allocatedDiskSpace: PropTypes.number,
4047
allocatedMemory: PropTypes.number,
4148
numCpuCores: PropTypes.number
42-
}),
43-
providers: PropTypes.arrayOf(
44-
PropTypes.shape({
45-
numHypervisors: PropTypes.number,
46-
numVms: PropTypes.number,
47-
allocatedDiskSpace: PropTypes.number,
48-
allocatedMemory: PropTypes.number,
49-
numCpuCores: PropTypes.number
50-
})
51-
)
52-
}).isRequired
49+
})
50+
)
51+
});
52+
53+
SummaryAccordion.propTypes = {
54+
summaryData: summaryDataShape.isRequired
5355
};
5456

5557
export default SummaryAccordion;

0 commit comments

Comments
 (0)