From be41b6b5d7d835568e5dc1f5d3ffa41aada32856 Mon Sep 17 00:00:00 2001 From: DmitriyNoa Date: Mon, 31 Jan 2022 14:20:17 +0100 Subject: [PATCH] PR fixes and improvements Signed-off-by: DmitriyNoa --- .../components/dock/dock-store/dock.store.ts | 5 ----- src/renderer/components/dock/dock-tabs.tsx | 3 +-- src/renderer/components/dock/dock.tsx | 20 +++++++++---------- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/renderer/components/dock/dock-store/dock.store.ts b/src/renderer/components/dock/dock-store/dock.store.ts index 45f1bf9f15..12b07b827a 100644 --- a/src/renderer/components/dock/dock-store/dock.store.ts +++ b/src/renderer/components/dock/dock-store/dock.store.ts @@ -97,11 +97,6 @@ export interface DockTabCloseEvent { tabId: TabId; // closed tab id } -export interface DockTabsNumberEvent { - currentTabsNumber: number; // number of open tabs - previousTabsNumber: number; -} - interface Dependencies { storage: StorageHelper } diff --git a/src/renderer/components/dock/dock-tabs.tsx b/src/renderer/components/dock/dock-tabs.tsx index ac6da79f0b..2d8ddbfd16 100644 --- a/src/renderer/components/dock/dock-tabs.tsx +++ b/src/renderer/components/dock/dock-tabs.tsx @@ -110,12 +110,11 @@ export const DockTabs = ({ tabs, autoFocus, selectedTab, onChangeTab, dockStore window.addEventListener("resize", onWindowResize); // update scroll state if tabs numbers has changed - const onTabsNumberChangedDisposer = reaction(() => dockStore.tabsNumber, updateStateValues); + reaction(() => dockStore.tabsNumber, updateStateValues, { fireImmediately: true }); return () => { window.removeEventListener("resize", onWindowResize); elem.current.removeEventListener("scroll", updateScrollPosition); - onTabsNumberChangedDisposer(); }; }, []); diff --git a/src/renderer/components/dock/dock.tsx b/src/renderer/components/dock/dock.tsx index 8f5c38a174..2f1706e817 100644 --- a/src/renderer/components/dock/dock.tsx +++ b/src/renderer/components/dock/dock.tsx @@ -36,10 +36,7 @@ interface Dependencies { dockStore: DockStore } -enum Direction { - next = "next", - prev = "prev", -} +type Direction = 1 | -1; @observer class NonInjectedDock extends React.Component { @@ -72,11 +69,11 @@ class NonInjectedDock extends React.Component { } if(ctrlKey && code === "Period") { - this.nextTab(Direction.next); + this.nextTab(); } if(ctrlKey && code === "Comma") { - this.nextTab(Direction.prev); + this.nextTab(-1); } }; @@ -88,13 +85,16 @@ class NonInjectedDock extends React.Component { this.element?.current.focus(); }; - nextTab = (direction: Direction) => { + nextTab = (direction: Direction = 1) => { const { tabs, selectedTab } = this.props.dockStore; const currentIndex = tabs.indexOf(selectedTab); - const nextIndex = direction === Direction.next ? currentIndex + 1 : currentIndex - 1; + const nextIndex = currentIndex + direction; - if (direction === Direction.next && currentIndex!== -1 && nextIndex >= tabs.length) return; - if (direction === Direction.prev && currentIndex!== -1 && nextIndex < 0) return; + // check if moving to the next tab is possible. + if (direction === 1 && currentIndex!== -1 && nextIndex >= tabs.length) return; + + // check if moving to the previous tab is possible + if (direction === -1 && currentIndex!== -1 && nextIndex < 0) return; const nextElement = tabs[nextIndex];