From 68675b685aa07bdf22c0846017d8e21538bdbbf1 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 10 Mar 2021 20:01:20 +0100 Subject: [PATCH] Fix that icon components are reused --- .../src/components/icons/activity-icon.tsx | 2 +- .../src/components/icons/break-icon.tsx | 2 +- .../src/components/icons/cog-icon.tsx | 2 +- .../src/components/icons/if-icon.tsx | 2 +- .../src/components/icons/loop-icon.tsx | 2 +- .../src/plugins/run-javascript-plugin.tsx | 4 + .../src/services/activity-icon-provider.tsx | 73 ++++++++++--------- 7 files changed, 48 insertions(+), 39 deletions(-) diff --git a/src/designer/elsa-workflows-studio/src/components/icons/activity-icon.tsx b/src/designer/elsa-workflows-studio/src/components/icons/activity-icon.tsx index 7992e8f52..614a5c7bd 100644 --- a/src/designer/elsa-workflows-studio/src/components/icons/activity-icon.tsx +++ b/src/designer/elsa-workflows-studio/src/components/icons/activity-icon.tsx @@ -2,7 +2,7 @@ export const ActivityIcon = props => ( - + diff --git a/src/designer/elsa-workflows-studio/src/components/icons/break-icon.tsx b/src/designer/elsa-workflows-studio/src/components/icons/break-icon.tsx index 9b3829777..6c919e7e2 100644 --- a/src/designer/elsa-workflows-studio/src/components/icons/break-icon.tsx +++ b/src/designer/elsa-workflows-studio/src/components/icons/break-icon.tsx @@ -2,7 +2,7 @@ export const BreakIcon = props => ( - + diff --git a/src/designer/elsa-workflows-studio/src/components/icons/cog-icon.tsx b/src/designer/elsa-workflows-studio/src/components/icons/cog-icon.tsx index 6d06e41d8..98ba54704 100644 --- a/src/designer/elsa-workflows-studio/src/components/icons/cog-icon.tsx +++ b/src/designer/elsa-workflows-studio/src/components/icons/cog-icon.tsx @@ -2,7 +2,7 @@ export const CogIcon = props => ( - + diff --git a/src/designer/elsa-workflows-studio/src/components/icons/if-icon.tsx b/src/designer/elsa-workflows-studio/src/components/icons/if-icon.tsx index b3d132ce3..b28fd40b5 100644 --- a/src/designer/elsa-workflows-studio/src/components/icons/if-icon.tsx +++ b/src/designer/elsa-workflows-studio/src/components/icons/if-icon.tsx @@ -2,7 +2,7 @@ export const IfIcon = props => ( - + diff --git a/src/designer/elsa-workflows-studio/src/components/icons/loop-icon.tsx b/src/designer/elsa-workflows-studio/src/components/icons/loop-icon.tsx index 962dadc10..e7726c994 100644 --- a/src/designer/elsa-workflows-studio/src/components/icons/loop-icon.tsx +++ b/src/designer/elsa-workflows-studio/src/components/icons/loop-icon.tsx @@ -2,7 +2,7 @@ export const LoopIcon = props => ( - + diff --git a/src/designer/elsa-workflows-studio/src/plugins/run-javascript-plugin.tsx b/src/designer/elsa-workflows-studio/src/plugins/run-javascript-plugin.tsx index 5a57da322..7a3540257 100644 --- a/src/designer/elsa-workflows-studio/src/plugins/run-javascript-plugin.tsx +++ b/src/designer/elsa-workflows-studio/src/plugins/run-javascript-plugin.tsx @@ -19,6 +19,10 @@ export class RunJavascriptPlugin implements ElsaPlugin { const outcomes = props.find(x => x.name == 'Outcomes') || { expression: '' }; const expression = outcomes.expression; context.outcomes = parseJson(expression) || ['Done']; + + if(context.outcomes.length == 0) + context.outcomes = ['Done']; + context.bodyDisplay = undefined; } } diff --git a/src/designer/elsa-workflows-studio/src/services/activity-icon-provider.tsx b/src/designer/elsa-workflows-studio/src/services/activity-icon-provider.tsx index 8a86b1868..65f645c68 100644 --- a/src/designer/elsa-workflows-studio/src/services/activity-icon-provider.tsx +++ b/src/designer/elsa-workflows-studio/src/services/activity-icon-provider.tsx @@ -25,46 +25,51 @@ import {InterruptTriggerIcon} from "../components/icons/interrupt-trigger-icon"; import {CorrelateIcon} from "../components/icons/correlate-icon"; export class ActivityIconProvider { - map: Map = { - 'If': , - 'Fork': , - 'Join': , - 'For': , - 'ForEach': , - 'While': , - 'ParallelForEach': , - 'Break': , - 'Switch': , - 'SetVariable': , - 'SetTransientVariable': , - 'SetContextId': , - 'Correlate': , - 'SetName': , - 'RunWorkflow': , - 'Timer': , - 'StartAt': , - 'Cron': , - 'ClearTimer': , - 'SendSignal': , - 'SignalReceived': , - 'Finish': , - 'InterruptTrigger': , - 'RunJavaScript': , - 'ReadLine': , - 'WriteLine': , - 'HttpEndpoint': , - 'SendHttpRequest': , - 'WriteHttpResponse': , - 'Redirect': , - 'SendEmail': + map: Map<() => any> = { + 'If': () => , + 'Fork': () => , + 'Join': () => , + 'For': () => , + 'ForEach': () => , + 'While': () => , + 'ParallelForEach': () => , + 'Break': () => , + 'Switch': () => , + 'SetVariable': () => , + 'SetTransientVariable': () => , + 'SetContextId': () => , + 'Correlate': () => , + 'SetName': () => , + 'RunWorkflow': () => , + 'Timer': () => , + 'StartAt': () => , + 'Cron': () => , + 'ClearTimer': () => , + 'SendSignal': () => , + 'SignalReceived': () => , + 'Finish': () => , + 'InterruptTrigger': () => , + 'RunJavaScript': () => , + 'ReadLine': () => , + 'WriteLine': () => , + 'HttpEndpoint': () => , + 'SendHttpRequest': () => , + 'WriteHttpResponse': () => , + 'Redirect': () => , + 'SendEmail': () => }; - register(activityType: string, icon: any) { + register(activityType: string, icon: () => any) { this.map[activityType] = icon; } getIcon(activityType: string): any { - return this.map[activityType]; + const provider = this.map[activityType]; + + if(!provider) + return undefined; + + return provider(); } }