From 39c1653d901cf792d804e015ea18c0172adc2568 Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Sat, 19 May 2018 14:57:15 +0800 Subject: [PATCH] fix: blank file explorer when accessing non-exist file --- src/components/FileExplorer.js | 8 +++++--- src/utils/visibleNodesGenerator.js | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/components/FileExplorer.js b/src/components/FileExplorer.js index 8170eb5..57ea266 100644 --- a/src/components/FileExplorer.js +++ b/src/components/FileExplorer.js @@ -32,9 +32,11 @@ export default class List extends preact.Component { this.tasksAfterRender.push(DOMHelper.focusSearchInput) if (currentPath.length) { const nodeExpandedTo = this.visibleNodesGenerator.expandTo(currentPath) - this.visibleNodesGenerator.focusNode(nodeExpandedTo) - const { nodes } = this.visibleNodesGenerator.visibleNodes - this.tasksAfterRender.push(() => DOMHelper.scrollToNodeElement(nodes.indexOf(nodeExpandedTo))) + if (nodeExpandedTo) { + this.visibleNodesGenerator.focusNode(nodeExpandedTo) + const { nodes } = this.visibleNodesGenerator.visibleNodes + this.tasksAfterRender.push(() => DOMHelper.scrollToNodeElement(nodes.indexOf(nodeExpandedTo))) + } } this.updateVisibleNodes() } diff --git a/src/utils/visibleNodesGenerator.js b/src/utils/visibleNodesGenerator.js index eda22ee..53a4c66 100644 --- a/src/utils/visibleNodesGenerator.js +++ b/src/utils/visibleNodesGenerator.js @@ -97,6 +97,7 @@ export default class VisibleNodesGenerator { for (const step of path) { targetPath = rootNode.path ? `${rootNode.path}/${step}` : step rootNode = rootNode.contents.find(node => node.path === targetPath) + if (!rootNode) return this.setExpand(rootNode, true) } return rootNode