From f8a7a36bd313c194cc5ae85c10fb35b8d6f80f97 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 31 Oct 2024 15:41:11 +0100 Subject: [PATCH] pass args to api --- ...create-option-action-list-modal.element.ts | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts index 270bd46805..2bdc224261 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts @@ -6,7 +6,7 @@ import type { ManifestEntityCreateOptionAction } from '@umbraco-cms/backoffice/e import type { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { UmbExtensionsApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { html, customElement, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state, repeat, ifDefined, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; type ManifestType = ManifestEntityCreateOptionAction; @@ -26,18 +26,29 @@ export class UmbEntityCreateOptionActionListModalElement extends UmbModalBaseEle @state() _hrefList: Array = []; - constructor() { - super(); + @property({ attribute: false }) + public override set data(value: UmbEntityCreateOptionActionListModalData | undefined) { + super.data = value; + + if (value) { + this.#initApi(); + } + } + + #initApi() { + if (this._data?.entityType === undefined) throw new Error('No entityType found'); + if (this._data?.unique === undefined) throw new Error('No unique found'); new UmbExtensionsApiInitializer( this, umbExtensionsRegistry, 'entityCreateOptionAction', - [], + (manifest: ManifestType) => { + return [{ entityType: this._data!.entityType, unique: this._data!.unique, meta: manifest.meta }]; + }, undefined, async (controllers) => { this._apiControllers = controllers as unknown as Array>; - const hrefPromises = this._apiControllers.map((controller) => controller.api?.getHref()); this._hrefList = await Promise.all(hrefPromises); },