diff --git a/packages/plugin-outline-pane/src/main.ts b/packages/plugin-outline-pane/src/main.ts index 383b3f7ad..c9062ea68 100644 --- a/packages/plugin-outline-pane/src/main.ts +++ b/packages/plugin-outline-pane/src/main.ts @@ -140,7 +140,7 @@ export class OutlineMain implements ISensor, ITreeBoard, IScrollable { const { nodes } = dragObject; const tree = this._master?.currentTree; - if (!tree || !this._shell) { + if (!tree || !tree.root || !this._shell) { return null; } diff --git a/packages/plugin-outline-pane/src/tree.ts b/packages/plugin-outline-pane/src/tree.ts index ceaebda38..894360cb7 100644 --- a/packages/plugin-outline-pane/src/tree.ts +++ b/packages/plugin-outline-pane/src/tree.ts @@ -7,8 +7,11 @@ export class Tree { readonly id: string; - @computed get root(): TreeNode { - return this.getTreeNode(this.document.focusNode!); + @computed get root(): TreeNode | null { + if (this.document.focusNode) { + return this.getTreeNode(this.document.focusNode!); + } + return null; } constructor(readonly document: DocumentModel) { diff --git a/packages/plugin-outline-pane/src/views/tree.tsx b/packages/plugin-outline-pane/src/views/tree.tsx index f1b2c5c9b..cfe07e0e3 100644 --- a/packages/plugin-outline-pane/src/views/tree.tsx +++ b/packages/plugin-outline-pane/src/views/tree.tsx @@ -150,6 +150,9 @@ export default class TreeView extends Component<{ tree: Tree }> { render() { const { tree } = this.props; const { root } = tree; + if (!root) { + return null; + } return (