Bump eslint-plugin-react from 7.16.0 to 7.37.4 (#8411)

* Bump eslint-plugin-react from 7.16.0 to 7.37.4

Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.16.0 to 7.37.4.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.16.0...v7.37.4)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* increase max asset size by 200kB to allow eslint-plugin-react update

* PropTypes fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
Sebastian Hengst 2025-01-16 14:33:06 +01:00 коммит произвёл GitHub
Родитель c81d44d435
Коммит e114c4b316
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
50 изменённых файлов: 920 добавлений и 151 удалений

Просмотреть файл

@ -97,7 +97,7 @@
"eslint-plugin-jest": "27.1.7",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-prettier": "4.2.1",
"eslint-plugin-react": "7.16.0",
"eslint-plugin-react": "7.37.4",
"fetch-mock": "9.4.0",
"html-loader": "5.1.0",
"html-webpack-plugin": "5.6.3",

Просмотреть файл

@ -316,7 +316,18 @@ const BugDetailsView = (props) => {
};
BugDetailsView.propTypes = {
location: PropTypes.shape({}).isRequired,
location: PropTypes.shape({
pathname: PropTypes.string,
search: PropTypes.string,
state: PropTypes.shape({}),
hash: PropTypes.string,
}).isRequired,
lastLocation: PropTypes.shape({
pathname: PropTypes.string,
search: PropTypes.string,
state: PropTypes.shape({}),
hash: PropTypes.string,
}).isRequired,
tree: PropTypes.string.isRequired,
updateAppState: PropTypes.func,
updateState: PropTypes.func.isRequired,
@ -324,17 +335,43 @@ BugDetailsView.propTypes = {
startday: PropTypes.string.isRequired,
failurehash: PropTypes.string.isRequired,
endday: PropTypes.string.isRequired,
tableData: PropTypes.arrayOf(PropTypes.shape({})),
graphData: PropTypes.arrayOf(PropTypes.shape({})),
tableData: PropTypes.arrayOf(
PropTypes.shape({
// Define the expected structure of tableData objects here
push_time: PropTypes.string,
tree: PropTypes.string,
revision: PropTypes.string,
platform: PropTypes.string,
build_type: PropTypes.string,
test_suite: PropTypes.string,
machine_name: PropTypes.string,
job_id: PropTypes.string,
lines: PropTypes.arrayOf(PropTypes.string),
}),
),
graphData: PropTypes.arrayOf(
PropTypes.shape({
// Define the expected structure of graphData objects here
// Example:
timestamp: PropTypes.number,
value: PropTypes.number,
}),
),
initialParamsSet: PropTypes.bool.isRequired,
bug: PropTypes.string.isRequired,
summary: PropTypes.string.isRequired,
errorMessages: PropTypes.arrayOf(PropTypes.string),
lastLocation: PropTypes.shape({}).isRequired,
tableFailureStatus: PropTypes.string,
graphFailureStatus: PropTypes.string,
uniqueLines: PropTypes.arrayOf(PropTypes.array),
uniqueFrequency: PropTypes.shape({}),
uniqueLines: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),
uniqueFrequency: PropTypes.shape({
// Define the expected structure of uniqueFrequency object here
all: PropTypes.arrayOf(
PropTypes.shape({
count: PropTypes.number,
}),
),
}),
};
BugDetailsView.defaultProps = {

Просмотреть файл

@ -436,11 +436,11 @@ DetailsPanel.propTypes = {
currentRepo: PropTypes.shape({}).isRequired,
user: PropTypes.shape({}).isRequired,
resizedHeight: PropTypes.number.isRequired,
classificationTypes: PropTypes.arrayOf(PropTypes.object).isRequired,
classificationTypes: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
classificationMap: PropTypes.shape({}).isRequired,
setPinBoardVisible: PropTypes.func.isRequired,
isPinBoardVisible: PropTypes.bool.isRequired,
pushList: PropTypes.arrayOf(PropTypes.object).isRequired,
pushList: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
selectedJob: PropTypes.shape({}),
};

Просмотреть файл

@ -698,7 +698,7 @@ PinBoard.propTypes = {
recalculateUnclassifiedCounts: PropTypes.func.isRequired,
decisionTaskMap: PropTypes.shape({}).isRequired,
jobMap: PropTypes.shape({}).isRequired,
classificationTypes: PropTypes.arrayOf(PropTypes.object).isRequired,
classificationTypes: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
isLoggedIn: PropTypes.bool.isRequired,
isStaff: PropTypes.bool.isRequired,
isPinBoardVisible: PropTypes.bool.isRequired,
@ -718,7 +718,7 @@ PinBoard.propTypes = {
failureClassificationComment: PropTypes.string.isRequired,
selectedJobFull: PropTypes.shape({}),
email: PropTypes.string,
revisionTips: PropTypes.arrayOf(PropTypes.object),
revisionTips: PropTypes.arrayOf(PropTypes.shape({})),
};
PinBoard.defaultProps = {

Просмотреть файл

@ -543,7 +543,7 @@ ActionBar.propTypes = {
selectedJobFull: PropTypes.shape({}).isRequired,
logParseStatus: PropTypes.string.isRequired,
notify: PropTypes.func.isRequired,
jobLogUrls: PropTypes.arrayOf(PropTypes.object),
jobLogUrls: PropTypes.arrayOf(PropTypes.shape({})),
currentRepo: PropTypes.shape({}).isRequired,
isTryRepo: PropTypes.bool,
logViewerUrl: PropTypes.string,

Просмотреть файл

@ -63,5 +63,5 @@ ClassificationsPanel.propTypes = {
classification: PropTypes.shape({}).isRequired,
classificationMap: PropTypes.shape({}).isRequired,
job: PropTypes.shape({}).isRequired,
bugs: PropTypes.arrayOf(PropTypes.object).isRequired,
bugs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
};

Просмотреть файл

@ -116,7 +116,7 @@ export default function LogItem(props) {
}
LogItem.propTypes = {
logUrls: PropTypes.arrayOf(PropTypes.object).isRequired,
logUrls: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
logViewerUrl: PropTypes.string,
logViewerFullUrl: PropTypes.string,
};

Просмотреть файл

@ -42,7 +42,7 @@ export default function LogUrls(props) {
}
LogUrls.propTypes = {
logUrls: PropTypes.arrayOf(PropTypes.object).isRequired,
logUrls: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
logViewerUrl: PropTypes.string,
logViewerFullUrl: PropTypes.string,
};

Просмотреть файл

@ -89,13 +89,13 @@ class SummaryPanel extends React.PureComponent {
}
SummaryPanel.propTypes = {
bugs: PropTypes.arrayOf(PropTypes.object).isRequired,
bugs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
user: PropTypes.shape({}).isRequired,
currentRepo: PropTypes.shape({}).isRequired,
classificationMap: PropTypes.shape({}).isRequired,
selectedJobFull: PropTypes.shape({}).isRequired,
latestClassification: PropTypes.shape({}),
jobLogUrls: PropTypes.arrayOf(PropTypes.object),
jobLogUrls: PropTypes.arrayOf(PropTypes.shape({})),
jobDetailLoading: PropTypes.bool,
logParseStatus: PropTypes.string,
logViewerUrl: PropTypes.string,

Просмотреть файл

@ -67,7 +67,7 @@ function RelatedBug(props) {
RelatedBug.propTypes = {
deleteBug: PropTypes.func.isRequired,
bugs: PropTypes.arrayOf(PropTypes.object).isRequired,
bugs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
};
function TableRow(props) {
@ -145,7 +145,7 @@ function AnnotationsTable(props) {
AnnotationsTable.propTypes = {
deleteClassification: PropTypes.func.isRequired,
classifications: PropTypes.arrayOf(PropTypes.object).isRequired,
classifications: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
classificationMap: PropTypes.shape({}).isRequired,
};
@ -248,8 +248,8 @@ class AnnotationsTab extends React.Component {
AnnotationsTab.propTypes = {
classificationMap: PropTypes.shape({}).isRequired,
bugs: PropTypes.arrayOf(PropTypes.object).isRequired,
classifications: PropTypes.arrayOf(PropTypes.object).isRequired,
bugs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
classifications: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
recalculateUnclassifiedCounts: PropTypes.func.isRequired,
notify: PropTypes.func.isRequired,
selectedJobFull: PropTypes.shape({}).isRequired,

Просмотреть файл

@ -98,7 +98,7 @@ class PerfData extends React.PureComponent {
}
PerfData.propTypes = {
perfJobDetail: PropTypes.arrayOf(PropTypes.object),
perfJobDetail: PropTypes.arrayOf(PropTypes.shape({})),
};
PerfData.defaultProps = {

Просмотреть файл

@ -278,8 +278,8 @@ class PerformanceTab extends React.PureComponent {
PerformanceTab.propTypes = {
repoName: PropTypes.string.isRequired,
jobDetails: PropTypes.arrayOf(PropTypes.object),
perfJobDetail: PropTypes.arrayOf(PropTypes.object),
jobDetails: PropTypes.arrayOf(PropTypes.shape({})),
perfJobDetail: PropTypes.arrayOf(PropTypes.shape({})),
revision: PropTypes.string,
decisionTaskMap: PropTypes.shape({}).isRequired,
};

Просмотреть файл

@ -186,7 +186,7 @@ class SideBySide extends React.PureComponent {
}
SideBySide.propTypes = {
jobDetails: PropTypes.arrayOf(PropTypes.object),
jobDetails: PropTypes.arrayOf(PropTypes.shape({})),
};
SideBySide.defaultProps = {

Просмотреть файл

@ -77,5 +77,5 @@ export default class SideBySideVideo extends React.Component {
}
SideBySideVideo.propTypes = {
videos: PropTypes.arrayOf(PropTypes.object).isRequired,
videos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
};

Просмотреть файл

@ -286,19 +286,19 @@ class TabsPanel extends React.Component {
TabsPanel.propTypes = {
classificationMap: PropTypes.shape({}).isRequired,
jobDetails: PropTypes.arrayOf(PropTypes.object).isRequired,
jobDetails: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
jobArtifactsLoading: PropTypes.bool,
classifications: PropTypes.arrayOf(PropTypes.object).isRequired,
classifications: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
togglePinBoardVisibility: PropTypes.func.isRequired,
isPinBoardVisible: PropTypes.bool.isRequired,
pinnedJobs: PropTypes.shape({}).isRequired,
bugs: PropTypes.arrayOf(PropTypes.object).isRequired,
bugs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
clearSelectedJob: PropTypes.func.isRequired,
selectedJobFull: PropTypes.shape({}).isRequired,
currentRepo: PropTypes.shape({}).isRequired,
perfJobDetail: PropTypes.arrayOf(PropTypes.object),
perfJobDetail: PropTypes.arrayOf(PropTypes.shape({})),
jobRevision: PropTypes.string,
jobLogUrls: PropTypes.arrayOf(PropTypes.object),
jobLogUrls: PropTypes.arrayOf(PropTypes.shape({})),
logParseStatus: PropTypes.string,
logViewerFullUrl: PropTypes.string,
taskId: PropTypes.string.isRequired,

Просмотреть файл

@ -258,10 +258,10 @@ class ActiveFilters extends React.Component {
ActiveFilters.propTypes = {
filterModel: PropTypes.shape({}).isRequired,
filterBarFilters: PropTypes.arrayOf(PropTypes.object).isRequired,
filterBarFilters: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
isFieldFilterVisible: PropTypes.bool.isRequired,
toggleFieldFilterVisible: PropTypes.func.isRequired,
classificationTypes: PropTypes.arrayOf(PropTypes.object).isRequired,
classificationTypes: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
router: PropTypes.shape({}).isRequired,
clearSelectedJob: PropTypes.func.isRequired,
};

Просмотреть файл

@ -106,7 +106,7 @@ class NotificationsMenu extends React.Component {
}
NotificationsMenu.propTypes = {
storedNotifications: PropTypes.arrayOf(PropTypes.object).isRequired,
storedNotifications: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
clearStoredNotifications: PropTypes.func.isRequired,
};

Просмотреть файл

@ -106,7 +106,7 @@ PrimaryNavBar.propTypes = {
setCurrentRepoTreeStatus: PropTypes.func.isRequired,
toggleFieldFilterVisible: PropTypes.func.isRequired,
filterModel: PropTypes.shape({}).isRequired,
repos: PropTypes.arrayOf(PropTypes.object).isRequired,
repos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
serverChanged: PropTypes.bool.isRequired,
user: PropTypes.shape({}).isRequired,
duplicateJobsVisible: PropTypes.bool.isRequired,

Просмотреть файл

@ -100,5 +100,5 @@ export default function ReposMenu(props) {
}
ReposMenu.propTypes = {
repos: PropTypes.arrayOf(PropTypes.object).isRequired,
repos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
};

Просмотреть файл

@ -400,7 +400,7 @@ SecondaryNavBar.propTypes = {
updateButtonClick: PropTypes.func.isRequired,
serverChanged: PropTypes.bool.isRequired,
filterModel: PropTypes.shape({}).isRequired,
repos: PropTypes.arrayOf(PropTypes.object).isRequired,
repos: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
setCurrentRepoTreeStatus: PropTypes.func.isRequired,
allUnclassifiedFailureCount: PropTypes.number.isRequired,
recalculateUnclassifiedCounts: PropTypes.func.isRequired,

Просмотреть файл

@ -316,8 +316,8 @@ FuzzyJobFinder.propTypes = {
notify: PropTypes.func.isRequired,
toggle: PropTypes.func.isRequired,
decisionTaskId: PropTypes.string,
jobList: PropTypes.arrayOf(PropTypes.object),
filteredJobList: PropTypes.arrayOf(PropTypes.object),
jobList: PropTypes.arrayOf(PropTypes.shape({})),
filteredJobList: PropTypes.arrayOf(PropTypes.shape({})),
currentRepo: PropTypes.shape({}).isRequired,
};

Просмотреть файл

@ -84,7 +84,7 @@ export default class JobsAndGroups extends React.Component {
}
JobsAndGroups.propTypes = {
groups: PropTypes.arrayOf(PropTypes.object).isRequired,
groups: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
repoName: PropTypes.string.isRequired,
filterModel: PropTypes.shape({}).isRequired,
filterPlatformCb: PropTypes.func.isRequired,

Просмотреть файл

@ -364,7 +364,7 @@ PushHeader.propTypes = {
expandAllPushGroups: PropTypes.func.isRequired,
notificationSupported: PropTypes.bool.isRequired,
getAllShownJobs: PropTypes.func.isRequired,
selectedRunnableJobs: PropTypes.arrayOf(PropTypes.object).isRequired,
selectedRunnableJobs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
collapsed: PropTypes.bool.isRequired,
notify: PropTypes.func.isRequired,
jobCounts: PropTypes.shape({}).isRequired,

Просмотреть файл

@ -159,7 +159,7 @@ PushJobs.propTypes = {
runnableVisible: PropTypes.bool.isRequired,
duplicateJobsVisible: PropTypes.bool.isRequired,
groupCountsExpanded: PropTypes.bool.isRequired,
platforms: PropTypes.arrayOf(PropTypes.object).isRequired,
platforms: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
filterModel: PropTypes.shape({}).isRequired,
};

Просмотреть файл

@ -212,7 +212,7 @@ class PushList extends React.Component {
PushList.propTypes = {
repoName: PropTypes.string.isRequired,
filterModel: PropTypes.shape({}).isRequired,
pushList: PropTypes.arrayOf(PropTypes.object).isRequired,
pushList: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
fetchPushes: PropTypes.func.isRequired,
pollPushes: PropTypes.func.isRequired,
updateRange: PropTypes.func.isRequired,

Просмотреть файл

@ -1,5 +1,3 @@
/* eslint-disable react/no-did-update-set-state */
import React from 'react';
import PropTypes from 'prop-types';
import { Button, FormGroup, Input, Label } from 'reactstrap';

Просмотреть файл

@ -1,4 +1,3 @@
/* eslint-disable react/no-did-update-set-state */
import React from 'react';
import PropTypes from 'prop-types';
import { Alert, Container } from 'reactstrap';

Просмотреть файл

@ -36,7 +36,7 @@ export default class AlertsViewControls extends React.Component {
this.alertsRef = new Array(alertsLength)
.fill(null)
.map(() => React.createRef());
// eslint-disable-next-line react/no-did-update-set-state
this.setState({
currentAlert: -1,
alertsLength,

Просмотреть файл

@ -1,4 +1,3 @@
/* eslint-disable react/no-did-update-set-state */
import React from 'react';
import PropTypes from 'prop-types';
import { Container, Row } from 'reactstrap';

Просмотреть файл

@ -74,7 +74,6 @@ class GraphsView extends React.Component {
loading !== true &&
location.search !== prevProps.location.search
) {
// eslint-disable-next-line react/no-did-update-set-state
this.setState({
testData: [],
});

Просмотреть файл

@ -83,7 +83,6 @@ export default class TestDataModal extends React.Component {
? platform
: platforms[0];
// eslint-disable-next-line react/no-did-update-set-state
this.setState({ platform: newPlatform });
}
@ -91,7 +90,7 @@ export default class TestDataModal extends React.Component {
const newActiveTags = activeTags.filter((tag) =>
availableTags.includes(tag),
);
// eslint-disable-next-line react/no-did-update-set-state
this.setState({ activeTags: newActiveTags }, this.applyFilters);
}
@ -100,7 +99,6 @@ export default class TestDataModal extends React.Component {
}
if (timeRange !== prevProps.timeRange) {
// eslint-disable-next-line react/no-did-update-set-state
this.setState({ innerTimeRange: timeRange });
}

Просмотреть файл

@ -31,7 +31,6 @@ export default class PlatformList extends React.Component {
componentDidUpdate(prevProps) {
const { items } = this.props;
if (items !== prevProps.items) {
// eslint-disable-next-line react/no-did-update-set-state
this.setState(
{
platformsVersions: {},

Просмотреть файл

@ -44,7 +44,6 @@ class TestsView extends React.PureComponent {
platformsMap !== false &&
location.search === ''
) {
// eslint-disable-next-line react/no-did-update-set-state
this.setState(
{
framework: { id: 1, name: 'talos' },

Просмотреть файл

@ -79,7 +79,7 @@ class Action extends PureComponent {
Action.propTypes = {
name: PropTypes.string.isRequired,
tests: PropTypes.arrayOf(PropTypes.object).isRequired,
tests: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
groupedBy: PropTypes.string.isRequired,
orderedBy: PropTypes.string.isRequired,
revision: PropTypes.string.isRequired,

Просмотреть файл

@ -286,7 +286,7 @@ class ClassificationGroup extends React.PureComponent {
}
ClassificationGroup.propTypes = {
tests: PropTypes.arrayOf(PropTypes.object).isRequired,
tests: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
name: PropTypes.string.isRequired,
currentRepo: PropTypes.shape({}).isRequired,
revision: PropTypes.string.isRequired,

Просмотреть файл

@ -205,7 +205,7 @@ class CommitHistory extends React.PureComponent {
CommitHistory.propTypes = {
history: PropTypes.shape({
parentRepository: PropTypes.object,
parentRepository: PropTypes.shape({}).isRequired,
revisionCount: PropTypes.number.isRequired,
parentPushRevision: PropTypes.string,
job_counts: PropTypes.shape({

Просмотреть файл

@ -65,7 +65,7 @@ JobListMetric.propTypes = {
data: PropTypes.shape({
name: PropTypes.string.isRequired,
result: PropTypes.string.isRequired,
details: PropTypes.array.isRequired,
details: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
}).isRequired,
currentRepo: PropTypes.shape({}).isRequired,
updateParamsAndState: PropTypes.func.isRequired,

Просмотреть файл

@ -63,7 +63,7 @@ class MyPushes extends React.Component {
if (!prevProps.user.isLoggedIn && user.isLoggedIn) {
const { author } = parseQueryParams(window.location.search);
const displayedUser = author ?? user.email;
// eslint-disable-next-line react/no-did-update-set-state
this.setState({ displayedUser }, () => this.fetchMetrics(true));
// Update the tests every two minutes.
this.testTimerId = setInterval(() => this.fetchMetrics(), 120000);

Просмотреть файл

@ -19,7 +19,6 @@ class TaskSelection extends React.PureComponent {
prevProps.allPlatformsSelected !== allPlatformsSelected &&
allPlatformsSelected !== isTestSelected
) {
// eslint-disable-next-line react/no-did-update-set-state
this.setState({ isTestSelected: allPlatformsSelected });
}
}

Просмотреть файл

@ -373,7 +373,7 @@ class Test extends PureComponent {
Test.propTypes = {
test: PropTypes.shape({
key: PropTypes.string.isRequired,
tests: PropTypes.arrayOf(PropTypes.object).isRequired,
tests: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
}).isRequired,
groupedBy: PropTypes.string.isRequired,
revision: PropTypes.string.isRequired,

Просмотреть файл

@ -122,8 +122,8 @@ TestMetric.propTypes = {
name: PropTypes.string.isRequired,
result: PropTypes.string.isRequired,
details: PropTypes.shape({
needInvestigation: PropTypes.array.isRequired,
knownIssues: PropTypes.array.isRequired,
needInvestigation: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
knownIssues: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
}).isRequired,
}).isRequired,
repo: PropTypes.string.isRequired,

Просмотреть файл

@ -1000,7 +1000,36 @@ BugFilerClass.propTypes = {
isOpen: PropTypes.bool.isRequired,
toggle: PropTypes.func.isRequired,
suggestion: PropTypes.shape({}).isRequired,
suggestions: PropTypes.arrayOf(PropTypes.object).isRequired,
suggestions: PropTypes.arrayOf({
bugs: PropTypes.shape({
open_recent: PropTypes.arrayOf({
crash_signature: PropTypes.string.isRequired,
dupe_of: PropTypes.oneOfType(null, PropTypes.number).isRequired,
id: PropTypes.number.isRequired,
keywords: PropTypes.string.isRequired,
status: PropTypes.string.isRequired,
resolution: PropTypes.string.isRequired,
summary: PropTypes.string.isRequired,
whiteboard: PropTypes.string.isRequired,
}),
all_others: PropTypes.arrayOf({
crash_signature: PropTypes.string.isRequired,
dupe_of: PropTypes.oneOfType(null, PropTypes.number).isRequired,
id: PropTypes.number.isRequired,
keywords: PropTypes.string.isRequired,
status: PropTypes.string.isRequired,
resolution: PropTypes.string.isRequired,
summary: PropTypes.string.isRequired,
whiteboard: PropTypes.string.isRequired,
}),
}),
counter: PropTypes.number.isRequired,
failure_in_new_rev: PropTypes.bool.isRequired,
line_number: PropTypes.number.isRequired,
path_end: PropTypes.oneOfType(null, PropTypes.string).isRequired,
search: PropTypes.string.isRequired,
search_terms: PropTypes.arrayOf(PropTypes.string),
}).isRequired,
fullLog: PropTypes.string.isRequired,
parsedLog: PropTypes.string.isRequired,
reftestUrl: PropTypes.string.isRequired,

Просмотреть файл

@ -19,7 +19,7 @@ class ErrorMessages extends React.PureComponent {
!this.state.visible
) {
// reset Alert if previouly dismissed
// eslint-disable-next-line react/no-did-update-set-state
this.setState({ visible: true });
}
}

Просмотреть файл

@ -22,7 +22,6 @@ export default class InputFilter extends React.Component {
const { filteredTextValue } = this.props;
if (filteredTextValue !== prevProps.filteredTextValue) {
// eslint-disable-next-line react/no-did-update-set-state
this.setState({ input: filteredTextValue });
}
}

Просмотреть файл

@ -96,7 +96,12 @@ export default class JobArtifacts extends React.PureComponent {
}
JobArtifacts.propTypes = {
jobDetails: PropTypes.arrayOf(PropTypes.object),
jobDetails: PropTypes.arrayOf({
contentType: PropTypes.string.isRequired,
expires: PropTypes.string.isRequired,
name: PropTypes.string.isRequired,
storageType: PropTypes.string.isRequired,
}),
jobArtifactsLoading: PropTypes.bool,
repoName: PropTypes.string.isRequired,
selectedJob: PropTypes.shape({}).isRequired,

Просмотреть файл

@ -43,7 +43,13 @@ export class RevisionList extends React.PureComponent {
RevisionList.propTypes = {
revision: PropTypes.string.isRequired,
revisions: PropTypes.arrayOf(PropTypes.object).isRequired,
revisions: PropTypes.arrayOf({
author: PropTypes.string.isRequired,
comments: PropTypes.string.isRequired,
repository_id: PropTypes.number.isRequired,
result_set_id: PropTypes.number.isRequired,
revision: PropTypes.string.isRequired,
}).isRequired,
revisionCount: PropTypes.number.isRequired,
repo: PropTypes.shape({
pushLogUrl: PropTypes.string,

Просмотреть файл

@ -27,5 +27,8 @@ export default function ErrorsList(props) {
}
ErrorsList.propTypes = {
errors: PropTypes.arrayOf(PropTypes.object).isRequired,
errors: PropTypes.arrayOf({
line: PropTypes.string.isRequired,
lineNumber: PropTypes.number.isRequired,
}).isRequired,
};

Просмотреть файл

@ -304,7 +304,13 @@ class FailureSummaryTab extends React.Component {
FailureSummaryTab.propTypes = {
selectedJob: PropTypes.shape({}).isRequired,
jobLogUrls: PropTypes.arrayOf(PropTypes.object),
jobLogUrls: PropTypes.arrayOf({
id: PropTypes.number.isRequired,
job_id: PropTypes.number.isRequired,
name: PropTypes.string.isRequired,
url: PropTypes.string.isRequired,
parse_status: PropTypes.string.isRequired,
}),
logParseStatus: PropTypes.string,
logViewerFullUrl: PropTypes.string,
repoName: PropTypes.string.isRequired,

Просмотреть файл

@ -247,7 +247,7 @@ const productionConfig = {
performance: {
hints: 'error',
maxAssetSize: 2300000,
maxAssetSize: 2500000,
maxEntrypointSize: 3000000,
},

854
yarn.lock

Разница между файлами не показана из-за своего большого размера Загрузить разницу