update-block.tsx 730 B

12345678910111213141516171819202122
  1. import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'
  2. import { textToEditorState } from '../utils'
  3. import { useEventEmitterContextContext } from '@/context/event-emitter'
  4. export const PROMPT_EDITOR_UPDATE_VALUE_BY_EVENT_EMITTER = 'PROMPT_EDITOR_UPDATE_VALUE_BY_EVENT_EMITTER'
  5. const UpdateBlock = () => {
  6. const { eventEmitter } = useEventEmitterContextContext()
  7. const [editor] = useLexicalComposerContext()
  8. eventEmitter?.useSubscription((v: any) => {
  9. if (v.type === PROMPT_EDITOR_UPDATE_VALUE_BY_EVENT_EMITTER) {
  10. const editorState = editor.parseEditorState(textToEditorState(v.payload))
  11. editor.setEditorState(editorState)
  12. }
  13. })
  14. return null
  15. }
  16. export default UpdateBlock