From 22a800ce732d30441263603f18d45ce6976074a3 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 20 Oct 2021 13:38:56 +0300 Subject: [PATCH] fix: terminal resize on initial open (dock without tabs) fix: console errors when closing all dock tabs Signed-off-by: Roman --- src/renderer/components/dock/dock-tab-content.tsx | 12 ++++++------ src/renderer/components/dock/dock.views-manager.ts | 2 +- src/renderer/components/dock/terminal-window.tsx | 4 +++- .../components/monaco-editor/monaco-editor.tsx | 6 +----- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/renderer/components/dock/dock-tab-content.tsx b/src/renderer/components/dock/dock-tab-content.tsx index 31d348893f..3e76e410ef 100644 --- a/src/renderer/components/dock/dock-tab-content.tsx +++ b/src/renderer/components/dock/dock-tab-content.tsx @@ -32,7 +32,7 @@ import throttle from "lodash/throttle"; export interface DockTabContentProps extends React.HTMLAttributes { className?: string; - tab: DockTab; + tab?: DockTab; bindContainerRef?(elem: HTMLElement): void; } @@ -55,18 +55,18 @@ export class DockTabContent extends React.Component { ]); } - @computed get tabId(): TabId { - return this.props.tab.id; + @computed get tabId(): TabId | undefined { + return this.props.tab?.id; } - @computed get tabComponents(): DockTabComponents { - return dockViewsManager.get(this.props.tab.kind); + @computed get tabComponents(): DockTabComponents | undefined { + return dockViewsManager.get(this.props.tab?.kind); } @observable error = ""; @computed get editorIsVisible() { - return Boolean(this.tabComponents.editor); + return Boolean(this.tabComponents?.editor); } focusEditor() { diff --git a/src/renderer/components/dock/dock.views-manager.ts b/src/renderer/components/dock/dock.views-manager.ts index f1eef8dede..94e490c003 100644 --- a/src/renderer/components/dock/dock.views-manager.ts +++ b/src/renderer/components/dock/dock.views-manager.ts @@ -40,7 +40,7 @@ const dockViews = observable.map([], { export const dockViewsManager = { get(tabKind: TabKind): DockTabComponents { - return dockViews.get(tabKind) ?? {}; + return dockViews.get(tabKind); }, register(tabKind: TabKind, views: DockTabComponents) { diff --git a/src/renderer/components/dock/terminal-window.tsx b/src/renderer/components/dock/terminal-window.tsx index a0a71a1bec..ed62019832 100644 --- a/src/renderer/components/dock/terminal-window.tsx +++ b/src/renderer/components/dock/terminal-window.tsx @@ -47,7 +47,9 @@ export class TerminalWindow extends React.Component { }), // refresh terminal available space (cols/rows) when resized - dockStore.onResize(() => this.terminal?.fitLazy()), + dockStore.onResize(() => this.terminal?.fitLazy(), { + fireImmediately: true, + }), ]); } diff --git a/src/renderer/components/monaco-editor/monaco-editor.tsx b/src/renderer/components/monaco-editor/monaco-editor.tsx index ca9a273a4f..d867ac1d56 100644 --- a/src/renderer/components/monaco-editor/monaco-editor.tsx +++ b/src/renderer/components/monaco-editor/monaco-editor.tsx @@ -179,11 +179,7 @@ export class MonacoEditor extends React.Component { reaction(() => this.model, this.onModelChange), reaction(() => this.props.theme, editor.setTheme), reaction(() => this.props.value, value => this.setValue(value)), - reaction(() => this.options, opts => { - - console.log('OPTS', opts) - this.editor.updateOptions(opts); - }), + reaction(() => this.options, opts => this.editor.updateOptions(opts)), () => onDidLayoutChangeDisposer.dispose(), () => onValueChangeDisposer.dispose(),