From bb1c4f91fd486a7e45331ff8b2cd91bafc275359 Mon Sep 17 00:00:00 2001 From: Wroud Date: Mon, 20 Jun 2022 11:29:14 +0300 Subject: [PATCH] fix(core-view): CB-2022 wrap set in action --- webapp/packages/core-view/src/DataContext/DataContext.ts | 4 +++- .../packages/core-view/src/DataContext/DynamicDataContext.ts | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/webapp/packages/core-view/src/DataContext/DataContext.ts b/webapp/packages/core-view/src/DataContext/DataContext.ts index 023172b2bf..04f47348ac 100644 --- a/webapp/packages/core-view/src/DataContext/DataContext.ts +++ b/webapp/packages/core-view/src/DataContext/DataContext.ts @@ -6,7 +6,7 @@ * you may not use this file except in compliance with the License. */ -import { makeObservable, observable } from 'mobx'; +import { action, makeObservable, observable } from 'mobx'; import { MetadataMap } from '@cloudbeaver/core-utils'; @@ -25,6 +25,8 @@ export class DataContext implements IDataContext { this.fallback = fallback; makeObservable(this, { + set: action, + delete: action, map: observable.shallow, fallback: observable.ref, }); diff --git a/webapp/packages/core-view/src/DataContext/DynamicDataContext.ts b/webapp/packages/core-view/src/DataContext/DynamicDataContext.ts index f70f892356..d9cbd7a432 100644 --- a/webapp/packages/core-view/src/DataContext/DynamicDataContext.ts +++ b/webapp/packages/core-view/src/DataContext/DynamicDataContext.ts @@ -33,8 +33,8 @@ export class DynamicDataContext implements IDataContext { set(context: DataContextGetter, value: T): DeleteVersionedContextCallback { const dynamicContext = this.contexts.get(context); - if (dynamicContext && this.get(context) === value) { - return dynamicContext; + if (this.tryGet(context) === value) { + return dynamicContext ?? ( () => {}); } const deleteCallback = this.fallback.set(context, value);