Skip to content

Commit 08b89cd

Browse files
committed
Fix lint issues and update snapshots
1 parent b4de1c0 commit 08b89cd

19 files changed

+389
-213
lines changed

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,5 +158,8 @@
158158
"eslint --fix",
159159
"git add"
160160
]
161+
},
162+
"dependencies": {
163+
"react-select": "^1.2.1"
161164
}
162165
}

packages/tagging/src/components/InnerComponents/CategoryModifier.js

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,43 @@ import { Col, ControlLabel, FormGroup } from 'patternfly-react';
44
import TagSelector from './TagSelector';
55

66
const CategoryModifier = ({
7-
tagCategories, onTagCategoryChange, selectedTagCategory, categoryLabel,
7+
tagCategories,
8+
onTagCategoryChange,
9+
selectedTagCategory,
10+
categoryLabel
811
}) => (
912
<FormGroup>
1013
<Col xs={12} md={4} lg={6}>
1114
<ControlLabel>{categoryLabel}</ControlLabel>
1215
</Col>
1316
<Col xs={12} md={8} lg={6}>
14-
<TagSelector tagCategories={tagCategories} onTagCategoryChange={onTagCategoryChange} selectedOption={selectedTagCategory} />
17+
<TagSelector
18+
tagCategories={tagCategories}
19+
onTagCategoryChange={onTagCategoryChange}
20+
selectedOption={selectedTagCategory}
21+
/>
1522
</Col>
1623
</FormGroup>
1724
);
1825

1926
CategoryModifier.propTypes = {
20-
tagCategories: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.number, description: PropTypes.string.isRequired }).isRequired).isRequired,
21-
selectedTagCategory: PropTypes.shape({ id: PropTypes.number, description: PropTypes.string }),
27+
tagCategories: PropTypes.arrayOf(
28+
PropTypes.shape({
29+
id: PropTypes.number,
30+
description: PropTypes.string.isRequired
31+
}).isRequired
32+
).isRequired,
33+
selectedTagCategory: PropTypes.shape({
34+
id: PropTypes.number,
35+
description: PropTypes.string
36+
}),
2237
onTagCategoryChange: PropTypes.func.isRequired,
23-
categoryLabel: PropTypes.string,
38+
categoryLabel: PropTypes.string
2439
};
2540

2641
CategoryModifier.defaultProps = {
2742
categoryLabel: 'Category',
28-
selectedTagCategory: {},
43+
selectedTagCategory: {}
2944
};
3045

3146
export default CategoryModifier;
Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,12 @@
11
import * as React from 'react';
22
import PropTypes from 'prop-types';
3-
import { Label } from 'patternfly-react';
4-
import { OverlayTrigger, Tooltip } from 'patternfly-react';
3+
import { Label, OverlayTrigger, Tooltip } from 'patternfly-react';
54

5+
const tooltip = text => <Tooltip id="tooltip">{text}</Tooltip>;
66

