From f66903dc59c71aa8ef9983056f3713d8659cbae3 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 12 Mar 2024 16:46:18 +0000 Subject: [PATCH] Wired up the DynamicRoot manifests with the modals This reduces extra calls to the `umbExtensionsRegistry` to re-get the manifests. --- .../input-document-root-picker.element.ts | 8 ++++++-- .../dynamic-root-origin-picker-modal.element.ts | 14 +++++++++----- ...amic-root-query-step-picker-modal.element.ts | 17 +++++++---------- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-root-picker/input-document-root-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-root-picker/input-document-root-picker.element.ts index 7c635c2a29..d8b2b46b98 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-root-picker/input-document-root-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-root-picker/input-document-root-picker.element.ts @@ -87,7 +87,9 @@ export class UmbInputDocumentRootPickerElement extends FormControlMixin(UmbLitEl }); #openDynamicRootOriginPicker() { - this.#openModal = this.#modalContext?.open(this, UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, {}); + this.#openModal = this.#modalContext?.open(this, UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, { + data: { items: this._originManifests }, + }); this.#openModal?.onSubmit().then((data: UmbTreePickerDynamicRoot) => { const existingData = { ...this.data }; existingData.originKey = undefined; @@ -98,7 +100,9 @@ export class UmbInputDocumentRootPickerElement extends FormControlMixin(UmbLitEl } #openDynamicRootQueryStepPicker() { - this.#openModal = this.#modalContext?.open(this, UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, {}); + this.#openModal = this.#modalContext?.open(this, UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, { + data: { items: this._queryStepManifests }, + }); this.#openModal?.onSubmit().then((step) => { if (this.data) { const querySteps = [...(this.data.querySteps ?? []), step]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts index 156a2dcc6d..c641283f66 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts @@ -1,12 +1,12 @@ import { UmbDocumentPickerContext } from '../../documents/documents/components/input-document/input-document.context.js'; +import type { UmbDynamicRootOriginModalData } from './index.js'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { css, html, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import type { ManifestDynamicRootOrigin } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbTreePickerDynamicRoot } from '@umbraco-cms/backoffice/components'; @customElement('umb-dynamic-root-origin-picker-modal') -export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseElement { +export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseElement { @state() private _origins: Array = []; @@ -16,10 +16,14 @@ export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseEle super(); this.#documentPickerContext.max = 1; + } - this.observe(umbExtensionsRegistry.byType('dynamicRootOrigin'), (origins: Array) => { - this._origins = origins; - }); + connectedCallback() { + super.connectedCallback(); + + if (this.data) { + this._origins = this.data.items; + } } #choose(item: ManifestDynamicRootOrigin) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts index f322d47a7a..9eee8c8d58 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts @@ -1,28 +1,25 @@ import { UmbDocumentTypePickerContext } from '../../documents/document-types/components/input-document-type/input-document-type.context.js'; +import type { UmbDynamicRootQueryStepModalData } from './index.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; import type { ManifestDynamicRootQueryStep } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-dynamic-root-query-step-picker-modal') -export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBaseElement { +export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBaseElement { @state() private _querySteps: Array = []; #documentTypePickerContext = new UmbDocumentTypePickerContext(this); - constructor() { - super(); + connectedCallback() { + super.connectedCallback(); - this.observe( - umbExtensionsRegistry.byType('dynamicRootQueryStep'), - (querySteps: Array) => { - this._querySteps = querySteps; - }, - ); + if (this.data) { + this._querySteps = this.data.items; + } } #choose(item: ManifestDynamicRootQueryStep) {