1
1
/**
2
2
* WordPress dependencies
3
3
*/
4
- import { useState , useLayoutEffect , useCallback } from '@wordpress/element' ;
4
+ import { useState , useLayoutEffect } from '@wordpress/element' ;
5
5
6
6
/** @typedef {import('../register-format-type').WPFormat } WPFormat */
7
7
/** @typedef {import('../types').RichTextValue } RichTextValue */
@@ -142,15 +142,17 @@ export function useAnchor( { editableContentElement, settings = {} } ) {
142
142
getAnchor ( editableContentElement , tagName , className )
143
143
) ;
144
144
145
- const callback = useCallback ( ( ) => {
146
- setAnchor ( getAnchor ( editableContentElement , tagName , className ) ) ;
147
- } , [ className , editableContentElement , tagName ] ) ;
148
-
149
145
useLayoutEffect ( ( ) => {
150
146
if ( ! editableContentElement ) return ;
151
147
152
148
const { ownerDocument } = editableContentElement ;
153
149
150
+ function callback ( ) {
151
+ setAnchor (
152
+ getAnchor ( editableContentElement , tagName , className )
153
+ ) ;
154
+ }
155
+
154
156
function attach ( ) {
155
157
ownerDocument . addEventListener ( 'selectionchange' , callback ) ;
156
158
}
@@ -172,8 +174,7 @@ export function useAnchor( { editableContentElement, settings = {} } ) {
172
174
editableContentElement . removeEventListener ( 'focusin' , attach ) ;
173
175
editableContentElement . removeEventListener ( 'focusout' , detach ) ;
174
176
} ;
175
- } , [ editableContentElement , tagName , className , callback ] ) ;
177
+ } , [ editableContentElement , tagName , className ] ) ;
176
178
177
- anchor . update = callback ;
178
179
return anchor ;
179
180
}
0 commit comments