/
JobsAndGroups.jsx
70 lines (65 loc) · 1.98 KB
/
JobsAndGroups.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import PropTypes from 'prop-types';
import React from 'react';
import { getStatus } from '../../helpers/job';
import JobButton from './JobButton';
import JobGroup from './JobGroup';
export default class JobsAndGroups extends React.Component {
render() {
const {
groups,
repoName,
platform,
filterPlatformCb,
filterModel,
pushGroupState,
duplicateJobsVisible,
groupCountsExpanded,
} = this.props;
return (
<td className="job-row">
{groups.map(group => {
if (group.tier !== 1 || group.symbol !== '') {
return (
group.visible && (
<JobGroup
group={group}
repoName={repoName}
filterModel={filterModel}
filterPlatformCb={filterPlatformCb}
platform={platform}
key={group.mapKey}
pushGroupState={pushGroupState}
duplicateJobsVisible={duplicateJobsVisible}
groupCountsExpanded={groupCountsExpanded}
/>
)
);
}
return group.jobs.map(job => (
<JobButton
job={job}
filterModel={filterModel}
repoName={repoName}
visible={job.visible}
resultStatus={getStatus(job)}
failureClassificationId={job.failure_classification_id}
filterPlatformCb={filterPlatformCb}
platform={platform}
key={job.id}
/>
));
})}
</td>
);
}
}
JobsAndGroups.propTypes = {
groups: PropTypes.array.isRequired,
repoName: PropTypes.string.isRequired,
filterModel: PropTypes.object.isRequired,
filterPlatformCb: PropTypes.func.isRequired,
platform: PropTypes.object.isRequired,
pushGroupState: PropTypes.string.isRequired,
duplicateJobsVisible: PropTypes.bool.isRequired,
groupCountsExpanded: PropTypes.bool.isRequired,
};