Refresh activity picker on composite activity publish

This commit is contained in:
Gürkan Güran 2023-06-06 15:10:34 +02:00
parent 56a7df1d40
commit b424143015
2 changed files with 14 additions and 1 deletions

View file

@ -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();
}

View file

@ -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<void> {
const elsaClient = await this.elsaClientProvider.getElsaClient();
descriptorsStore.activityDescriptors = await elsaClient.descriptors.activities.list();
if (this.activityDescriptorsUpdatedCallback) {
this.activityDescriptorsUpdatedCallback();
}
}
}