| | |
| | | } from 'lexical' |
| | | import { mergeRegister } from '@lexical/utils' |
| | | import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext' |
| | | import type { GetVarType, WorkflowVariableBlockType } from '../../types' |
| | | import type { WorkflowVariableBlockType } from '../../types' |
| | | import { |
| | | $createWorkflowVariableBlockNode, |
| | | WorkflowVariableBlockNode, |
| | |
| | | getWorkflowNode: (nodeId: string) => Node |
| | | onInsert?: () => void |
| | | onDelete?: () => void |
| | | getVarType: GetVarType |
| | | } |
| | | const WorkflowVariableBlock = memo(({ |
| | | workflowNodesMap, |
| | | onInsert, |
| | | onDelete, |
| | | getVarType, |
| | | }: WorkflowVariableBlockType) => { |
| | | const [editor] = useLexicalComposerContext() |
| | | |
| | |
| | | INSERT_WORKFLOW_VARIABLE_BLOCK_COMMAND, |
| | | (variables: string[]) => { |
| | | editor.dispatchCommand(CLEAR_HIDE_MENU_TIMEOUT, undefined) |
| | | const workflowVariableBlockNode = $createWorkflowVariableBlockNode(variables, workflowNodesMap, getVarType) |
| | | const workflowVariableBlockNode = $createWorkflowVariableBlockNode(variables, workflowNodesMap) |
| | | |
| | | $insertNodes([workflowVariableBlockNode]) |
| | | if (onInsert) |
| | |
| | | COMMAND_PRIORITY_EDITOR, |
| | | ), |
| | | ) |
| | | }, [editor, onInsert, onDelete, workflowNodesMap, getVarType]) |
| | | }, [editor, onInsert, onDelete, workflowNodesMap]) |
| | | |
| | | return null |
| | | }) |