| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | import { useEffect } from 'react'import {  $insertNodes,  COMMAND_PRIORITY_EDITOR,  createCommand,} from 'lexical'import { mergeRegister } from '@lexical/utils'import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'import { CustomTextNode } from '../custom-text/node'export const INSERT_VARIABLE_BLOCK_COMMAND = createCommand('INSERT_VARIABLE_BLOCK_COMMAND')export const INSERT_VARIABLE_VALUE_BLOCK_COMMAND = createCommand('INSERT_VARIABLE_VALUE_BLOCK_COMMAND')const VariableBlock = () => {  const [editor] = useLexicalComposerContext()  useEffect(() => {    return mergeRegister(      editor.registerCommand(        INSERT_VARIABLE_BLOCK_COMMAND,        () => {          const textNode = new CustomTextNode('{')          $insertNodes([textNode])          return true        },        COMMAND_PRIORITY_EDITOR,      ),      editor.registerCommand(        INSERT_VARIABLE_VALUE_BLOCK_COMMAND,        (value: string) => {          const textNode = new CustomTextNode(value)          $insertNodes([textNode])          return true        },        COMMAND_PRIORITY_EDITOR,      ),    )  }, [editor])  return null}export default VariableBlock
 |