From b424143015627efafd00a9655f82fc8d757dbee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCrkan=20G=C3=BCran?= Date: Tue, 6 Jun 2023 15:10:34 +0200 Subject: [PATCH] Refresh activity picker on composite activity publish --- .../components/toolbox-activities.tsx | 5 ++++- .../src/services/activity-descriptor-manager.ts | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/designer/designer_packages/elsa-workflows-designer/src/modules/workflow-definitions/components/toolbox-activities.tsx b/src/designer/designer_packages/elsa-workflows-designer/src/modules/workflow-definitions/components/toolbox-activities.tsx index 046ec6e29..e5abca924 100644 --- a/src/designer/designer_packages/elsa-workflows-designer/src/modules/workflow-definitions/components/toolbox-activities.tsx +++ b/src/designer/designer_packages/elsa-workflows-designer/src/modules/workflow-definitions/components/toolbox-activities.tsx @@ -5,7 +5,7 @@ import uniqBy from 'lodash/uniqBy'; import {Container} from 'typedi'; import {ActivityDescriptor} from "../../../models"; import descriptorsStore from "../../../data/descriptors-store"; -import {ActivityDriverRegistry} from "../../../services"; +import {ActivityDescriptorManager, ActivityDriverRegistry} from "../../../services"; interface ActivityCategoryModel { category: string; @@ -38,6 +38,9 @@ export class ToolboxActivities { } componentWillLoad() { + const activityDescriptorManager = Container.get(ActivityDescriptorManager); + activityDescriptorManager.onActivityDescriptorsUpdated(this.buildModel); + this.buildModel(); } diff --git a/src/designer/designer_packages/elsa-workflows-designer/src/services/activity-descriptor-manager.ts b/src/designer/designer_packages/elsa-workflows-designer/src/services/activity-descriptor-manager.ts index d88b58897..f557862c6 100644 --- a/src/designer/designer_packages/elsa-workflows-designer/src/services/activity-descriptor-manager.ts +++ b/src/designer/designer_packages/elsa-workflows-designer/src/services/activity-descriptor-manager.ts @@ -2,17 +2,27 @@ import 'reflect-metadata'; import {Container, Service} from "typedi"; import descriptorsStore from "../data/descriptors-store"; import {ElsaClientProvider} from "./api-client/elsa-client"; +import { EventEmitter } from '@stencil/core'; @Service() export class ActivityDescriptorManager { private readonly elsaClientProvider: ElsaClientProvider; + private activityDescriptorsUpdatedCallback: (() => void) | null = null; constructor() { this.elsaClientProvider = Container.get(ElsaClientProvider); } + onActivityDescriptorsUpdated(callback: () => void) { + this.activityDescriptorsUpdatedCallback = callback; + } + async refresh(): Promise { const elsaClient = await this.elsaClientProvider.getElsaClient(); descriptorsStore.activityDescriptors = await elsaClient.descriptors.activities.list(); + + if (this.activityDescriptorsUpdatedCallback) { + this.activityDescriptorsUpdatedCallback(); + } } }