feat(editor): Add support for configurable configuration nodes in new canvas (no-changelog) (#9991)

This commit is contained in:
Alex Grozav
2024-07-10 17:51:18 +03:00
committed by GitHub
parent d2ca8b4b42
commit a45899765c
17 changed files with 318 additions and 457 deletions

View File

@@ -44,21 +44,18 @@ export function useCanvasMapping({
const renderTypeByNodeType = computed(
() =>
workflow.value.nodes.reduce<Record<string, CanvasElementData['renderType']>>((acc, node) => {
let renderType: CanvasElementData['renderType'] = 'default';
switch (true) {
case nodeTypesStore.isTriggerNode(node.type):
renderType = 'trigger';
break;
case nodeTypesStore.isConfigNode(workflowObject.value, node, node.type):
renderType = 'configuration';
break;
case nodeTypesStore.isConfigurableNode(workflowObject.value, node, node.type):
renderType = 'configurable';
break;
}
workflow.value.nodes.reduce<Record<string, CanvasElementData['render']>>((acc, node) => {
// @TODO Add support for sticky notes here
acc[node.type] = {
type: 'default',
options: {
trigger: nodeTypesStore.isTriggerNode(node.type),
configuration: nodeTypesStore.isConfigNode(workflowObject.value, node, node.type),
configurable: nodeTypesStore.isConfigurableNode(workflowObject.value, node, node.type),
},
};
acc[node.type] = renderType;
return acc;
}, {}) ?? {},
);
@@ -234,7 +231,7 @@ export function useCanvasMapping({
count: nodeExecutionRunDataById.value[node.id]?.length ?? 0,
visible: !!nodeExecutionRunDataById.value[node.id],
},
renderType: renderTypeByNodeType.value[node.type] ?? 'default',
render: renderTypeByNodeType.value[node.type] ?? { type: 'default', options: {} },
};
return {