add collection alias condition

This commit is contained in:
Mads Rasmussen
2023-11-20 17:05:34 +01:00
parent faa02bb07b
commit f418c99fa1
2 changed files with 44 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
import { UMB_COLLECTION_CONTEXT } from './collection.context.js';
import { UmbBaseController } from '@umbraco-cms/backoffice/controller-api';
import {
ManifestCondition,
UmbConditionConfigBase,
UmbConditionControllerArguments,
UmbExtensionCondition,
} from '@umbraco-cms/backoffice/extension-api';
export class UmbCollectionAliasCondition extends UmbBaseController implements UmbExtensionCondition {
config: CollectionAliasConditionConfig;
permitted = false;
#onChange: () => void;
constructor(args: UmbConditionControllerArguments<CollectionAliasConditionConfig>) {
super(args.host);
this.config = args.config;
this.#onChange = args.onChange;
this.consumeContext(UMB_COLLECTION_CONTEXT, (context) => {
this.permitted = context.getAlias() === this.config.match;
this.#onChange();
});
}
}
export type CollectionAliasConditionConfig = UmbConditionConfigBase<'Umb.Condition.CollectionAlias'> & {
/**
* The collection that this extension should be available in
*
* @example
* "Umb.Collection.User"
*/
match: string;
};
export const UMB_COLLECTION_ALIAS_CONDITION = 'Umb.Condition.CollectionAlias';
export const manifest: ManifestCondition = {
type: 'condition',
name: 'Collection Alias Condition',
alias: 'Umb.Condition.CollectionAlias',
api: UmbCollectionAliasCondition,
};

View File

@@ -7,3 +7,5 @@ export * from './components/index.js';
export * from './collection.context.js';
export * from './collection-filter-model.interface.js';
export { type CollectionEntityTypeConditionConfig } from './collection-entity-type.condition.js';
export { UMB_COLLECTION_ALIAS_CONDITION } from './collection-alias.condition.js';