From eadd2bee024b3f4a1704f1fb9a20043ebfc0e3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 27 Nov 2023 09:40:28 +0100 Subject: [PATCH] refactor CollectionAction --- .../action/collection-action-base.ts | 23 +++---------------- .../action/create-user.collection-action.ts | 9 ++------ .../action/invite-user.collection-action.ts | 9 ++------ 3 files changed, 7 insertions(+), 34 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/collection-action-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/collection-action-base.ts index 98a24a9c53..782a402ab9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/collection-action-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/collection-action-base.ts @@ -1,27 +1,10 @@ -import { UMB_COLLECTION_CONTEXT } from '../index.js'; -import { UmbCollectionContext } from '../types.js'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; +import { UmbBaseController } from '@umbraco-cms/backoffice/controller-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export interface UmbCollectionAction extends UmbApi { - host: UmbControllerHost; - collectionContext?: CollectionContextType; +export interface UmbCollectionAction extends UmbApi { execute(): Promise; } -export abstract class UmbCollectionActionBase - implements UmbCollectionAction -{ - host: UmbControllerHost; - collectionContext?: CollectionContextType; - constructor(host: UmbControllerHost) { - this.host = host; - - new UmbContextConsumerController(this.host, UMB_COLLECTION_CONTEXT, (instance) => { - // TODO: Be aware we are casting here. We should consider a better solution for typing the contexts. (But notice we still want to capture the collection workspace...) - this.collectionContext = instance as unknown as CollectionContextType; - }); - } +export abstract class UmbCollectionActionBase extends UmbBaseController implements UmbCollectionAction { abstract execute(): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts index de040e9b7d..0a011eb75e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts @@ -1,6 +1,4 @@ -import { UmbUserCollectionContext } from '../user-collection.context.js'; import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection'; -import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_CREATE_USER_MODAL, @@ -8,13 +6,13 @@ import { UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; -export class UmbCreateUserCollectionAction extends UmbCollectionActionBase { +export class UmbCreateUserCollectionAction extends UmbCollectionActionBase { #modalManagerContext: UmbModalManagerContext | undefined; constructor(host: UmbControllerHost) { super(host); - new UmbContextConsumerController(this.host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; }); } @@ -23,7 +21,4 @@ export class UmbCreateUserCollectionAction extends UmbCollectionActionBase { +export class UmbInviteUserCollectionAction extends UmbCollectionActionBase { #modalManagerContext: UmbModalManagerContext | undefined; constructor(host: UmbControllerHost) { super(host); - new UmbContextConsumerController(this.host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; }); } @@ -23,7 +21,4 @@ export class UmbInviteUserCollectionAction extends UmbCollectionActionBase