From ffb68078129fde25d32476596b2a349e938d9c24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 3 Jan 2024 16:27:01 +0100 Subject: [PATCH] make structure manager a controller --- .../content-type-structure-manager.class.ts | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index f0264bf11a..daa038d856 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -1,21 +1,21 @@ import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { +import type { DocumentTypePropertyTypeResponseModel, PropertyTypeContainerModelBaseModel, PropertyTypeModelBaseModel, DocumentTypeResponseModel, } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHostElement, UmbController } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost, type UmbController } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, - UmbObserverController, MappingFunction, partialUpdateFrozenArray, appendToFrozenArray, filterFrozenArray, } from '@umbraco-cms/backoffice/observable-api'; import { incrementString } from '@umbraco-cms/backoffice/utils'; +import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; export type PropertyContainerTypes = 'Group' | 'Tab'; @@ -23,8 +23,9 @@ type T = DocumentTypeResponseModel; // TODO: get this type from the repository, or use some generic type. // TODO: Make this a controller on its own: -export class UmbContentTypePropertyStructureManager = UmbDetailRepository> { - #host: UmbControllerHostElement; +export class UmbContentTypePropertyStructureManager< + R extends UmbDetailRepository = UmbDetailRepository, +> extends UmbBaseController { #init!: Promise; #contentTypeRepository: R; @@ -40,16 +41,16 @@ export class UmbContentTypePropertyStructureManager = new UmbArrayState([], (x) => x.id); - constructor(host: UmbControllerHostElement, typeRepository: R) { - this.#host = host; + constructor(host: UmbControllerHost, typeRepository: R) { + super(host); this.#contentTypeRepository = typeRepository; - new UmbObserverController(host, this.contentTypes, (contentTypes) => { + this.observe(this.contentTypes, (contentTypes) => { contentTypes.forEach((contentType) => { this._loadContentTypeCompositions(contentType); }); }); - new UmbObserverController(host, this._contentTypeContainers, (contentTypeContainers) => { + this.observe(this._contentTypeContainers, (contentTypeContainers) => { this.#containers.next(contentTypeContainers); }); } @@ -128,7 +129,7 @@ export class UmbContentTypePropertyStructureManager { + this.observe(await this.#contentTypeRepository.byId(data.id), (docType) => { if (docType) { // TODO: Handle if there was changes made to the owner document type in this context. /*