mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
refactoring dock-tab stores -- part 2 / fix: splash screen stucks forever
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
f140bc5b70
commit
5c41b8612e
@ -19,7 +19,7 @@
|
|||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* 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 { autoBind, createStorage, Disposer, disposer, StorageHelper } from "../../utils";
|
||||||
import { dockStore, TabId } from "./dock.store";
|
import { dockStore, TabId } from "./dock.store";
|
||||||
|
|
||||||
@ -29,12 +29,12 @@ export interface DockTabStoreOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class DockTabsStore<T extends {}> {
|
export class DockTabsStore<T extends {}> {
|
||||||
private storage?: StorageHelper<Record<TabId, T>>; // available only with `options.storageKey`
|
@observable private _data: Record<TabId, T> = {};
|
||||||
private _data = observable.object<Record<TabId, T>>({});
|
@observable.ref private storage?: StorageHelper<Record<TabId, T>>; // available only with `options.storageKey`
|
||||||
protected watchers = observable.map<TabId, IReactionDisposer | Disposer>([], { deep: false });
|
protected watchers = observable.map<TabId, IReactionDisposer | Disposer>();
|
||||||
protected dispose = disposer();
|
protected dispose = disposer();
|
||||||
|
|
||||||
get data() {
|
@computed get data() {
|
||||||
if (this.options.storageKey) {
|
if (this.options.storageKey) {
|
||||||
return this.storage.get();
|
return this.storage.get();
|
||||||
} else {
|
} else {
|
||||||
@ -50,7 +50,7 @@ export class DockTabsStore<T extends {}> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(protected options: DockTabStoreOptions = {}) {
|
protected constructor(protected options: DockTabStoreOptions = {}) {
|
||||||
autoBind(this);
|
autoBind(this);
|
||||||
makeObservable(this);
|
makeObservable(this);
|
||||||
|
|
||||||
@ -118,17 +118,14 @@ export class DockTabsStore<T extends {}> {
|
|||||||
return this.data[tabId];
|
return this.data[tabId];
|
||||||
}
|
}
|
||||||
|
|
||||||
@action
|
|
||||||
setData(tabId: TabId, data: T) {
|
setData(tabId: TabId, data: T) {
|
||||||
this.data[tabId] = data;
|
this.data[tabId] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@action
|
|
||||||
clearData(tabId: TabId) {
|
clearData(tabId: TabId) {
|
||||||
delete this.data[tabId];
|
delete this.data[tabId];
|
||||||
}
|
}
|
||||||
|
|
||||||
@action
|
|
||||||
reset() {
|
reset() {
|
||||||
this.data = {};
|
this.data = {};
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user