Skip to content

Commit 76d8270

Browse files
le0nikgajus
authored andcommitted
fix: restore prefixing of react children keys (#246)
1 parent 10b6c01 commit 76d8270

File tree

2 files changed

+1
-31
lines changed

2 files changed

+1
-31
lines changed

src/linkClass.js

+1-15
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,6 @@ import isIterable from './isIterable';
77
import parseStyleName from './parseStyleName';
88
import generateAppendClassName from './generateAppendClassName';
99

10-
const mapChildrenWithoutKeyPrefix = (children: ReactElement, mapper: Function, context: Object) => {
11-
if (typeof children === 'undefined' || children === null) {
12-
return children;
13-
}
14-
15-
const result = [];
16-
17-
React.Children.forEach(children, (child, index) => {
18-
result.push(mapper.call(context, child, index));
19-
});
20-
21-
return result;
22-
};
23-
2410
const linkArray = (array: Array, styles: Object, configuration: Object) => {
2511
_.forEach(array, (value, index) => {
2612
if (React.isValidElement(value)) {
@@ -55,7 +41,7 @@ const linkElement = (element: ReactElement, styles: Object, configuration: Objec
5541
if (React.isValidElement(children)) {
5642
elementShallowCopy.props.children = linkElement(React.Children.only(children), styles, configuration);
5743
} else if (_.isArray(children) || isIterable(children)) {
58-
elementShallowCopy.props.children = mapChildrenWithoutKeyPrefix(children, (node) => {
44+
elementShallowCopy.props.children = React.Children.map(children, (node) => {
5945
if (React.isValidElement(node)) {
6046
// eslint-disable-next-line no-use-before-define
6147
return linkElement(React.Children.only(node), styles, configuration);

tests/linkClass.js

-16
Original file line numberDiff line numberDiff line change
@@ -351,20 +351,4 @@ describe('linkClass', () => {
351351
expect(subject.props.els[1][0].props.className).to.deep.equal('bar-1');
352352
expect(subject.props.els[1][0].props).not.to.have.property('styleName');
353353
});
354-
355-
it('does not change defined keys of children if there are multiple children', () => {
356-
let subject;
357-
358-
subject = <div els={[<span key='foo' />, <span key='bar' />]}>
359-
<span key='foo' />
360-
<span key='bar' />
361-
</div>;
362-
363-
subject = linkClass(subject);
364-
365-
expect(subject.props.children[0].key).to.equal('foo');
366-
expect(subject.props.children[1].key).to.equal('bar');
367-
expect(subject.props.els[0].key).to.equal('foo');
368-
expect(subject.props.els[1].key).to.equal('bar');
369-
});
370354
});

0 commit comments

Comments
 (0)