From 4bc178020d7b61bee0af6ced60956a89b19f2b8a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 23 Mar 2023 10:46:47 +0100 Subject: [PATCH] move context token into folder --- .../consume/context-consumer.controller.ts | 2 +- .../libs/context-api/consume/context-consumer.ts | 15 ++++++++------- .../context-api/consume/context-request.event.ts | 7 +++---- .../libs/context-api/index.ts | 2 +- .../context-api/provide/context-provide.event.ts | 2 +- .../provide/context-provider.controller.ts | 2 +- .../libs/context-api/provide/context-provider.ts | 12 ++++++++---- .../context-api/{ => token}/context-token.test.ts | 4 ++-- .../libs/context-api/{ => token}/context-token.ts | 0 9 files changed, 25 insertions(+), 21 deletions(-) rename src/Umbraco.Web.UI.Client/libs/context-api/{ => token}/context-token.test.ts (91%) rename src/Umbraco.Web.UI.Client/libs/context-api/{ => token}/context-token.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.controller.ts b/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.controller.ts index 2d30084d7f..f9b72588b2 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.controller.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.controller.ts @@ -1,4 +1,4 @@ -import { UmbContextToken } from '../context-token'; +import { UmbContextToken } from '../token/context-token'; import { UmbContextConsumer } from './context-consumer'; import { UmbContextCallback } from './context-request.event'; import type { UmbControllerHostInterface, UmbControllerInterface } from '@umbraco-cms/backoffice/controller'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.ts b/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.ts index 0fe4fc33d8..5432b1dc0d 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.ts @@ -1,4 +1,4 @@ -import { UmbContextToken } from '../context-token'; +import { UmbContextToken } from '../token/context-token'; import { isUmbContextProvideEventType, umbContextProvideEventType } from '../provide/context-provide.event'; import { UmbContextRequestEventImplementation, UmbContextCallback } from './context-request.event'; @@ -7,10 +7,8 @@ import { UmbContextRequestEventImplementation, UmbContextCallback } from './cont * @class UmbContextConsumer */ export class UmbContextConsumer { - - _promise?: Promise; - _promiseResolver?: (instance:T) => void; + _promiseResolver?: (instance: T) => void; private _instance?: T; get instance() { @@ -44,9 +42,12 @@ export class UmbContextConsumer((resolve) => { - this._instance ? resolve(this._instance) : (this._promiseResolver = resolve); - })); + return ( + this._promise || + (this._promise = new Promise((resolve) => { + this._instance ? resolve(this._instance) : (this._promiseResolver = resolve); + })) + ); } /** diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.ts b/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.ts index ab96c5bd51..d1b630be4b 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-request.event.ts @@ -1,4 +1,4 @@ -import { UmbContextToken } from '../context-token'; +import { UmbContextToken } from '../token/context-token'; export const umbContextRequestEventType = 'umb:context-request'; export const umbDebugContextEventType = 'umb:debug-contexts'; @@ -33,9 +33,8 @@ export const isUmbContextRequestEvent = (event: Event): event is UmbContextReque return event.type === umbContextRequestEventType; }; - export class UmbContextDebugRequest extends Event { - public constructor(public readonly callback:any) { + public constructor(public readonly callback: any) { super(umbDebugContextEventType, { bubbles: true, composed: true, cancelable: false }); } -} \ No newline at end of file +} diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/index.ts b/src/Umbraco.Web.UI.Client/libs/context-api/index.ts index 67aaa8edcf..39b438786a 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/index.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/index.ts @@ -4,4 +4,4 @@ export * from './consume/context-request.event'; export * from './provide/context-provider.controller'; export * from './provide/context-provider'; export * from './provide/context-provide.event'; -export * from './context-token'; +export * from './token/context-token'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.ts b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.ts index 37b88cea24..9388743921 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provide.event.ts @@ -1,4 +1,4 @@ -import { UmbContextToken } from '../context-token'; +import { UmbContextToken } from '../token/context-token'; export const umbContextProvideEventType = 'umb:context-provide'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.ts b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.ts index 54c9e2e167..7412ae6a0c 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.ts @@ -1,4 +1,4 @@ -import { UmbContextToken } from '../context-token'; +import { UmbContextToken } from '../token/context-token'; import { UmbContextProvider } from './context-provider'; import type { UmbControllerHostInterface, UmbControllerInterface } from '@umbraco-cms/backoffice/controller'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.ts b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.ts index c9ce3ab9c3..efed204d3a 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.ts @@ -1,5 +1,9 @@ -import { umbContextRequestEventType, isUmbContextRequestEvent, umbDebugContextEventType } from '../consume/context-request.event'; -import { UmbContextToken } from '../context-token'; +import { + umbContextRequestEventType, + isUmbContextRequestEvent, + umbDebugContextEventType, +} from '../consume/context-request.event'; +import { UmbContextToken } from '../token/context-token'; import { UmbContextProvideEventImplementation } from './context-provide.event'; /** @@ -68,14 +72,14 @@ export class UmbContextProvider { private _handleDebugContextRequest = (event: any) => { // If the event doesn't have an instances property, create it. - if(!event.instances){ + if (!event.instances) { event.instances = new Map(); } // If the event doesn't have an instance for this context, add it. // Nearest to the DOM element of will be added first // as contexts can change/override deeper in the DOM - if(!event.instances.has(this._contextAlias)){ + if (!event.instances.has(this._contextAlias)) { event.instances.set(this._contextAlias, this.#instance); } }; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/context-token.test.ts b/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/libs/context-api/context-token.test.ts rename to src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts index 66531d06f0..4493b739d6 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/context-token.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts @@ -1,7 +1,7 @@ import { expect } from '@open-wc/testing'; -import { UmbContextConsumer } from './consume/context-consumer'; +import { UmbContextConsumer } from '../consume/context-consumer'; import { UmbContextToken } from './context-token'; -import { UmbContextProvider } from './provide/context-provider'; +import { UmbContextProvider } from '../provide/context-provider'; const testContextAlias = 'my-test-context'; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/context-token.ts b/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/libs/context-api/context-token.ts rename to src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.ts