@@ -39,7 +39,7 @@ import {
39
39
startTransition ,
40
40
} from 'react' ;
41
41
import { createRegExp } from '../utils' ;
42
- import { BridgeContext , StoreContext } from '../context' ;
42
+ import { StoreContext } from '../context' ;
43
43
import Store from '../../store' ;
44
44
45
45
import type { Element } from 'react-devtools-shared/src/frontend/types' ;
@@ -836,7 +836,6 @@ function TreeContextController({
836
836
defaultSelectedElementID,
837
837
defaultSelectedElementIndex,
838
838
} : Props ) : React . Node {
839
- const bridge = useContext ( BridgeContext ) ;
840
839
const store = useContext ( StoreContext ) ;
841
840
842
841
const initialRevision = useMemo ( ( ) => store . revision , [ store ] ) ;
@@ -899,9 +898,15 @@ function TreeContextController({
899
898
numElements : store . numElements ,
900
899
ownerSubtreeLeafElementID : null ,
901
900
selectedElementID :
902
- defaultSelectedElementID == null ? null : defaultSelectedElementID ,
901
+ defaultSelectedElementID != null
902
+ ? defaultSelectedElementID
903
+ : store . lastSelectedHostInstanceElementId ,
903
904
selectedElementIndex :
904
- defaultSelectedElementIndex == null ? null : defaultSelectedElementIndex ,
905
+ defaultSelectedElementIndex != null
906
+ ? defaultSelectedElementIndex
907
+ : store . lastSelectedHostInstanceElementId
908
+ ? store . getIndexOfElementID ( store . lastSelectedHostInstanceElementId )
909
+ : null ,
905
910
906
911
// Search
907
912
searchIndex : null ,
@@ -914,7 +919,9 @@ function TreeContextController({
914
919
915
920
// Inspection element panel
916
921
inspectedElementID :
917
- defaultInspectedElementID == null ? null : defaultInspectedElementID ,
922
+ defaultInspectedElementID != null
923
+ ? defaultInspectedElementID
924
+ : store . lastSelectedHostInstanceElementId ,
918
925
} ) ;
919
926
920
927
const dispatchWrapper = useCallback (
@@ -929,11 +936,12 @@ function TreeContextController({
929
936
930
937
// Listen for host element selections.
931
938
useEffect ( ( ) => {
932
- const handleSelectElement = ( id : number ) =>
939
+ const handler = ( id : Element [ 'id' ] ) =>
933
940
dispatchWrapper ( { type : 'SELECT_ELEMENT_BY_ID' , payload : id } ) ;
934
- bridge . addListener ( 'selectElement' , handleSelectElement ) ;
935
- return ( ) => bridge . removeListener ( 'selectElement' , handleSelectElement ) ;
936
- } , [ bridge , dispatchWrapper ] ) ;
941
+
942
+ store . addListener ( 'hostInstanceSelected' , handler ) ;
943
+ return ( ) => store . removeListener ( 'hostInstanceSelected' , handler ) ;
944
+ } , [ store , dispatchWrapper ] ) ;
937
945
938
946
// If a newly-selected search result or inspection selection is inside of a collapsed subtree, auto expand it.
939
947
// This needs to be a layout effect to avoid temporarily flashing an incorrect selection.
0 commit comments