From d125875a1ddd91999223771549da4d5345dcdc8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 4 Jul 2024 20:28:03 +0200 Subject: [PATCH] only observe ownerContentTypeUnique --- .../content-type-structure-manager.class.ts | 1 + ...t-type-design-editor-properties.element.ts | 25 ++++++++----------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-manager.class.ts index a3fb2ab799..83cf4cad2b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-manager.class.ts @@ -43,6 +43,7 @@ export class UmbContentTypeStructureManager< readonly ownerContentType = this.#contentTypes.asObservablePart((x) => x.find((y) => y.unique === this.#ownerContentTypeUnique), ); + private readonly _contentTypeContainers = this.#contentTypes.asObservablePart((x) => x.flatMap((x) => x.containers ?? []), ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor-properties.element.ts index 3064d46d44..651c09200e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/content-type-design-editor-properties.element.ts @@ -119,7 +119,7 @@ export class UmbContentTypeDesignEditorPropertiesElement extends UmbLitElement { private _propertyStructure: Array = []; @state() - private _ownerContentType?: UmbContentTypeModel; + private _ownerContentTypeUnique?: string; @state() private _newPropertyPath?: string; @@ -153,14 +153,8 @@ export class UmbContentTypeDesignEditorPropertiesElement extends UmbLitElement { this.consumeContext(UMB_CONTENT_TYPE_WORKSPACE_CONTEXT, async (workspaceContext) => { this.#propertyStructureHelper.setStructureManager(workspaceContext.structure); - this.observe( - workspaceContext.structure.ownerContentType, - (contentType) => { - this._ownerContentType = contentType; - this.createPropertyTypeWorkspaceRoutes(); - }, - 'observeOwnerContentType', - ); + this._ownerContentTypeUnique = workspaceContext.structure.getOwnerContentTypeUnique(); + this.createPropertyTypeWorkspaceRoutes(); }); this.observe(this.#propertyStructureHelper.propertyStructure, (propertyStructure) => { this._propertyStructure = propertyStructure; @@ -169,7 +163,8 @@ export class UmbContentTypeDesignEditorPropertiesElement extends UmbLitElement { } createPropertyTypeWorkspaceRoutes() { - if (!this._ownerContentType || this._containerId === undefined) return; + if (!this._ownerContentTypeUnique || this._containerId === undefined) return; + // Note: Route for adding a new property this.#addPropertyModal?.destroy(); this.#addPropertyModal = new UmbModalRouteRegistrationController( @@ -181,7 +176,7 @@ export class UmbContentTypeDesignEditorPropertiesElement extends UmbLitElement { .addAdditionalPath('add-property/:sortOrder') .onSetup(async (params) => { // TODO: Make a onInit promise, that can be awaited here. - if (!this._ownerContentType || this._containerId === undefined) return false; + if (!this._ownerContentTypeUnique || this._containerId === undefined) return false; const preset: Partial = {}; if (params.sortOrder !== undefined) { @@ -192,7 +187,7 @@ export class UmbContentTypeDesignEditorPropertiesElement extends UmbLitElement { } preset.sortOrder = sortOrderInt; } - return { data: { contentTypeUnique: this._ownerContentType.unique, preset: undefined } }; + return { data: { contentTypeUnique: this._ownerContentTypeUnique, preset: undefined } }; }) .observeRouteBuilder((routeBuilder) => { this._newPropertyPath = @@ -217,8 +212,8 @@ export class UmbContentTypeDesignEditorPropertiesElement extends UmbLitElement { .addUniquePaths(['container-id']) .addAdditionalPath('edit-property') .onSetup(async () => { - if (!this._ownerContentType || this._containerId === undefined) return false; - return { data: { contentTypeUnique: this._ownerContentType.unique, preset: undefined } }; + if (!this._ownerContentTypeUnique || this._containerId === undefined) return false; + return { data: { contentTypeUnique: this._ownerContentTypeUnique, preset: undefined } }; }) .observeRouteBuilder((routeBuilder) => { this._editPropertyTypePath = routeBuilder(null); @@ -232,7 +227,7 @@ export class UmbContentTypeDesignEditorPropertiesElement extends UmbLitElement { } override render() { - return this._ownerContentType + return this._ownerContentTypeUnique ? html`
${repeat(