1- import { Editor as EditorContext , SerializedNodes } from '@craftjs/core'
2- import { createContext , useContext , useState , useCallback , ReactNode } from 'react'
1+ import { Editor as EditorContext } from '@craftjs/core'
2+ import { createContext , useContext , useCallback , ReactNode , useRef } from 'react'
33
44import Container from '@/components/designer/components/Container/Editor'
55import EditorSelect from '@/components/designer/components/Select/Editor'
@@ -8,7 +8,7 @@ import Text from '@/components/designer/components/Text/Editor'
88import Input from '@/components/designer/components/Input/Editor'
99import Separator from '@/components/designer/components/Divider'
1010
11- type NodeChangeHandler = ( query : { serialize : ( ) => SerializedNodes } ) => void
11+ type NodeChangeHandler = ( lexical : string ) => void
1212
1313interface EditorProviderContextType {
1414 setOnNodeChange : ( handler : NodeChangeHandler | null ) => void
@@ -60,16 +60,16 @@ interface EditorProviderProps {
6060}
6161
6262export function EditorProvider ( { children } : EditorProviderProps ) {
63- const [ onNodeChangeHandler , setOnNodeChangeHandler ] = useState < NodeChangeHandler | null > ( null )
63+ const onNodeChangeHandlerRef = useRef < NodeChangeHandler | null > ( null )
6464
6565 const handleNodeChange = useCallback ( ( query : any ) => {
66- if ( onNodeChangeHandler ) {
67- onNodeChangeHandler ( query )
66+ if ( onNodeChangeHandlerRef . current ) {
67+ onNodeChangeHandlerRef . current ( query . serialize ( ) )
6868 }
69- } , [ onNodeChangeHandler ] )
69+ } , [ ] )
7070
7171 const setOnNodeChange = useCallback ( ( handler : NodeChangeHandler | null ) => {
72- setOnNodeChangeHandler ( ( ) => handler )
72+ onNodeChangeHandlerRef . current = handler
7373 } , [ ] )
7474
7575 return (
0 commit comments