diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts index 406c481cfe..777032acb1 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts @@ -2,7 +2,7 @@ import { UmbContextDiscriminator, UmbContextToken } from '../token/context-token import { isUmbContextProvideEventType, //isUmbContextUnprovidedEventType, - umbContextProvideEventType, + UMB_CONTEXT_PROVIDE_EVENT_TYPE, //umbContextUnprovidedEventType, } from '../provide/context-provide.event.js'; import { UmbContextRequestEventImplementation, UmbContextCallback } from './context-request.event.js'; @@ -11,9 +11,7 @@ import { UmbContextRequestEventImplementation, UmbContextCallback } from './cont * @export * @class UmbContextConsumer */ -export class UmbContextConsumer< -BaseType = unknown, -ResultType extends BaseType = BaseType> { +export class UmbContextConsumer { #callback?: UmbContextCallback; #promise?: Promise; #promiseResolver?: (instance: ResultType) => void; @@ -37,20 +35,20 @@ ResultType extends BaseType = BaseType> { constructor( protected hostElement: EventTarget, contextAlias: string | UmbContextToken, - callback?: UmbContextCallback + callback?: UmbContextCallback, ) { this.#contextAlias = contextAlias.toString(); this.#callback = callback; this.#discriminator = (contextAlias as UmbContextToken).getDiscriminator?.(); } - + protected _onResponse = (instance: BaseType): boolean => { if (this.#instance === instance) { return false; } - if(this.#discriminator) { + if (this.#discriminator) { // Notice if discriminator returns false, we do not want to setInstance. - if(this.#discriminator(instance)) { + if (this.#discriminator(instance)) { this.setInstance(instance as unknown as ResultType); return true; } @@ -89,14 +87,14 @@ ResultType extends BaseType = BaseType> { public hostConnected() { // TODO: We need to use closets application element. We need this in order to have separate Backoffice running within or next to each other. - window.addEventListener(umbContextProvideEventType, this.#handleNewProvider); + window.addEventListener(UMB_CONTEXT_PROVIDE_EVENT_TYPE, this.#handleNewProvider); //window.addEventListener(umbContextUnprovidedEventType, this.#handleRemovedProvider); this.request(); } public hostDisconnected() { // TODO: We need to use closets application element. We need this in order to have separate Backoffice running within or next to each other. - window.removeEventListener(umbContextProvideEventType, this.#handleNewProvider); + window.removeEventListener(UMB_CONTEXT_PROVIDE_EVENT_TYPE, this.#handleNewProvider); //window.removeEventListener(umbContextUnprovidedEventType, this.#handleRemovedProvider); } diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts index fa371cb228..6244c63145 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts @@ -1,6 +1,6 @@ import { UmbContextToken } from '../token/context-token.js'; -export const UMB_CONTEXT_PROVIDER_EVENT_TYPE = 'umb:context-provide'; +export const UMB_CONTEXT_PROVIDE_EVENT_TYPE = 'umb:context-provide'; /** * @export @@ -18,12 +18,12 @@ export interface UmbContextProvideEvent extends Event { */ export class UmbContextProvideEventImplementation extends Event implements UmbContextProvideEvent { public constructor(public readonly contextAlias: string | UmbContextToken) { - super(UMB_CONTEXT_PROVIDER_EVENT_TYPE, { bubbles: true, composed: true }); + super(UMB_CONTEXT_PROVIDE_EVENT_TYPE, { bubbles: true, composed: true }); } } export const isUmbContextProvideEventType = (event: Event): event is UmbContextProvideEventImplementation => { - return event.type === UMB_CONTEXT_PROVIDER_EVENT_TYPE; + return event.type === UMB_CONTEXT_PROVIDE_EVENT_TYPE; }; export const UMB_CONTEXT_UNPROVIDED_EVENT_TYPE = 'umb:context-unprovided'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/item.handlers.ts index 936cddb2bc..87fcf83b30 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/item.handlers.ts @@ -1,10 +1,10 @@ const { rest } = window.MockServiceWorker; import { umbDocumentData } from '../../data/document.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.get(umbracoPath(`${slug}/item`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { const ids = req.url.searchParams.getAll('id'); if (!ids) return; const items = umbDocumentData.getItems(ids); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/permission.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/permission.handlers.ts index b130b533f4..d663059f07 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/permission.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/permission.handlers.ts @@ -1,11 +1,11 @@ const { rest } = window.MockServiceWorker; import { umbDocumentData } from '../../data/document.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; // TODO: temp handlers until we have a real API export const handlers = [ - rest.get(umbracoPath(`${slug}/:id/permissions`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}/:id/permissions`), (req, res, ctx) => { const id = req.params.id as string; if (!id) return; const response = umbDocumentData.getUserPermissionsForDocument(id); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/collection.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/collection.handlers.ts index 56ffe6f449..b6723b7a7c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/collection.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/collection.handlers.ts @@ -1,10 +1,10 @@ const { rest } = window.MockServiceWorker; import { umbUserGroupData } from '../../data/user-group.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const collectionHandlers = [ - rest.get(umbracoPath(`${slug}`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}`), (req, res, ctx) => { const response = umbUserGroupData.getAll(); return res(ctx.status(200), ctx.json(response)); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/detail.handlers.ts index 100493e1c8..aa3c4edb36 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/detail.handlers.ts @@ -1,10 +1,10 @@ const { rest } = window.MockServiceWorker; import { umbUserGroupData } from '../../data/user-group.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ - rest.post(umbracoPath(`${slug}`), async (req, res, ctx) => { + rest.post(umbracoPath(`${UMB_SLUG}`), async (req, res, ctx) => { const data = await req.json(); if (!data) return; @@ -13,7 +13,7 @@ export const detailHandlers = [ return res(ctx.status(200)); }), - rest.get(umbracoPath(`${slug}/:id`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { const id = req.params.id as string; if (!id) return; @@ -22,7 +22,7 @@ export const detailHandlers = [ return res(ctx.status(200), ctx.json(dataType)); }), - rest.put(umbracoPath(`${slug}/:id`), async (req, res, ctx) => { + rest.put(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { const id = req.params.id as string; if (!id) return; const data = await req.json(); @@ -33,7 +33,7 @@ export const detailHandlers = [ return res(ctx.status(200)); }), - rest.delete(umbracoPath(`${slug}/:id`), async (req, res, ctx) => { + rest.delete(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { const id = req.params.id as string; if (!id) return; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/item.handlers.ts index c0d7a0e52d..8f184007c9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user-group/item.handlers.ts @@ -1,10 +1,10 @@ const { rest } = window.MockServiceWorker; import { umbUserGroupData } from '../../data/user-group.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const itemHandlers = [ - rest.get(umbracoPath(`${slug}/item`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { const ids = req.url.searchParams.getAll('id'); if (!ids) return; const items = umbUserGroupData.getItems(ids); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/change-password.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/change-password.handlers.ts index f7a5f9e4e0..1c8bdb9a82 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/change-password.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/change-password.handlers.ts @@ -1,10 +1,10 @@ const { rest } = window.MockServiceWorker; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { ChangePasswordUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.post(umbracoPath(`${slug}/change-password/:id`), async (req, res, ctx) => { + rest.post(umbracoPath(`${UMB_SLUG}/change-password/:id`), async (req, res, ctx) => { const data = await req.json(); if (!data) return; if (!data.newPassword) return; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts index 62dca40553..889b4e8aad 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts @@ -1,10 +1,10 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.get(umbracoPath(`${slug}/current`), (_req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}/current`), (_req, res, ctx) => { const loggedInUser = umbUsersData.getCurrentUser(); return res(ctx.status(200), ctx.json(loggedInUser)); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/detail.handlers.ts index 2b7cc62f7a..90bf0f8588 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/detail.handlers.ts @@ -1,15 +1,15 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.get(umbracoPath(`${slug}`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}`), (req, res, ctx) => { const response = umbUsersData.getAll(); return res(ctx.status(200), ctx.json(response)); }), - rest.post(umbracoPath(`${slug}`), async (req, res, ctx) => { + rest.post(umbracoPath(`${UMB_SLUG}`), async (req, res, ctx) => { const data = await req.json(); if (!data) return; @@ -18,7 +18,7 @@ export const handlers = [ return res(ctx.status(200), ctx.json(response)); }), - rest.get(umbracoPath(`${slug}/:id`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { const id = req.params.id as string; if (!id) return; @@ -27,7 +27,7 @@ export const handlers = [ return res(ctx.status(200), ctx.json(item)); }), - rest.put(umbracoPath(`${slug}/:id`), async (req, res, ctx) => { + rest.put(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { const id = req.params.id as string; if (!id) return; const data = await req.json(); @@ -38,7 +38,7 @@ export const handlers = [ return res(ctx.status(200)); }), - rest.delete(umbracoPath(`${slug}/:id`), async (req, res, ctx) => { + rest.delete(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { const id = req.params.id as string; if (!id) return; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/disable.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/disable.handlers.ts index c1dc30897c..fcaef8c691 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/disable.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/disable.handlers.ts @@ -1,11 +1,11 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { DisableUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.post(umbracoPath(`${slug}/disable`), async (req, res, ctx) => { + rest.post(umbracoPath(`${UMB_SLUG}/disable`), async (req, res, ctx) => { const data = await req.json(); if (!data) return; if (!data.userIds) return; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/enable.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/enable.handlers.ts index 91ba64633f..c02e12947d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/enable.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/enable.handlers.ts @@ -1,11 +1,11 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { EnableUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.post(umbracoPath(`${slug}/enable`), async (req, res, ctx) => { + rest.post(umbracoPath(`${UMB_SLUG}/enable`), async (req, res, ctx) => { const data = await req.json(); if (!data) return; if (!data.userIds) return; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/filter.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/filter.handlers.ts index a2cfa21d50..033e7acc48 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/filter.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/filter.handlers.ts @@ -1,30 +1,29 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.get(umbracoPath(`${slug}/filter`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}/filter`), (req, res, ctx) => { + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const orderBy = req.url.searchParams.get('orderBy'); + const orderDirection = req.url.searchParams.get('orderDirection'); + const userGroupIds = req.url.searchParams.getAll('userGroupIds'); + const userStates = req.url.searchParams.getAll('userStates'); + const filter = req.url.searchParams.get('filter'); - const skip = Number(req.url.searchParams.get('skip')); - const take = Number(req.url.searchParams.get('take')); - const orderBy = req.url.searchParams.get('orderBy'); - const orderDirection = req.url.searchParams.get('orderDirection'); - const userGroupIds = req.url.searchParams.getAll('userGroupIds'); - const userStates = req.url.searchParams.getAll('userStates'); - const filter = req.url.searchParams.get('filter'); + const options = { + skip: skip || undefined, + take: take || undefined, + orderBy: orderBy || undefined, + orderDirection: orderDirection || undefined, + userGroupIds: userGroupIds.length > 0 ? userGroupIds : undefined, + userStates: userStates.length > 0 ? userStates : undefined, + filter: filter || undefined, + }; - const options = { - skip: skip || undefined, - take: take || undefined, - orderBy: orderBy || undefined, - orderDirection: orderDirection || undefined, - userGroupIds: userGroupIds.length > 0 ? userGroupIds : undefined, - userStates: userStates.length > 0 ? userStates : undefined, - filter: filter || undefined, - }; - - const response = umbUsersData.filter(options); - return res(ctx.status(200), ctx.json(response)); - }), + const response = umbUsersData.filter(options); + return res(ctx.status(200), ctx.json(response)); + }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts index 3ef6366cdb..f1cca800dc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts @@ -1,11 +1,11 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { InviteUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.post(umbracoPath(`${slug}/invite`), async (req, res, ctx) => { + rest.post(umbracoPath(`${UMB_SLUG}/invite`), async (req, res, ctx) => { const data = await req.json(); if (!data) return; @@ -14,7 +14,7 @@ export const handlers = [ return res(ctx.status(200)); }), - rest.post(umbracoPath(`${slug}/invite/resend`), async (req, res, ctx) => { + rest.post(umbracoPath(`${UMB_SLUG}/invite/resend`), async (req, res, ctx) => { const data = await req.json(); if (!data) return; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/item.handlers.ts index 54c259b42e..1618619c9d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/item.handlers.ts @@ -1,10 +1,10 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.get(umbracoPath(`${slug}/item`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { const ids = req.url.searchParams.getAll('id'); if (!ids) return; const items = umbUsersData.getItems(ids); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/set-user-groups.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/set-user-groups.handlers.ts index e98e084ab4..1e984f1e80 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/set-user-groups.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/set-user-groups.handlers.ts @@ -1,10 +1,10 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.post(umbracoPath(`${slug}/set-user-groups`), async (req, res, ctx) => { + rest.post(umbracoPath(`${UMB_SLUG}/set-user-groups`), async (req, res, ctx) => { const data = await req.json(); if (!data) return; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/unlock.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/unlock.handlers.ts index 46991dea1e..f445ba58fa 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/unlock.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/unlock.handlers.ts @@ -1,11 +1,11 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user.data.js'; -import { slug } from './slug.js'; +import { UMB_SLUG } from './slug.js'; import { UnlockUsersRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ - rest.post(umbracoPath(`${slug}/unlock`), async (req, res, ctx) => { + rest.post(umbracoPath(`${UMB_SLUG}/unlock`), async (req, res, ctx) => { const data = await req.json(); if (!data) return; if (!data.userIds) return;