Wired up the DynamicRoot manifests with the modals

This reduces extra calls to the `umbExtensionsRegistry` to re-get the manifests.
This commit is contained in:
leekelleher
2024-03-12 16:46:18 +00:00
parent 82f9f5c3c8
commit f66903dc59
3 changed files with 22 additions and 17 deletions

View File

@@ -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];

View File

@@ -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<UmbDynamicRootOriginModalData> {
@state()
private _origins: Array<ManifestDynamicRootOrigin> = [];
@@ -16,10 +16,14 @@ export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseEle
super();
this.#documentPickerContext.max = 1;
}
this.observe(umbExtensionsRegistry.byType('dynamicRootOrigin'), (origins: Array<ManifestDynamicRootOrigin>) => {
this._origins = origins;
});
connectedCallback() {
super.connectedCallback();
if (this.data) {
this._origins = this.data.items;
}
}
#choose(item: ManifestDynamicRootOrigin) {

View File

@@ -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<UmbDynamicRootQueryStepModalData> {
@state()
private _querySteps: Array<ManifestDynamicRootQueryStep> = [];
#documentTypePickerContext = new UmbDocumentTypePickerContext(this);
constructor() {
super();
connectedCallback() {
super.connectedCallback();
this.observe(
umbExtensionsRegistry.byType('dynamicRootQueryStep'),
(querySteps: Array<ManifestDynamicRootQueryStep>) => {
this._querySteps = querySteps;
},
);
if (this.data) {
this._querySteps = this.data.items;
}
}
#choose(item: ManifestDynamicRootQueryStep) {