refactor CollectionAction
This commit is contained in:
@@ -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<CollectionContextType = unknown> extends UmbApi {
|
||||
host: UmbControllerHost;
|
||||
collectionContext?: CollectionContextType;
|
||||
export interface UmbCollectionAction extends UmbApi {
|
||||
execute(): Promise<void>;
|
||||
}
|
||||
|
||||
export abstract class UmbCollectionActionBase<CollectionContextType extends UmbCollectionContext>
|
||||
implements UmbCollectionAction<CollectionContextType>
|
||||
{
|
||||
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<void>;
|
||||
}
|
||||
|
||||
@@ -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<UmbUserCollectionContext> {
|
||||
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<UmbUs
|
||||
const modalContext = this.#modalManagerContext?.open(UMB_CREATE_USER_MODAL);
|
||||
await modalContext?.onSubmit();
|
||||
}
|
||||
|
||||
// TODO: look into why this is needed to satisfy the manifest
|
||||
destroy() {}
|
||||
}
|
||||
|
||||
@@ -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_INVITE_USER_MODAL,
|
||||
@@ -8,13 +6,13 @@ import {
|
||||
UmbModalManagerContext,
|
||||
} from '@umbraco-cms/backoffice/modal';
|
||||
|
||||
export class UmbInviteUserCollectionAction extends UmbCollectionActionBase<UmbUserCollectionContext> {
|
||||
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<UmbUs
|
||||
const modalContext = this.#modalManagerContext?.open(UMB_INVITE_USER_MODAL);
|
||||
await modalContext?.onSubmit();
|
||||
}
|
||||
|
||||
// TODO: look into why this is needed to satisfy the manifest
|
||||
destroy() {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user