add collection alias condition
This commit is contained in:
@@ -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,
|
||||
};
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user