Warren Buckley
04/08/2024, 3:45 PMWarren Buckley
04/08/2024, 3:48 PMObject literal may only specify known properties, and 'hasTemplateSet' does not exist in type 'UmbConditionConfigBase<string>'.
https://cdn.discordapp.com/attachments/1226920983437250570/1226921496383979532/image.png?ex=662686af&is=661411af&hm=8a5304adc397a7634e7c33a2617dcd327551ac586ee57fb3eacddafd31f0f647&Warren Buckley
04/08/2024, 3:49 PMWarren Buckley
04/08/2024, 3:50 PMtypescript
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbConditionConfigBase, UmbConditionControllerArguments, UmbExtensionCondition } from "@umbraco-cms/backoffice/extension-api";
import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/document';
import { UmbConditionBase } from '@umbraco-cms/backoffice/extension-registry';
export type TemplateSetConditionConfig = UmbConditionConfigBase<'AccessibilityReporter.Condition.TemplateSet'> & {
/**
* HasTemplateSet
* Decide if the current document should have a template set or not
*
* @example
* true
*/
hasTemplateSet: boolean;
};
export class TemplateSetCondition extends UmbConditionBase<TemplateSetConditionConfig> implements UmbExtensionCondition
{
config: TemplateSetConditionConfig;
constructor(host: UmbControllerHost, args: UmbConditionControllerArguments<TemplateSetConditionConfig>) {
super(host, args);
this.consumeContext(UMB_DOCUMENT_WORKSPACE_CONTEXT , (workspaceCtx) => {
this.observe(workspaceCtx.templateId, (templateId) => {
console.log('templateId', templateId);
// No template set === null
// Tempate set we get a GUID back
// Config says it passes if template IS set (aka NOT null)
if(this.config.hasTemplateSet && templateId !== null) {
this.permitted = true;
return;
}
// Config says it passes if template is NOT set (aka IS null)
if(this.config.hasTemplateSet === false && templateId === null) {
this.permitted = true;
return;
}
this.permitted = false;
})
});
}
}
Warren Buckley
04/08/2024, 3:56 PMmatch
So question is, am I doing something that can't be done, or have I coded something wrong ?!Warren Buckley
04/08/2024, 4:06 PMas
typescript
conditions: [
{
alias: 'Umb.Condition.WorkspaceAlias',
match: 'Umb.Workspace.Document',
},
{
alias: 'AccessibilityReporter.Condition.TemplateSet',
hasTemplateSet: true
} as TemplateSetConditionConfig
],
Warren Buckley
04/08/2024, 4:12 PMJacob Overgaard
04/09/2024, 3:38 PMas
syntax looks correct, since we dont know the custom properties your condition holdsJacob Overgaard
04/09/2024, 3:38 PMWarren Buckley
04/09/2024, 3:41 PMWarren Buckley
04/09/2024, 3:41 PMJacob Overgaard
04/09/2024, 3:42 PMJacob Overgaard
04/09/2024, 3:42 PMWarren Buckley
04/09/2024, 3:42 PMWarren Buckley
04/09/2024, 3:43 PMJacob Overgaard
04/09/2024, 3:43 PMJacob Overgaard
04/09/2024, 3:43 PMWarren Buckley
04/09/2024, 3:43 PMWarren Buckley
04/09/2024, 3:44 PMWarren Buckley
04/09/2024, 4:03 PMJacob Overgaard
04/10/2024, 7:11 AMWarren Buckley
04/10/2024, 7:18 AMJacob Overgaard
04/10/2024, 7:24 AMJacob Overgaard
04/10/2024, 7:24 AMWarren Buckley
04/12/2024, 3:27 PMUmbStoreBase
There is also UmbItemStoreBase
But the docs don't depend on anything
https://docs.umbraco.com/umbraco-cms/v/14.latest-beta/extending-backoffice/extension-types/storeWarren Buckley
04/12/2024, 3:45 PMJacob Overgaard
04/15/2024, 7:03 AMJacob Overgaard
04/15/2024, 7:03 AM