7-
const tooltip = (text) => (
8-
<Tooltip id="tooltip">
9-
{text}
10-
</Tooltip>
11-
);
12-
13-
const Tag = ({
14-
onTagDeleteClick, tagCategory, tagValue, truncate,
15-
}) => (
7+
const Tag = ({ onTagDeleteClick, tagCategory, tagValue, truncate }) => (
168
<li key={tagValue.id} className="tag">
17-
<OverlayTrigger
18-
placement="bottom"
19-
overlay={tooltip(tagValue.description)}>
9+
<OverlayTrigger placement="bottom" overlay={tooltip(tagValue.description)}>
2010
<Label
2111
key={tagValue.id}
2212
bsStyle="primary"
@@ -31,9 +21,12 @@ const Tag = ({
3121

3222
Tag.propTypes = {
3323
onTagDeleteClick: PropTypes.func.isRequired,
34-
tagCategory: PropTypes.PropTypes.shape({ id: PropTypes.number, description: PropTypes.string }).isRequired,
24+
tagCategory: PropTypes.PropTypes.shape({
25+
id: PropTypes.number,
26+
description: PropTypes.string
27+
}).isRequired,
3528
tagValue: PropTypes.object.isRequired,
36-
truncate: PropTypes.func,
29+
truncate: PropTypes.func.isRequired
3730
};
3831

3932
export default Tag;

packages/tagging/src/components/InnerComponents/TagCategory.js

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,32 @@ import PropTypes from 'prop-types';
33
import { OverlayTrigger, Tooltip } from 'patternfly-react';
44
import Tag from './Tag';
55

6-
7-
86
class TagCategory extends React.Component {
9-
10-
generateTag = tagValue =>
11-
(<Tag
7+
generateTag = tagValue => (
8+
<Tag
129
key={tagValue.id}
1310
tagCategory={this.props.tagCategory}
1411
tagValue={tagValue}
1512
onTagDeleteClick={this.props.onTagDeleteClick}
1613
truncate={this.props.valueTruncate}
17-
/>);
14+
/>
15+
);
1816

1917
render() {
20-
let values = [...this.props.tagValues];
18+
const values = [...this.props.tagValues];
2119
const categoryTooltip = (
22-
<Tooltip id="tooltip">
23-
{this.props.tagCategory.description}
24-
</Tooltip>
20+
<Tooltip id="tooltip">{this.props.tagCategory.description}</Tooltip>
2521
);
2622
return (
2723
<ul className="tag-category list-inline">
2824
<OverlayTrigger placement="bottom" overlay={categoryTooltip}>
29-
<div className="category-label" >{this.props.categoryTruncate(this.props.tagCategory.description)}</div>
25+
<div className="category-label">
26+
{this.props.categoryTruncate(this.props.tagCategory.description)}
27+
</div>
3028
</OverlayTrigger>
31-
{values.sort((a,b) => a.description < b.description ? -1 : 1).map(tagValue => this.generateTag(tagValue))}
29+
{values
30+
.sort((a, b) => (a.description < b.description ? -1 : 1))
31+
.map(tagValue => this.generateTag(tagValue))}
3232
</ul>
3333
);
3434
}
@@ -37,14 +37,20 @@ class TagCategory extends React.Component {
3737
TagCategory.propTypes = {
3838
onTagDeleteClick: PropTypes.func.isRequired,
3939
tagCategory: PropTypes.object.isRequired,
40-
tagValues: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.number.isRequired, description: PropTypes.string.isRequired }).isRequired).isRequired,
40+
tagValues: PropTypes.arrayOf(
41+
PropTypes.shape({
42+
id: PropTypes.number.isRequired,
43+
description: PropTypes.string.isRequired
44+
}).isRequired
45+
).isRequired,
4146
categoryTruncate: PropTypes.func,
42-
valueTruncate: PropTypes.func,
47+
valueTruncate: PropTypes.func
4348
};
4449

4550
TagCategory.defaultProps = {
46-
categoryTruncate: str => ( str.length > 18 ? str.substring(0, 18) + '...' : str ),
47-
valueTruncate: str => ( str.length > 18 ? str.substring(0, 18) + '...' : str ),
48-
}
51+
categoryTruncate: str =>
52+
str.length > 18 ? `${str.substring(0, 18)}...` : str,
53+
valueTruncate: str => (str.length > 18 ? `${str.substring(0, 18)}...` : str)
54+
};
4955

5056
export default TagCategory;

packages/tagging/src/components/InnerComponents/TagModifier.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,22 @@ import { Row, Col, Form } from 'patternfly-react';
44

55
const TagModifier = ({ header, children }) => (
66
<React.Fragment>
7-
<Row><Col lg={12}><h2>{header}</h2></Col></Row>
8-
<Form horizontal>
9-
{children}
10-
</Form>
11-
7+
<Row>
8+
<Col lg={12}>
9+
<h2>{header}</h2>
10+
</Col>
11+
</Row>
12+
<Form horizontal>{children}</Form>
1213
</React.Fragment>
1314
);
1415

1516
TagModifier.propTypes = {
1617
header: PropTypes.string,
17-
children: PropTypes.arrayOf(PropTypes.element).isRequired,
18+
children: PropTypes.arrayOf(PropTypes.element).isRequired
1819
};
1920

2021
TagModifier.defaultProps = {
21-
header: 'Add/Modify tag',
22+
header: 'Add/Modify tag'
2223
};
2324

2425
export default TagModifier;

packages/tagging/src/components/InnerComponents/TagSelector.js

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,71 +4,73 @@ import PropTypes from 'prop-types';
44
import { OverlayTrigger, Tooltip } from 'patternfly-react';
55

66
class TagSelector extends React.Component {
7-
handleChange = (selectedOption) => {
7+
handleChange = selectedOption => {
88
this.props.onTagCategoryChange({
99
id: selectedOption.value,
10-
description: this.props.tagCategories.find(category => (category.id === selectedOption.value)).description,
10+
description: this.props.tagCategories.find(
11+
category => category.id === selectedOption.value
12+
).description
1113
});
12-
}
13-
14-
tooltip = (text) => (
15-
<Tooltip id="tooltip">
16-
{text}
17-
</Tooltip>
18-
);
14+
};
1915

20-
labelWithIcon = (description, infoText) => (<div>
21-
<span>
22-
{description}
23-
</span>
24-
<OverlayTrigger
25-
placement="bottom"
26-
overlay={this.tooltip(infoText)}
27-
>
28-
<span
29-
className="pull-right pficon pficon-info tag-icon"
30-
aria-hidden="true"
31-
/>
32-
</OverlayTrigger>
33-
<span className="sr-only">{infoText}</span>
34-
</div>)
16+
tooltip = text => <Tooltip id="tooltip">{text}</Tooltip>;
3517

18+
labelWithIcon = (description, infoText) => (
19+
<div>
20+
<span>{description}</span>
21+
<OverlayTrigger placement="bottom" overlay={this.tooltip(infoText)}>
22+
<span
23+
className="pull-right pficon pficon-info tag-icon"
24+
aria-hidden="true"
25+
/>
26+
</OverlayTrigger>
27+
<span className="sr-only">{infoText}</span>
28+
</div>
29+
);
3630

3731
tagCategories = this.props.tagCategories.map(category => ({
38-
keyWord: category.description.toLowerCase(),
39-
value: category.id,
40-
label: category.singleValue ? this.labelWithIcon(category.description, this.props.infoText) : category.description,
41-
}));
32+
keyWord: category.description.toLowerCase(),
33+
value: category.id,
34+
label: category.singleValue
35+
? this.labelWithIcon(category.description, this.props.infoText)
36+
: category.description
37+
}));
4238

