fix: add condition check to node.canPerformAction

This commit is contained in:
青栀 2021-11-26 20:03:55 +08:00
parent a93fe0df71
commit 6fc61693ed

View File

@ -15,6 +15,7 @@ import {
NodeStatus,
CompositeValue,
GlobalEvent,
ComponentAction,
} from '@ali/lowcode-types';
import { compatStage } from '@ali/lowcode-utils';
import { SettingTopEntry } from '@ali/lowcode-designer';
@ -863,10 +864,17 @@ export class Node<Schema extends NodeSchema = NodeSchema> {
/**
* action
*/
canPerformAction(action: string): boolean {
canPerformAction(actionName: string): boolean {
const availableActions =
this.componentMeta?.availableActions?.map((action) => action.name) || [];
return availableActions.indexOf(action) >= 0;
this.componentMeta?.availableActions?.filter((action: ComponentAction) => {
const { condition } = action;
return typeof condition === 'function' ?
condition(this) !== false :
condition !== false;
})
.map((action: ComponentAction) => action.name) || [];
return availableActions.indexOf(actionName) >= 0;
}
// ======= compatible apis ====