From 8b799f61b321a18282d532bf0dad4dc33128d905 Mon Sep 17 00:00:00 2001 From: Luna Date: Wed, 4 May 2022 17:46:16 -0400 Subject: [PATCH] maybe fix tree context bug --- .../devtools/views/Components/TreeContext.js | 56 ++++++++++--------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/packages/react-devtools-shared/src/devtools/views/Components/TreeContext.js b/packages/react-devtools-shared/src/devtools/views/Components/TreeContext.js index f6854468dc6eb..125a33cee32a3 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/TreeContext.js +++ b/packages/react-devtools-shared/src/devtools/views/Components/TreeContext.js @@ -383,36 +383,38 @@ function reduceTreeState(store: Store, state: State, action: Action): State { const elementIndicesWithErrorsOrWarnings = store.getElementsWithErrorsAndWarnings(); - let flatIndex = 0; - if (selectedElementIndex !== null) { - // Resume from the current position in the list. - // Otherwise step to the previous item, relative to the current selection. - for ( - let i = elementIndicesWithErrorsOrWarnings.length - 1; - i >= 0; - i-- - ) { - const {index} = elementIndicesWithErrorsOrWarnings[i]; - if (index >= selectedElementIndex) { - flatIndex = i; - } else { - break; + if (elementIndicesWithErrorsOrWarnings.lengh > 0) { + let flatIndex = 0; + if (selectedElementIndex !== null) { + // Resume from the current position in the list. + // Otherwise step to the previous item, relative to the current selection. + for ( + let i = elementIndicesWithErrorsOrWarnings.length - 1; + i >= 0; + i-- + ) { + const {index} = elementIndicesWithErrorsOrWarnings[i]; + if (index >= selectedElementIndex) { + flatIndex = i; + } else { + break; + } } } - } - let prevEntry; - if (flatIndex === 0) { - prevEntry = - elementIndicesWithErrorsOrWarnings[ - elementIndicesWithErrorsOrWarnings.length - 1 - ]; - selectedElementID = prevEntry.id; - selectedElementIndex = prevEntry.index; - } else { - prevEntry = elementIndicesWithErrorsOrWarnings[flatIndex - 1]; - selectedElementID = prevEntry.id; - selectedElementIndex = prevEntry.index; + let prevEntry; + if (flatIndex === 0) { + prevEntry = + elementIndicesWithErrorsOrWarnings[ + elementIndicesWithErrorsOrWarnings.length - 1 + ]; + selectedElementID = prevEntry.id; + selectedElementIndex = prevEntry.index; + } else { + prevEntry = elementIndicesWithErrorsOrWarnings[flatIndex - 1]; + selectedElementID = prevEntry.id; + selectedElementIndex = prevEntry.index; + } } lookupIDForIndex = false;