Skip to content

Commit 85f340b

Browse files
committed
fix: change propTypes from element to node on most components
1 parent 47e3792 commit 85f340b

File tree

8 files changed

+25
-24
lines changed

8 files changed

+25
-24
lines changed

src/dialog/AlertDialog.jsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ AlertDialog.defaultProps = {
2626
};
2727

2828
AlertDialog.propTypes = {
29-
children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
30-
message: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
29+
children: PropTypes.node,
30+
message: PropTypes.node,
3131
onClose: PropTypes.func,
32-
title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
33-
closeLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
32+
title: PropTypes.node,
33+
closeLabel: PropTypes.node,
3434
};

src/dialog/ConfirmationDialog.jsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ ConfirmationDialog.defaultProps = {
4747
};
4848

4949
ConfirmationDialog.propTypes = {
50-
children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
51-
message: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
50+
children: PropTypes.node,
51+
message: PropTypes.node,
5252
onCancel: PropTypes.func,
5353
onProceed: PropTypes.func,
54-
title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
55-
cancelLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
56-
proceedLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
54+
title: PropTypes.node,
55+
cancelLabel: PropTypes.node,
56+
proceedLabel: PropTypes.node,
5757
proceedType: PropTypes.oneOf(['primary', 'danger', 'success']),
5858
};

src/list-group/ListGroup.jsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
3+
4+
import { formatClasses } from '../utils/attributes';
35
import { ListGroupItem } from './ListGroupItem';
46

57
export function ListGroup({ items, active, linked, bordered, horizontal, template, isDisabled, onSelect }) {
8+
const classes = formatClasses(['list-group', !bordered && 'list-group-flush', horizontal && 'list-group-horizontal']);
9+
610
const content = items.map((item, index) => (
711
<ListGroupItem
812
key={index}
@@ -17,10 +21,6 @@ export function ListGroup({ items, active, linked, bordered, horizontal, templat
1721
</ListGroupItem>
1822
));
1923

20-
const classes = ['list-group', !bordered && 'list-group-flush', horizontal && 'list-group-horizontal']
21-
.filter((v) => v)
22-
.join(' ');
23-
2424
if (linked) {
2525
return <div className={classes}>{content}</div>;
2626
}

src/list-group/ListGroupItem.jsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
3+
34
import { safeClick } from '../utils/event-handlers';
5+
import { formatClasses } from '../utils/attributes';
46

57
export function ListGroupItem({ index, isActive, isDisabled, item, linked, onSelect, children }) {
6-
const classes = [
8+
const classes = formatClasses([
79
'list-group-item',
810
isActive && 'active',
911
isDisabled && 'disabled',
1012
linked && 'list-group-item-action',
11-
]
12-
.filter((v) => v)
13-
.join(' ');
13+
]);
1414

1515
const onClick = safeClick(onSelect, index, item);
1616

@@ -34,7 +34,7 @@ ListGroupItem.defaultProps = {
3434
};
3535

3636
ListGroupItem.propTypes = {
37-
children: PropTypes.element.isRequired,
37+
children: PropTypes.node.isRequired,
3838
index: PropTypes.number.isRequired,
3939
isActive: PropTypes.bool,
4040
isDisabled: PropTypes.bool,

src/mixed/Dropdown.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Dropdown.defaultProps = {
4949
};
5050

5151
Dropdown.propTypes = {
52-
children: PropTypes.element,
52+
children: PropTypes.node,
5353
isOpen: PropTypes.bool,
5454
items: PropTypes.arrayOf(PropTypes.object),
5555
onMouseEnter: PropTypes.func,

src/table/Table.jsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
33
import { TableHead } from './TableHead';
44
import { TableBody } from './TableBody';
55
import { normalizeColumns } from './table-helpers';
6+
import { formatClasses } from '../utils/attributes';
67

78
export function Table({
89
docs,
@@ -21,14 +22,14 @@ export function Table({
2122
}) {
2223
const normalizedColumns = normalizeColumns(columns);
2324

24-
const tableClasses = [
25+
const tableClasses = formatClasses([
2526
'table',
2627
striped && 'table-striped',
2728
bordered && 'table-bordered',
2829
hover && 'table-hover',
2930
small && 'table-sm',
3031
dark && 'table-dark',
31-
].join(' ');
32+
]);
3233

3334
return (
3435
<div className="table-responsive">
@@ -57,7 +58,7 @@ Table.propTypes = {
5758
actionLabel: PropTypes.string,
5859
actions: PropTypes.oneOfType([PropTypes.func, PropTypes.arrayOf(PropTypes.object)]),
5960
bordered: PropTypes.bool,
60-
caption: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
61+
caption: PropTypes.node,
6162
columnHeaderFormat: PropTypes.func,
6263
columns: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.object])),
6364
dark: PropTypes.bool,

src/tabs/TabContent.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ export function TabContent({ isActive, content }) {
1616

1717
TabContent.propTypes = {
1818
isActive: PropTypes.bool,
19-
content: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),
19+
content: PropTypes.node,
2020
};

src/tabs/TabHeader.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ export function TabHeader({ index, isActive, title, onSelect }) {
2525
TabHeader.propTypes = {
2626
index: PropTypes.number,
2727
isActive: PropTypes.bool,
28-
title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
28+
title: PropTypes.node,
2929
onSelect: PropTypes.func,
3030
};

0 commit comments

Comments
 (0)