Make extension controller implementation bind the registry

This commit is contained in:
Niels Lyngsø
2023-07-27 16:51:02 +02:00
parent 9bd93c4f69
commit c50c6b8c75
3 changed files with 6 additions and 4 deletions

View File

@@ -4,8 +4,9 @@ import {
ManifestTypeMap,
SpecificManifestTypeOrManifestBase,
UmbBaseExtensionController,
UmbExtensionRegistry,
} from '@umbraco-cms/backoffice/extension-api';
import { ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
import { UmbBaseController, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
/**
@@ -22,6 +23,7 @@ export abstract class UmbBaseExtensionsController<
constructor(
host: UmbControllerHost,
extensionRegistry: UmbExtensionRegistry<ManifestType>,
type: ManifestTypeName,
filter: null | ((manifest: ManifestType) => boolean),
onChange: (permittedManifests: Array<PermittedControllerType>, controller: PermittedControllerType) => void
@@ -30,7 +32,7 @@ export abstract class UmbBaseExtensionsController<
this.#onChange = onChange;
// TODO: This could be optimized by just getting the aliases, well depends on the filter. (revisit one day to see how much filter is used)
let source = umbExtensionsRegistry?.extensionsOfType<ManifestTypeName, ManifestType>(type);
let source = extensionRegistry.extensionsOfType<ManifestTypeName, ManifestType>(type);
if (filter) {
source = source.pipe(map((extensions: Array<ManifestType>) => extensions.filter(filter)));
}

View File

@@ -24,7 +24,7 @@ export class UmbExtensionsElementController<
onChange: (permittedManifests: Array<ControllerType>, controller: ControllerType) => void,
defaultElement?: string
) {
super(host, type, filter, onChange);
super(host, umbExtensionsRegistry, type, filter, onChange);
this._defaultElement = defaultElement;
}

View File

@@ -24,7 +24,7 @@ export class UmbExtensionsManifestController<
filter: null | ((manifest: ManifestType) => boolean),
onChange: (permittedManifests: Array<PermittedControllerType>, controller: PermittedControllerType) => void
) {
super(host, type, filter, onChange);
super(host, umbExtensionsRegistry, type, filter, onChange);
}
protected _createController(manifest: ManifestType) {