| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 
							- import {
 -   useCallback,
 -   useEffect,
 - } from 'react'
 - import type { TextNode } from 'lexical'
 - import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'
 - import { useLexicalTextEntity } from '../../hooks'
 - import {
 -   $createVariableValueBlockNode,
 -   VariableValueBlockNode,
 - } from './node'
 - import { getHashtagRegexString } from './utils'
 - 
 - const REGEX = new RegExp(getHashtagRegexString(), 'i')
 - 
 - const VariableValueBlock = () => {
 -   const [editor] = useLexicalComposerContext()
 - 
 -   useEffect(() => {
 -     if (!editor.hasNodes([VariableValueBlockNode]))
 -       throw new Error('VariableValueBlockPlugin: VariableValueNode not registered on editor')
 -   }, [editor])
 - 
 -   const createVariableValueBlockNode = useCallback((textNode: TextNode): VariableValueBlockNode => {
 -     return $createVariableValueBlockNode(textNode.getTextContent())
 -   }, [])
 - 
 -   const getVariableValueMatch = useCallback((text: string) => {
 -     const matchArr = REGEX.exec(text)
 - 
 -     if (matchArr === null)
 -       return null
 - 
 -     const hashtagLength = matchArr[0].length
 -     const startOffset = matchArr.index
 -     const endOffset = startOffset + hashtagLength
 -     return {
 -       end: endOffset,
 -       start: startOffset,
 -     }
 -   }, [])
 - 
 -   useLexicalTextEntity<VariableValueBlockNode>(
 -     getVariableValueMatch,
 -     VariableValueBlockNode,
 -     createVariableValueBlockNode,
 -   )
 - 
 -   return null
 - }
 - 
 - export default VariableValueBlock
 
 
  |