From 89f4c71acc41c5715f60accb609224622a671122 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Sat, 24 Jan 2026 10:51:12 -0800 Subject: [PATCH] remove UI level checks --- .../[workspaceId]/w/[workflowId]/workflow.tsx | 36 ------------------- .../workspace/providers/socket-provider.tsx | 2 +- apps/sim/stores/workflows/workflow/store.ts | 14 +------- 3 files changed, 2 insertions(+), 50 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/workflow.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/workflow.tsx index 7c42fd4b1..e67a6fe4a 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/workflow.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/workflow.tsx @@ -61,7 +61,6 @@ import { } from '@/app/workspace/[workspaceId]/w/[workflowId]/utils' import { useSocket } from '@/app/workspace/providers/socket-provider' import { getBlock } from '@/blocks' -import { isAnnotationOnlyBlock } from '@/executor/constants' import { useWorkspaceEnvironment } from '@/hooks/queries/environment' import { useAutoConnect, useSnapToGridSize } from '@/hooks/queries/general-settings' import { useCanvasViewport } from '@/hooks/use-canvas-viewport' @@ -1100,7 +1099,6 @@ const WorkflowContent = React.memo(() => { const isAutoConnectSourceCandidate = useCallback((block: BlockState): boolean => { if (!block.enabled) return false if (block.type === 'response') return false - if (isAnnotationOnlyBlock(block.type)) return false return true }, []) @@ -1248,8 +1246,6 @@ const WorkflowContent = React.memo(() => { position: { x: number; y: number }, targetBlockId: string, options: { - blockType: string - enableTriggerMode?: boolean targetParentId?: string | null existingChildBlocks?: { id: string; type: string; position: { x: number; y: number } }[] containerId?: string @@ -1257,17 +1253,6 @@ const WorkflowContent = React.memo(() => { ): Edge | undefined => { if (!autoConnectRef.current) return undefined - // Don't auto-connect starter or annotation-only blocks - if (options.blockType === 'starter' || isAnnotationOnlyBlock(options.blockType)) { - return undefined - } - - // Check if target is a trigger block - const targetBlockConfig = getBlock(options.blockType) - const isTargetTrigger = - options.enableTriggerMode || targetBlockConfig?.category === 'triggers' - if (isTargetTrigger) return undefined - // Case 1: Adding block inside a container with existing children if (options.existingChildBlocks && options.existingChildBlocks.length > 0) { const closestBlock = findClosestBlockInSet(options.existingChildBlocks, position) @@ -1375,7 +1360,6 @@ const WorkflowContent = React.memo(() => { const name = getUniqueBlockName(baseName, blocks) const autoConnectEdge = tryCreateAutoConnectEdge(position, id, { - blockType: data.type, targetParentId: null, }) @@ -1446,8 +1430,6 @@ const WorkflowContent = React.memo(() => { .map((b) => ({ id: b.id, type: b.type, position: b.position })) const autoConnectEdge = tryCreateAutoConnectEdge(relativePosition, id, { - blockType: data.type, - enableTriggerMode: data.enableTriggerMode, targetParentId: containerInfo.loopId, existingChildBlocks, containerId: containerInfo.loopId, @@ -1476,8 +1458,6 @@ const WorkflowContent = React.memo(() => { if (checkTriggerConstraints(data.type)) return const autoConnectEdge = tryCreateAutoConnectEdge(position, id, { - blockType: data.type, - enableTriggerMode: data.enableTriggerMode, targetParentId: null, }) @@ -1533,7 +1513,6 @@ const WorkflowContent = React.memo(() => { const name = getUniqueBlockName(baseName, blocks) const autoConnectEdge = tryCreateAutoConnectEdge(basePosition, id, { - blockType: type, targetParentId: null, }) @@ -1569,8 +1548,6 @@ const WorkflowContent = React.memo(() => { const name = getUniqueBlockName(baseName, blocks) const autoConnectEdge = tryCreateAutoConnectEdge(basePosition, id, { - blockType: type, - enableTriggerMode, targetParentId: null, }) @@ -2371,18 +2348,6 @@ const WorkflowContent = React.memo(() => { if (!sourceNode || !targetNode) return - if ( - isAnnotationOnlyBlock(sourceNode.data?.type) || - isAnnotationOnlyBlock(targetNode.data?.type) - ) { - return - } - - const targetBlock = blocks[targetNode.id] - if (targetBlock && TriggerUtils.isTriggerBlock(targetBlock)) { - return - } - // Get parent information (handle container start node case) const sourceParentId = blocks[sourceNode.id]?.data?.parentId || @@ -2788,7 +2753,6 @@ const WorkflowContent = React.memo(() => { .map((b) => ({ id: b.id, type: b.type, position: b.position })) const autoConnectEdge = tryCreateAutoConnectEdge(relativePositionBefore, node.id, { - blockType: node.data?.type || '', targetParentId: potentialParentId, existingChildBlocks, containerId: potentialParentId, diff --git a/apps/sim/app/workspace/providers/socket-provider.tsx b/apps/sim/app/workspace/providers/socket-provider.tsx index c4753b384..4e18d14b1 100644 --- a/apps/sim/app/workspace/providers/socket-provider.tsx +++ b/apps/sim/app/workspace/providers/socket-provider.tsx @@ -352,7 +352,7 @@ export function SocketProvider({ children, user }: SocketProviderProps) { }) }) - useWorkflowStore.setState({ + useWorkflowStore.getState().replaceWorkflowState({ blocks: workflowState.blocks || {}, edges: workflowState.edges || [], loops: workflowState.loops || {}, diff --git a/apps/sim/stores/workflows/workflow/store.ts b/apps/sim/stores/workflows/workflow/store.ts index 12215fe3d..763fd7a4a 100644 --- a/apps/sim/stores/workflows/workflow/store.ts +++ b/apps/sim/stores/workflows/workflow/store.ts @@ -108,19 +108,7 @@ function filterValidEdges( edges: Edge[], blocks: Record ): Edge[] { - return edges.filter((edge) => { - const valid = isValidEdge(edge, blocks) - if (!valid) { - logger.warn('Filtered invalid edge', { - edgeId: edge.id, - source: edge.source, - target: edge.target, - sourceType: blocks[edge.source]?.type, - targetType: blocks[edge.target]?.type, - }) - } - return valid - }) + return edges.filter((edge) => isValidEdge(edge, blocks)) } const initialState = {