feat: Add sticky notes support to the new canvas (no-changelog) (#10031)

This commit is contained in:
Alex Grozav
2024-07-15 13:00:52 +03:00
committed by GitHub
parent 9302e33d55
commit cd24c71a9e
32 changed files with 653 additions and 147 deletions

View File

@@ -40,6 +40,7 @@ import type {
INodeTypeDescription,
INodeTypeNameVersion,
ITelemetryTrackProperties,
NodeParameterValueType,
} from 'n8n-workflow';
import { NodeConnectionType, NodeHelpers } from 'n8n-workflow';
import { useNDVStore } from '@/stores/ndv.store';
@@ -229,6 +230,21 @@ export function useCanvasOperations({
ndvStore.activeNodeName = name;
}
function setNodeParameters(id: string, parameters: Record<string, unknown>) {
const node = workflowsStore.getNodeById(id);
if (!node) {
return;
}
workflowsStore.setNodeParameters(
{
name: node.name,
value: parameters as NodeParameterValueType,
},
true,
);
}
function setNodeSelected(id?: string) {
if (!id) {
uiStore.lastSelectedNode = '';
@@ -443,7 +459,7 @@ export function useCanvasOperations({
const nodeType = nodeTypesStore.getNodeType(newNodeData.type, newNodeData.typeVersion);
const nodeParameters = NodeHelpers.getNodeParameters(
nodeType?.properties ?? [],
{},
node.parameters ?? {},
true,
false,
newNodeData,
@@ -883,10 +899,16 @@ export function useCanvasOperations({
targetNode: INodeUi,
connectionType: NodeConnectionType,
): boolean {
const blocklist = [STICKY_NODE_TYPE];
if (sourceNode.id === targetNode.id) {
return false;
}
if (blocklist.includes(sourceNode.type) || blocklist.includes(targetNode.type)) {
return false;
}
const targetNodeType = nodeTypesStore.getNodeType(targetNode.type, targetNode.typeVersion);
if (targetNodeType?.inputs?.length) {
const workflowNode = editableWorkflowObject.value.getNode(targetNode.name);
@@ -958,6 +980,7 @@ export function useCanvasOperations({
setNodeActive,
setNodeActiveByName,
setNodeSelected,
setNodeParameters,
toggleNodeDisabled,
renameNode,
revertRenameNode,