cleanup dead sockets adv mode ops

This commit is contained in:
Vikhyath Mondreti
2026-01-15 20:16:39 -08:00
parent 95f0f4e45e
commit 879cdf1d44
6 changed files with 4 additions and 120 deletions

View File

@@ -1,9 +1,8 @@
'use client'
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { BookOpen, Check, ChevronDown, ChevronUp, Pencil } from 'lucide-react'
import { BookOpen, Check, ChevronUp, Pencil } from 'lucide-react'
import { Button, Tooltip } from '@/components/emcn'
import { cn } from '@/lib/core/utils/cn'
import {
buildCanonicalIndex,
hasAdvancedValues,
@@ -106,18 +105,7 @@ export function Editor() {
blockSubBlockValues,
canonicalIndex
)
const displayAdvancedOptions = userPermissions.canEdit
? advancedMode
: advancedMode || advancedValuesPresent
const hasAdvancedOnlyFields = useMemo(() => {
if (!blockConfig?.subBlocks) return false
return blockConfig.subBlocks.some((subBlock) => {
if (subBlock.mode !== 'advanced') return false
const canonicalId = canonicalIndex.canonicalIdBySubBlockId[subBlock.id]
const group = canonicalId ? canonicalIndex.groupsById[canonicalId] : undefined
return !isCanonicalPair(group)
})
}, [blockConfig?.subBlocks, canonicalIndex])
const displayAdvancedOptions = advancedMode || advancedValuesPresent
// Get subblock layout using custom hook
const { subBlocks, stateToUse: subBlockState } = useEditorSubblockLayout(
@@ -139,24 +127,14 @@ export function Editor() {
})
// Collaborative actions
const {
collaborativeToggleBlockAdvancedMode,
collaborativeSetBlockCanonicalMode,
collaborativeUpdateBlockName,
} = useCollaborativeWorkflow()
const { collaborativeSetBlockCanonicalMode, collaborativeUpdateBlockName } =
useCollaborativeWorkflow()
// Rename state
const [isRenaming, setIsRenaming] = useState(false)
const [editedName, setEditedName] = useState('')
const nameInputRef = useRef<HTMLInputElement>(null)
// Mode toggle handlers
const handleToggleAdvancedMode = useCallback(() => {
if (currentBlockId && userPermissions.canEdit) {
collaborativeToggleBlockAdvancedMode(currentBlockId)
}
}, [currentBlockId, userPermissions.canEdit, collaborativeToggleBlockAdvancedMode])
/**
* Handles starting the rename process.
*/
@@ -216,26 +194,6 @@ export function Editor() {
}
}
const hasAdvancedMode = hasAdvancedOnlyFields
const autoExpandedBlocksRef = useRef<Set<string>>(new Set())
useEffect(() => {
if (!currentBlockId || !userPermissions.canEdit) return
if (!advancedValuesPresent) return
if (advancedMode) return
if (autoExpandedBlocksRef.current.has(currentBlockId)) return
autoExpandedBlocksRef.current.add(currentBlockId)
collaborativeToggleBlockAdvancedMode(currentBlockId)
}, [
advancedMode,
advancedValuesPresent,
collaborativeToggleBlockAdvancedMode,
currentBlockId,
userPermissions.canEdit,
])
// Determine if connections are at minimum height (collapsed state)
const isConnectionsAtMinHeight = connectionsHeight <= 35
@@ -448,33 +406,6 @@ export function Editor() {
</div>
</div>
{hasAdvancedMode && (
<div className='flex flex-shrink-0 items-center border-[var(--border)] border-t px-[8px] py-[6px]'>
<Button
variant='ghost'
className='flex h-[24px] w-full items-center justify-between px-[6px] text-[13px]'
onClick={handleToggleAdvancedMode}
disabled={!userPermissions.canEdit}
aria-label='Toggle advanced options'
>
<div className='flex items-center gap-[6px]'>
<span className='text-[var(--text-primary)]'>
{displayAdvancedOptions ? 'Hide advanced options' : 'Show advanced options'}
</span>
{advancedValuesPresent && (
<span className='h-[6px] w-[6px] rounded-full bg-[var(--brand-9)]' />
)}
</div>
<ChevronDown
className={cn(
'h-[14px] w-[14px] transition-transform',
displayAdvancedOptions && 'rotate-180'
)}
/>
</Button>
</div>
)}
{/* Connections Section - Only show when there are connections */}
{hasIncomingConnections && (
<div

View File

@@ -200,9 +200,6 @@ export function useCollaborativeWorkflow() {
case BLOCK_OPERATIONS.UPDATE_NAME:
workflowStore.updateBlockName(payload.id, payload.name)
break
case BLOCK_OPERATIONS.UPDATE_ADVANCED_MODE:
workflowStore.setBlockAdvancedMode(payload.id, payload.advancedMode)
break
case BLOCK_OPERATIONS.UPDATE_CANONICAL_MODE:
workflowStore.setBlockCanonicalMode(
payload.id,
@@ -923,23 +920,6 @@ export function useCollaborativeWorkflow() {
[isInActiveRoom, workflowStore, undoRedo, addToQueue, activeWorkflowId, session?.user?.id]
)
const collaborativeToggleBlockAdvancedMode = useCallback(
(id: string) => {
const currentBlock = workflowStore.blocks[id]
if (!currentBlock) return
const newAdvancedMode = !currentBlock.advancedMode
executeQueuedOperation(
BLOCK_OPERATIONS.UPDATE_ADVANCED_MODE,
OPERATION_TARGETS.BLOCK,
{ id, advancedMode: newAdvancedMode },
() => workflowStore.toggleBlockAdvancedMode(id)
)
},
[executeQueuedOperation, workflowStore]
)
const collaborativeSetBlockCanonicalMode = useCallback(
(id: string, canonicalId: string, canonicalMode: 'basic' | 'advanced') => {
executeQueuedOperation(
@@ -1625,7 +1605,6 @@ export function useCollaborativeWorkflow() {
collaborativeUpdateBlockName,
collaborativeBatchToggleBlockEnabled,
collaborativeBatchUpdateParent,
collaborativeToggleBlockAdvancedMode,
collaborativeSetBlockCanonicalMode,
collaborativeBatchToggleBlockHandles,
collaborativeBatchAddBlocks,

View File

@@ -3,7 +3,6 @@ export const BLOCK_OPERATIONS = {
UPDATE_NAME: 'update-name',
TOGGLE_ENABLED: 'toggle-enabled',
UPDATE_PARENT: 'update-parent',
UPDATE_ADVANCED_MODE: 'update-advanced-mode',
UPDATE_CANONICAL_MODE: 'update-canonical-mode',
TOGGLE_HANDLES: 'toggle-handles',
} as const

View File

@@ -376,28 +376,6 @@ async function handleBlockOperationTx(
break
}
case BLOCK_OPERATIONS.UPDATE_ADVANCED_MODE: {
if (!payload.id || payload.advancedMode === undefined) {
throw new Error('Missing required fields for update advanced mode operation')
}
const updateResult = await tx
.update(workflowBlocks)
.set({
advancedMode: payload.advancedMode,
updatedAt: new Date(),
})
.where(and(eq(workflowBlocks.id, payload.id), eq(workflowBlocks.workflowId, workflowId)))
.returning({ id: workflowBlocks.id })
if (updateResult.length === 0) {
throw new Error(`Block ${payload.id} not found in workflow ${workflowId}`)
}
logger.debug(`Updated block advanced mode: ${payload.id} -> ${payload.advancedMode}`)
break
}
case BLOCK_OPERATIONS.UPDATE_CANONICAL_MODE: {
if (!payload.id || !payload.canonicalId || !payload.canonicalMode) {
throw new Error('Missing required fields for update canonical mode operation')

View File

@@ -21,7 +21,6 @@ const WRITE_OPERATIONS: string[] = [
BLOCK_OPERATIONS.UPDATE_NAME,
BLOCK_OPERATIONS.TOGGLE_ENABLED,
BLOCK_OPERATIONS.UPDATE_PARENT,
BLOCK_OPERATIONS.UPDATE_ADVANCED_MODE,
BLOCK_OPERATIONS.UPDATE_CANONICAL_MODE,
BLOCK_OPERATIONS.TOGGLE_HANDLES,
// Batch block operations

View File

@@ -30,7 +30,6 @@ export const BlockOperationSchema = z.object({
BLOCK_OPERATIONS.UPDATE_NAME,
BLOCK_OPERATIONS.TOGGLE_ENABLED,
BLOCK_OPERATIONS.UPDATE_PARENT,
BLOCK_OPERATIONS.UPDATE_ADVANCED_MODE,
BLOCK_OPERATIONS.UPDATE_CANONICAL_MODE,
BLOCK_OPERATIONS.TOGGLE_HANDLES,
]),
@@ -48,7 +47,6 @@ export const BlockOperationSchema = z.object({
extent: z.enum(['parent']).nullable().optional(),
enabled: z.boolean().optional(),
horizontalHandles: z.boolean().optional(),
advancedMode: z.boolean().optional(),
canonicalId: z.string().optional(),
canonicalMode: z.enum(['basic', 'advanced']).optional(),
triggerMode: z.boolean().optional(),