From a72ec1a14e535dc606e0e786a360d8cb1b2f97c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Sat, 2 Mar 2024 11:00:08 +0100 Subject: [PATCH] minor refactor --- .../controller/base-extensions-initializer.controller.ts | 7 ++----- .../extension-element-initializer.controller.ts | 8 +++++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts index 083e4ebbbd..0769bb67c5 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts @@ -7,6 +7,7 @@ import type { } from '@umbraco-cms/backoffice/extension-api'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { createObservablePart } from '@umbraco-cms/backoffice/observable-api'; export type PermittedControllerType = ControllerType & { manifest: Required>; @@ -62,7 +63,7 @@ export abstract class UmbBaseExtensionsInitializer< ? this.#extensionRegistry.byTypes(this.#type as string[]) : this.#extensionRegistry.byType(this.#type as ManifestTypeName); if (this.#filter) { - source = source.pipe(map((extensions: Array) => extensions.filter(this.#filter!))); + source = createObservablePart(source, (extensions: Array) => extensions.filter(this.#filter!)); } this.observe(source, this.#gotManifests, '_observeManifests') as any; } @@ -89,10 +90,6 @@ export abstract class UmbBaseExtensionsInitializer< return true; }); - // --------------------------------------------------------------- - // May change this into a Extensions Manager Controller??? - // --------------------------------------------------------------- - manifests.forEach((manifest) => { const existing = this._extensions.find((x) => x.alias === manifest.alias); if (!existing) { diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts index f9dfedb7fc..0ef62a2c24 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts @@ -1,6 +1,6 @@ import { createExtensionElement } from '../functions/create-extension-element.function.js'; import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; -import type { ManifestCondition, ManifestWithDynamicConditions } from '../types/index.js'; +import type { ManifestCondition, ManifestElement, ManifestWithDynamicConditions } from '../types/index.js'; import { UmbBaseExtensionInitializer } from './base-extension-initializer.controller.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -18,9 +18,11 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbExtensionElementInitializer< ManifestType extends ManifestWithDynamicConditions = ManifestWithDynamicConditions, ControllerType extends UmbExtensionElementInitializer = any, + ExtensionInterface extends ManifestElement = ManifestType extends ManifestElement ? ManifestType : never, + ExtensionElementInterface extends HTMLElement | undefined = ExtensionInterface['ELEMENT_TYPE'], > extends UmbBaseExtensionInitializer { #defaultElement?: string; - #component?: HTMLElement; + #component?: ExtensionElementInterface; /** * The component that is created for this extension. @@ -84,7 +86,7 @@ export class UmbExtensionElementInitializer< // We are not positive anymore, so we will back out of this creation. return false; } - this.#component = newComponent; + this.#component = newComponent as ExtensionElementInterface; if (this.#component) { this.#assignProperties(); (this.#component as any).manifest = manifest;