@@ -14,6 +14,7 @@ import type {
14
14
TimelineLayerOptions ,
15
15
} from '../types'
16
16
import { createHooks } from 'hookable'
17
+ import { debounce } from 'perfect-debounce'
17
18
import { getComponentBoundingRect } from '../core/component/state/bounding-rect'
18
19
import { getInstanceName } from '../core/component/utils'
19
20
import { highlight , unhighlight } from '../core/component-highlighter'
@@ -236,8 +237,7 @@ export function createDevToolsCtxHooks() {
236
237
addInspector ( inspector , plugin . descriptor )
237
238
} )
238
239
239
- // send inspector tree
240
- hooks . hook ( DevToolsContextHookKeys . SEND_INSPECTOR_TREE , async ( { inspectorId, plugin } ) => {
240
+ const debounceSendInspectorTree = debounce ( async ( { inspectorId, plugin } ) => {
241
241
if ( ! inspectorId || ! plugin ?. descriptor ?. app )
242
242
return
243
243
@@ -251,6 +251,7 @@ export function createDevToolsCtxHooks() {
251
251
filter : inspector ?. treeFilter || '' ,
252
252
rootNodes : [ ] ,
253
253
}
254
+
254
255
await new Promise < void > ( ( resolve ) => {
255
256
// @ts -expect-error hookable
256
257
hooks . callHookWith ( async ( callbacks ) => {
@@ -266,10 +267,12 @@ export function createDevToolsCtxHooks() {
266
267
rootNodes : _payload . rootNodes ,
267
268
} ) ) )
268
269
} , DevToolsMessagingHookKeys . SEND_INSPECTOR_TREE_TO_CLIENT )
269
- } )
270
+ } , 120 )
270
271
271
- // send inspector state
272
- hooks . hook ( DevToolsContextHookKeys . SEND_INSPECTOR_STATE , async ( { inspectorId, plugin } ) => {
272
+ // send inspector tree
273
+ hooks . hook ( DevToolsContextHookKeys . SEND_INSPECTOR_TREE , debounceSendInspectorTree )
274
+
275
+ const debounceSendInspectorState = debounce ( async ( { inspectorId, plugin } ) => {
273
276
if ( ! inspectorId || ! plugin ?. descriptor ?. app )
274
277
return
275
278
@@ -305,7 +308,10 @@ export function createDevToolsCtxHooks() {
305
308
state : _payload . state ,
306
309
} ) ) )
307
310
} , DevToolsMessagingHookKeys . SEND_INSPECTOR_STATE_TO_CLIENT )
308
- } )
311
+ } , 120 )
312
+
313
+ // send inspector state
314
+ hooks . hook ( DevToolsContextHookKeys . SEND_INSPECTOR_STATE , debounceSendInspectorState )
309
315
310
316
// select inspector node
311
317
hooks . hook ( DevToolsContextHookKeys . CUSTOM_INSPECTOR_SELECT_NODE , ( { inspectorId, nodeId, plugin } ) => {
0 commit comments