diff --git a/src/renderer/components/dock/dock-tabs.store.ts b/src/renderer/components/dock/dock-tabs.store.ts index 868ee72b48..9db08222b3 100644 --- a/src/renderer/components/dock/dock-tabs.store.ts +++ b/src/renderer/components/dock/dock-tabs.store.ts @@ -19,7 +19,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -import { action, autorun, IReactionDisposer, IReactionOptions, makeObservable, observable, reaction } from "mobx"; +import { autorun, computed, IReactionDisposer, IReactionOptions, makeObservable, observable, reaction } from "mobx"; import { autoBind, createStorage, Disposer, disposer, StorageHelper } from "../../utils"; import { dockStore, TabId } from "./dock.store"; @@ -29,12 +29,12 @@ export interface DockTabStoreOptions { } export class DockTabsStore { - private storage?: StorageHelper>; // available only with `options.storageKey` - private _data = observable.object>({}); - protected watchers = observable.map([], { deep: false }); + @observable private _data: Record = {}; + @observable.ref private storage?: StorageHelper>; // available only with `options.storageKey` + protected watchers = observable.map(); protected dispose = disposer(); - get data() { + @computed get data() { if (this.options.storageKey) { return this.storage.get(); } else { @@ -50,7 +50,7 @@ export class DockTabsStore { } } - constructor(protected options: DockTabStoreOptions = {}) { + protected constructor(protected options: DockTabStoreOptions = {}) { autoBind(this); makeObservable(this); @@ -118,17 +118,14 @@ export class DockTabsStore { return this.data[tabId]; } - @action setData(tabId: TabId, data: T) { this.data[tabId] = data; } - @action clearData(tabId: TabId) { delete this.data[tabId]; } - @action reset() { this.data = {}; }