diff --git a/src/renderer/components/dock/dock-store/dock.store.ts b/src/renderer/components/dock/dock-store/dock.store.ts index 6997286042..45f1bf9f15 100644 --- a/src/renderer/components/dock/dock-store/dock.store.ts +++ b/src/renderer/components/dock/dock-store/dock.store.ts @@ -233,15 +233,6 @@ export class DockStore implements DockStorageState { }), reactionOpts); } - onTabsNumberChange(callback: (evt: DockTabsNumberEvent) => void) { - return reaction(() => this.tabsNumber, ((currentTabsNumber, previousTabsNumber) => { - callback({ - currentTabsNumber, - previousTabsNumber, - }); - })); - } - hasTabs() { return this.tabs.length > 0; } diff --git a/src/renderer/components/dock/dock-tabs.tsx b/src/renderer/components/dock/dock-tabs.tsx index 482f114e8c..c83c7094c6 100644 --- a/src/renderer/components/dock/dock-tabs.tsx +++ b/src/renderer/components/dock/dock-tabs.tsx @@ -4,6 +4,7 @@ */ import React, { Fragment, useRef, useEffect, useState, UIEvent } from "react"; +import { reaction } from "mobx"; import { Icon } from "../icon"; import { Tabs } from "../tabs/tabs"; import { DockTab } from "./dock-tab"; @@ -109,9 +110,12 @@ export const DockTabs = ({ tabs, autoFocus, selectedTab, onChangeTab, dockStore window.addEventListener("resize", onWindowResize); // update scroll state if tabs numbers has changed - dockStore.onTabsNumberChange(() => { - updateStateValues(); - }); + reaction(() => dockStore.tabsNumber, updateStateValues); + + return () => { + window.removeEventListener("resize", onWindowResize); + elem.current.removeEventListener("scroll", updateScrollPosition); + }; }, []); return (