• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CBIIT / INS-WebPortal / 25870215283

14 May 2026 03:54PM UTC coverage: 13.041% (+0.1%) from 12.922%
25870215283

push

github

web-flow
Merge pull request #536 from CBIIT/eslint-improvements

ESLint QoL Improvements

403 of 2284 branches covered (17.64%)

Branch coverage included in aggregate %.

1 of 17 new or added lines in 9 files covered. (5.88%)

3 existing lines in 3 files now uncovered.

393 of 3820 relevant lines covered (10.29%)

35.59 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/components/PropertySubsection/programDetailSubsection.js
1
// Component to display a property
2
import {
×
3
  Grid,
4
  withStyles,
5
} from '@material-ui/core';
6
import React from 'react';
×
7
import {
×
8
  Anchor,
9
  prepareLinks,
10
} from '@bento-core/util';
11
import { externalLinkIcon } from '../../bento/programDetailData';
×
12

13
const PropertyItem = ({
×
14
  label,
15
  value,
16
  link,
17
  labelLink,
18
  classes,
19
}) => {
UNCOV
20
  const defaultValue = '';
×
21
  return (
×
22
    <Grid item container>
23
      <Grid item xs={6}>
24
        <span className={classes.title} id={`program_detail_left_section_title_${label}`}>
25
          {labelLink ? <Anchor link={labelLink} text={label} classes={classes} /> : label}
×
26
        </span>
27
      </Grid>
28
      <Grid item xs={6} className={classes.content} id={`program_detail_left_section_description_${label}_${value}`}>
29
        {value || value === 0 ? (
×
30
          link ? (
×
31
            <>
×
32
              <a
33
                href={link}
34
                target="_blank"
35
                rel="noopener noreferrer"
36
                className={classes.link}
37
              >
38
                {value}
39
                <img
40
                  src={externalLinkIcon.src}
41
                  alt={externalLinkIcon.alt}
42
                  className={classes.externalLinkIcon}
43
                />
44
              </a>
45
            </>
46
          ) : value
47
        ) : defaultValue}
48
      </Grid>
49
    </Grid>
50
  );
51
};
52

53
// Component to display a subsection
54
const Subsection = ({ config, data, classes }) => {
×
55
  const properties = prepareLinks(config.properties, data);
×
56
  return (
×
57
    <Grid item container className={classes.subsection}>
58
      <Grid item container direction="column" className={classes.subsectionBody} xs={12}>
59
        <Grid item>
60
          <span className={classes.detailContainerHeader}>{config.sectionHeader}</span>
61
        </Grid>
62
        {
63
          config.sectionDesc
64
            ? (
65
              <Grid item container className={classes.descriptionPart}>
×
66
                <Grid item><span className={classes.description}>Description -</span></Grid>
67
                <Grid item><span>{config.sectionDesc}</span></Grid>
68
              </Grid>
69
            ) : ''
70
        }
71
        {properties.slice(0, 10).map((prop, index) => (
72
          <PropertyItem
×
73
            key={index}
74
            label={prop.label}
75
            value={data[prop.dataField]}
76
            classes={classes}
77
            link={prop.link}
78
            labelLink={prop.labelLink}
79
            index
80
          />
81
        ))}
82
      </Grid>
83
      <Grid item xs={3} />
84
    </Grid>
85
  );
86
};
87

NEW
88
const styles = () => ({
×
89
  content: {
90
    fontFamily: 'Nunito',
91
    fontSize: '18px',
92
    fontWeight: '400',
93
    lineHeight: '25px',
94
    position: 'relative',
95
    top: '15px',
96
    marginBottom: '10px',
97
  },
98
  detailContainerHeader: {
99
    textTransform: 'uppercase',
100
    fontFamily: 'Inter',
101
    fontSize: '19px',
102
    fontWeight: '400',
103
    lineHeight: '20px',
104
    color: '#3478A5',
105
  },
106
  subsectionBody: {
107
    paddingBottom: '15px',
108
  },
109
  subsection: {
110
    '&:last-child $subsectionBody': {
111
      borderBottom: 'none',
112
    },
113
  },
114
  title: {
115
    color: '#1C58A1',
116
    fontFamily: 'Inter',
117
    fontSize: '16px',
118
    lineHeight: '20px',
119
    fontWeight: '600',
120
    position: 'relative',
121
    left: '10px',
122
    top: '15px',
123
    marginBottom: '10px',
124
  },
125
  descriptionPart: {
126
    paddingBottom: '26px',
127
  },
128
  description: {
129
    fontWeight: 'bold',
130
  },
131
  link: {
132
    fontWeight: '600',
133
    color: '#571AFF',
134
  },
135
  externalLinkIcon: {
136
    width: '16px',
137
    verticalAlign: 'sub',
138
    marginLeft: '4px',
139
  },
140
});
×
141

142
export default withStyles(styles, { withTheme: true })(Subsection);
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc