diff --git a/apps/sim/hooks/use-collaborative-workflow.ts b/apps/sim/hooks/use-collaborative-workflow.ts index 755914ab48..413daa714b 100644 --- a/apps/sim/hooks/use-collaborative-workflow.ts +++ b/apps/sim/hooks/use-collaborative-workflow.ts @@ -2,6 +2,7 @@ import { useCallback, useEffect, useRef } from 'react' import type { Edge } from 'reactflow' import { useSession } from '@/lib/auth/auth-client' import { createLogger } from '@/lib/logs/console/logger' +import { NEW_BLOCK_OFFSET } from '@/lib/workflows/autolayout/constants' import { getBlockOutputs } from '@/lib/workflows/blocks/block-outputs' import { TriggerUtils } from '@/lib/workflows/triggers/triggers' import { useSocket } from '@/app/workspace/providers/socket-provider' @@ -1326,8 +1327,8 @@ export function useCollaborativeWorkflow() { // Generate new ID and calculate position const newId = crypto.randomUUID() const offsetPosition = { - x: sourceBlock.position.x + 250, - y: sourceBlock.position.y + 20, + x: sourceBlock.position.x + NEW_BLOCK_OFFSET.X, + y: sourceBlock.position.y + NEW_BLOCK_OFFSET.Y, } const newName = getUniqueBlockName(sourceBlock.name, workflowStore.blocks) diff --git a/apps/sim/lib/workflows/autolayout/constants.ts b/apps/sim/lib/workflows/autolayout/constants.ts index 838d8315ce..060fcc541b 100644 --- a/apps/sim/lib/workflows/autolayout/constants.ts +++ b/apps/sim/lib/workflows/autolayout/constants.ts @@ -11,7 +11,17 @@ export { BLOCK_DIMENSIONS, CONTAINER_DIMENSIONS } from '@/lib/workflows/blocks/b /** * Horizontal spacing between layers (columns) */ -export const DEFAULT_HORIZONTAL_SPACING = 250 +export const DEFAULT_HORIZONTAL_SPACING = 200 + +/** + * Offset for newly added/duplicated blocks + */ +export const NEW_BLOCK_OFFSET = { + /** Horizontal offset from source block */ + X: 200, + /** Vertical offset from source block */ + Y: 20, +} as const /** * Vertical spacing between blocks in the same layer diff --git a/apps/sim/stores/workflows/workflow/store.ts b/apps/sim/stores/workflows/workflow/store.ts index cc5f412927..87f91a283d 100644 --- a/apps/sim/stores/workflows/workflow/store.ts +++ b/apps/sim/stores/workflows/workflow/store.ts @@ -2,6 +2,7 @@ import type { Edge } from 'reactflow' import { create } from 'zustand' import { devtools } from 'zustand/middleware' import { createLogger } from '@/lib/logs/console/logger' +import { NEW_BLOCK_OFFSET } from '@/lib/workflows/autolayout/constants' import { getBlockOutputs } from '@/lib/workflows/blocks/block-outputs' import { TriggerUtils } from '@/lib/workflows/triggers/triggers' import { getBlock } from '@/blocks' @@ -591,8 +592,8 @@ export const useWorkflowStore = create()( const newId = crypto.randomUUID() const offsetPosition = { - x: block.position.x + 250, - y: block.position.y + 20, + x: block.position.x + NEW_BLOCK_OFFSET.X, + y: block.position.y + NEW_BLOCK_OFFSET.Y, } const newName = getUniqueBlockName(block.name, get().blocks)