4339
render() {
44-
const id = this.props.selectedOption.id;
45-
const label = this.props.selectedOption.description;
4640
return (
4741
<Select
48-
value={id}
49-
label={label}
42+
value={this.props.selectedOption.id}
43+
label={this.props.selectedOption.description}
5044
options={this.tagCategories}
5145
onChange={this.handleChange}
5246
className="selected-option"
5347
name="form-field-name"
54-
filterOptions={(options, filter) => options.filter(item => item.keyWord.includes(filter.toLowerCase())) }
48+
filterOptions={(options, filter) =>
49+
options.filter(item => item.keyWord.includes(filter.toLowerCase()))
50+
}
5551
clearable={false}
56-
5752
/>
58-
5953
);
6054
}
6155
}
6256
TagSelector.propTypes = {
63-
tagCategories: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.number, description: PropTypes.string.isRequired }).isRequired).isRequired,
64-
selectedOption: PropTypes.shape({ id: PropTypes.number, description: PropTypes.string }),
57+
tagCategories: PropTypes.arrayOf(
58+
PropTypes.shape({
59+
id: PropTypes.number,
60+
description: PropTypes.string.isRequired
61+
}).isRequired
62+
).isRequired,
63+
selectedOption: PropTypes.shape({
64+
id: PropTypes.number,
65+
description: PropTypes.string
66+
}),
6567
onTagCategoryChange: PropTypes.func.isRequired,
66-
infoText: PropTypes.string,
68+
infoText: PropTypes.string
6769
};
6870

6971
TagSelector.defaultProps = {
7072
infoText: 'Only a single value can be assigned from these categories',
71-
selectedOption: {},
73+
selectedOption: {}
7274
};
7375

7476
export default TagSelector;

packages/tagging/src/components/InnerComponents/TagView.js

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,30 @@ import { Row, Col } from 'patternfly-react';
44
import TagCategory from './TagCategory';
55

66
class TagView extends React.Component {
7-
generateTagCategories = tag =>
8-
(<TagCategory
7+
generateTagCategories = tag => (
8+
<TagCategory
99
key={tag.id}
1010
tagCategory={{ id: tag.id, description: tag.description }}
1111
tagValues={tag.tagValues}
1212
onTagDeleteClick={this.props.onTagDeleteClick}
13-
/>);
13+
/>
14+
);
1415

1516
render() {
16-
let assignedTags = [...this.props.assignedTags];
17+
const assignedTags = [...this.props.assignedTags];
1718
return (
1819
<React.Fragment>
19-
<Row><Col lg={12}><h2>{this.props.header}</h2></Col></Row>
20+
<Row>
21+
<Col lg={12}>
22+
<h2>{this.props.header}</h2>
23+
</Col>
24+
</Row>
2025
<Row>
2126
<Col lg={12}>
2227
<ul className="list-inline">
23-
{assignedTags.sort((a, b) => a.description < b.description ? -1 : 1).map(this.generateTagCategories)}
28+
{assignedTags
29+
.sort((a, b) => (a.description < b.description ? -1 : 1))
30+
.map(this.generateTagCategories)}
2431
</ul>
2532
</Col>
2633
</Row>
@@ -29,19 +36,24 @@ class TagView extends React.Component {
2936
}
3037
}
3138
TagView.propTypes = {
32-
assignedTags: PropTypes.arrayOf(PropTypes.shape({
33-
id: PropTypes.number.isRequired,
34-
description: PropTypes.string.isRequired,
35-
tagValues: PropTypes.arrayOf(PropTypes.shape(
36-
{ id: PropTypes.number.isRequired, description: PropTypes.string.isRequired }).isRequired).isRequired
37-
})),
39+
assignedTags: PropTypes.arrayOf(
40+
PropTypes.shape({
41+
id: PropTypes.number.isRequired,
42+
description: PropTypes.string.isRequired,
43+
tagValues: PropTypes.arrayOf(
44+
PropTypes.shape({
45+
id: PropTypes.number.isRequired,
46+
description: PropTypes.string.isRequired
47+
}).isRequired
48+
).isRequired
49+
})
50+
).isRequired,
3851
onTagDeleteClick: PropTypes.func.isRequired,
39-
header: PropTypes.string,
52+
header: PropTypes.string
4053
};
4154

42-
4355
TagView.defaultProps = {
44-
header: 'Assigned tags',
56+
header: 'Assigned tags'
4557
};
4658

4759
export default TagView;

0 commit comments

Comments
 (0)