Kaynağa Gözat

fix: node shortcuts active in input fields (#3438)

tags/0.6.3
Pascal M 1 yıl önce
ebeveyn
işleme
a355225a83
No account linked to committer's email address

+ 16
- 1
web/app/components/workflow/hooks/use-nodes-interactions.ts Dosyayı Görüntüle



const { const {
setClipboardElements, setClipboardElements,
shortcutsDisabled,
} = workflowStore.getState() } = workflowStore.getState()


if (shortcutsDisabled)
return

const { const {
getNodes, getNodes,
} = store.getState() } = store.getState()


const { const {
clipboardElements, clipboardElements,
shortcutsDisabled,
} = workflowStore.getState() } = workflowStore.getState()


if (shortcutsDisabled)
return

const { const {
getNodes, getNodes,
setNodes, setNodes,
if (getNodesReadOnly()) if (getNodesReadOnly())
return return


const {
shortcutsDisabled,
} = workflowStore.getState()

if (shortcutsDisabled)
return

const { const {
getNodes, getNodes,
} = store.getState() } = store.getState()


for (const node of nodesToDelete) for (const node of nodesToDelete)
handleNodeDelete(node.id) handleNodeDelete(node.id)
}, [getNodesReadOnly, handleNodeDelete, store])
}, [getNodesReadOnly, handleNodeDelete, store, workflowStore])


return { return {
handleNodeDragStart, handleNodeDragStart,

+ 12
- 0
web/app/components/workflow/hooks/use-workflow.ts Dosyayı Görüntüle

return nodes.find(node => node.id === nodeId) || nodes.find(node => node.data.type === BlockEnum.Start) return nodes.find(node => node.id === nodeId) || nodes.find(node => node.data.type === BlockEnum.Start)
}, [store]) }, [store])


const enableShortcuts = useCallback(() => {
const { setShortcutsDisabled } = workflowStore.getState()
setShortcutsDisabled(false)
}, [workflowStore])

const disableShortcuts = useCallback(() => {
const { setShortcutsDisabled } = workflowStore.getState()
setShortcutsDisabled(true)
}, [workflowStore])

return { return {
handleLayout, handleLayout,
getTreeLeafNodes, getTreeLeafNodes,
renderTreeFromRecord, renderTreeFromRecord,
getNode, getNode,
getBeforeNodeById, getBeforeNodeById,
enableShortcuts,
disableShortcuts,
} }
} }



+ 7
- 1
web/app/components/workflow/index.tsx Dosyayı Görüntüle

handleEdgeDelete, handleEdgeDelete,
handleEdgesChange, handleEdgesChange,
} = useEdgesInteractions() } = useEdgesInteractions()
const { isValidConnection } = useWorkflow()
const {
isValidConnection,
enableShortcuts,
disableShortcuts,
} = useWorkflow()


useOnViewportChange({ useOnViewportChange({
onEnd: () => { onEnd: () => {
edgeTypes={edgeTypes} edgeTypes={edgeTypes}
nodes={nodes} nodes={nodes}
edges={edges} edges={edges}
onPointerDown={enableShortcuts}
onMouseLeave={disableShortcuts}
onNodeDragStart={handleNodeDragStart} onNodeDragStart={handleNodeDragStart}
onNodeDrag={handleNodeDrag} onNodeDrag={handleNodeDrag}
onNodeDragStop={handleNodeDragStop} onNodeDragStop={handleNodeDragStop}

+ 4
- 0
web/app/components/workflow/store.ts Dosyayı Görüntüle

setCustomTools: (tools: ToolWithProvider[]) => void setCustomTools: (tools: ToolWithProvider[]) => void
clipboardElements: Node[] clipboardElements: Node[]
setClipboardElements: (clipboardElements: Node[]) => void setClipboardElements: (clipboardElements: Node[]) => void
shortcutsDisabled: boolean
setShortcutsDisabled: (shortcutsDisabled: boolean) => void
} }


export const createWorkflowStore = () => { export const createWorkflowStore = () => {
setCustomTools: customTools => set(() => ({ customTools })), setCustomTools: customTools => set(() => ({ customTools })),
clipboardElements: [], clipboardElements: [],
setClipboardElements: clipboardElements => set(() => ({ clipboardElements })), setClipboardElements: clipboardElements => set(() => ({ clipboardElements })),
shortcutsDisabled: false,
setShortcutsDisabled: shortcutsDisabled => set(() => ({ shortcutsDisabled })),
})) }))
} }



Loading…
İptal
Kaydet