From 3840b36418f4237c384e905058dc2273389b5725 Mon Sep 17 00:00:00 2001 From: Deepika Mahindroo Date: Fri, 1 Mar 2024 15:44:11 +0530 Subject: [PATCH] fix(core): fix retain else block fix retain else block on edit button GH-71 --- .../src/lib/builder/builder.component.ts | 35 +++++++++++++------ projects/workflows-element/package.json | 3 +- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/projects/workflows-creator/src/lib/builder/builder.component.ts b/projects/workflows-creator/src/lib/builder/builder.component.ts index 7240cba..58978f5 100644 --- a/projects/workflows-creator/src/lib/builder/builder.component.ts +++ b/projects/workflows-creator/src/lib/builder/builder.component.ts @@ -202,8 +202,31 @@ export class BuilderComponent implements OnInit, OnChanges { }); }); this.updateDiagram(); + this.hideElseBlockIfRequired(); } } + /** + * This function checks if the else block should be hidden based on the type and number of events in + * the event group. + */ + hideElseBlockIfRequired() { + const events = this.eventGroups[0].children; + let value = events[0].node.state.get('value'); + if (typeof value === 'object') { + value = value.value; + } + if (events.length !== 1) { + this.elseBlockHidden = false; + } else { + this.elseBlockHidden = + events[0].node.getIdentifier() === EventTypes.OnIntervalEvent || + events[0].node.getIdentifier() === EventTypes.OnAddItemEvent || + (events[0].node.getIdentifier() === EventTypes.OnChangeEvent && + (value === ValueTypes.AnyValue || + events[0].node.state.get('valueType') === ValueTypes.AnyValue)); + } + } + /** * If the group is an event, add it to the eventGroups array, otherwise if it's an action, add it to * the actionGroups array @@ -273,6 +296,7 @@ export class BuilderComponent implements OnInit, OnChanges { }); this.updateDiagram(); this.updateState(action.node, action.newNode.inputs); + this.hideElseBlockIfRequired(); } /** * The function is called when an item is changed in the UI. It emits an event to the parent @@ -286,16 +310,7 @@ export class BuilderComponent implements OnInit, OnChanges { item: item.element.node, }); this.updateState(item.element.node, item.element.inputs); - // TODO: to be refactored - // to hide else block when anything is selected in ValueInput or ValueTypeInput - this.elseBlockHidden = - this.eventGroups[0].children?.length === 1 && - this.eventGroups[0].children[0].node.getIdentifier() === - EventTypes.OnChangeEvent && - (this.eventGroups[0].children[0].node.state.get('value') === - ValueTypes.AnyValue || - this.eventGroups[0].children[0].node.state.get('valueType') === - ValueTypes.AnyValue); + this.hideElseBlockIfRequired(); this.updateDiagram(); } /** diff --git a/projects/workflows-element/package.json b/projects/workflows-element/package.json index 9253753..dce028b 100644 --- a/projects/workflows-element/package.json +++ b/projects/workflows-element/package.json @@ -17,6 +17,5 @@ "access": "public", "directory": "dist" }, - "hash": "52e16f7339ae099b920d5eba85c8551b9ac2178d0fdb8c34eb6eb6de8aa96685" - + "hash": "853bef78b9dcd9c176ad24ff687b712172ea5c2f610b41b15ee24ba65309c129" } \ No newline at end of file