diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/composition-picker/composition-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/composition-picker/composition-picker-modal.element.ts index 8a7ee4b324..97c15ff002 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/composition-picker/composition-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/composition-picker/composition-picker-modal.element.ts @@ -24,7 +24,7 @@ export class UmbCompositionPickerModalElement extends UmbModalBaseElement< > { // TODO: Loosen this from begin specific to Document Types, so we can have a general interface for composition repositories. [NL] #compositionRepository?: UmbDocumentTypeCompositionRepository; - #unique?: string; + #unique: string | null = null; #init?: Promise; @state() @@ -50,26 +50,24 @@ export class UmbCompositionPickerModalElement extends UmbModalBaseElement< this._selection = this.data?.selection ?? []; this.modalContext?.setValue({ selection: this._selection }); + const isNew = this.data!.isNew; + this.#unique = !isNew ? this.data!.unique : null; + this.#requestReference(); + this.#requestAvailableCompositions(); } async #requestReference() { await this.#init; - this.#unique = this.data?.unique; if (!this.#unique || !this.#compositionRepository) return; const { data } = await this.#compositionRepository.getReferences(this.#unique); - this._references = data ?? []; - - if (!this._references.length) { - this.#requestAvailableCompositions(); - } } async #requestAvailableCompositions() { await this.#init; - if (!this.#unique || !this.#compositionRepository) return; + if (!this.#compositionRepository) return; const isElement = this.data?.isElement; const currentPropertyAliases = this.data?.currentPropertyAliases; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/composition-picker/composition-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/composition-picker/composition-picker-modal.token.ts index 127dc22d24..ec4e047e50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/composition-picker/composition-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/modals/composition-picker/composition-picker-modal.token.ts @@ -4,10 +4,10 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbCompositionPickerModalData { compositionRepositoryAlias: string; selection: Array; - unique: string; - //Do we really need to send this to the server - Why isn't unique enough? + unique: string | null; isElement: boolean; currentPropertyAliases: Array; + isNew: boolean; } export interface UmbCompositionPickerModalValue { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts index 24c5caf40c..02fe49daab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts @@ -333,6 +333,7 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements selection: contentTypes.map((contentType) => contentType.unique).filter((id) => id !== unique), isElement: ownerContentType.isElement, currentPropertyAliases: [], + isNew: this.#workspaceContext.getIsNew()!, }; const modalManagerContext = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts index 7d3825ef1e..49f17aac41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts @@ -15,8 +15,7 @@ export type UmbDocumentTypeCleanupModel = { }; export interface UmbDocumentTypeCompositionRequestModel { - unique: string; - //Do we really need to send this to the server - Why isn't unique enough? + unique: string | null; isElement: boolean; currentPropertyAliases: Array; currentCompositeUniques: Array;