Skip to content

Commit af783fb

Browse files
Merge pull request salesforce#1651 from jacobroschen/master
Tree: Compare cached flattened nodes with id key
2 parents f9c089b + e554a1d commit af783fb

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

components/tree/private/item.jsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import React from 'react';
1010
import PropTypes from 'prop-types';
1111
import classNames from 'classnames';
12+
import findIndex from 'lodash.findindex';
1213
import isFunction from 'lodash.isfunction';
1314

1415
import Button from '../../button';
@@ -36,13 +37,13 @@ const handleSelect = ({ event, props, fromFocus }) => {
3637

3738
const findNextNode = (flattenedNodes, node) => {
3839
const nodes = flattenedNodes.map((flattenedNode) => flattenedNode.node);
39-
const index = nodes.indexOf(node);
40+
const index = findIndex(nodes, { id: node.id });
4041
return flattenedNodes[(index + 1) % flattenedNodes.length];
4142
};
4243

4344
const findPreviousNode = (flattenedNodes, node) => {
4445
const nodes = flattenedNodes.map((flattenedNode) => flattenedNode.node);
45-
let index = nodes.indexOf(node) - 1;
46+
let index = findIndex(nodes, { id: node.id }) - 1;
4647
if (index < 0) {
4748
index += flattenedNodes.length;
4849
}
@@ -83,7 +84,7 @@ const handleKeyDownUp = (event, props) => {
8384

8485
const handleKeyDownLeft = (event, props) => {
8586
const nodes = props.flattenedNodes.map((flattenedNode) => flattenedNode.node);
86-
const index = nodes.indexOf(props.parent);
87+
const index = findIndex(nodes, { id: props.parent.id });
8788
if (index !== -1) {
8889
props.onExpand({
8990
event,

components/tree/private/render-branch.jsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import React from 'react';
1111
import PropTypes from 'prop-types';
12+
import findIndex from 'lodash.findindex';
1213
import isFunction from 'lodash.isfunction';
1314
import classNames from 'classnames';
1415

@@ -110,13 +111,13 @@ const handleSelect = ({ event, props, fromFocus }) => {
110111

111112
const findNextNode = (flattenedNodes, node) => {
112113
const nodes = flattenedNodes.map((flattenedNode) => flattenedNode.node);
113-
const index = nodes.indexOf(node);
114+
const index = findIndex(nodes, { id: node.id });
114115
return flattenedNodes[(index + 1) % flattenedNodes.length];
115116
};
116117

117118
const findPreviousNode = (flattenedNodes, node) => {
118119
const nodes = flattenedNodes.map((flattenedNode) => flattenedNode.node);
119-
let index = nodes.indexOf(node) - 1;
120+
let index = findIndex(nodes, { id: node.id }) - 1;
120121
if (index < 0) {
121122
index += flattenedNodes.length;
122123
}
@@ -172,7 +173,7 @@ const handleKeyDownLeft = (event, props) => {
172173
const nodes = props.flattenedNodes.map(
173174
(flattenedNode) => flattenedNode.node
174175
);
175-
const index = nodes.indexOf(props.parent);
176+
const index = findIndex(nodes, { id: props.parent.id });
176177
if (index !== -1) {
177178
props.onExpand({
178179
event,

0 commit comments

Comments
 (0)