@@ -22,7 +22,7 @@ import TabBar from './TabBar';
22
22
import { SettingsContextController } from './Settings/SettingsContext' ;
23
23
import { TreeContextController } from './Components/TreeContext' ;
24
24
import ViewElementSourceContext from './Components/ViewElementSourceContext' ;
25
- import LoadHookNamesFunctionContext from './Components/LoadHookNamesFunctionContext ' ;
25
+ import HookNamesContext from './Components/HookNamesContext ' ;
26
26
import { ProfilerContextController } from './Profiler/ProfilerContext' ;
27
27
import { ModalDialogContextController } from './ModalDialog' ;
28
28
import ReactLogo from './ReactLogo' ;
@@ -51,6 +51,7 @@ export type ViewElementSource = (
51
51
export type LoadHookNamesFunction = (
52
52
hooksTree : HooksTree ,
53
53
) => Thenable < HookNames > ;
54
+ export type PurgeCachedHookNamesMetadata = ( ) => void ;
54
55
export type ViewAttributeSource = (
55
56
id : number ,
56
57
path : Array < string | number > ,
@@ -87,7 +88,8 @@ export type Props = {|
87
88
// Loads and parses source maps for function components
88
89
// and extracts hook "names" based on the variables the hook return values get assigned to.
89
90
// Not every DevTools build can load source maps, so this property is optional.
90
- loadHookNamesFunction ?: ?LoadHookNamesFunction ,
91
+ loadHookNames ?: ?LoadHookNamesFunction ,
92
+ purgeCachedHookNamesMetadata ?: ?PurgeCachedHookNamesMetadata ,
91
93
| } ;
92
94
93
95
const componentsTab = {
@@ -112,9 +114,10 @@ export default function DevTools({
112
114
componentsPortalContainer,
113
115
defaultTab = 'components' ,
114
116
enabledInspectedElementContextMenu = false ,
115
- loadHookNamesFunction ,
117
+ loadHookNames ,
116
118
overrideTab,
117
119
profilerPortalContainer,
120
+ purgeCachedHookNamesMetadata,
118
121
showTabBar = false ,
119
122
store,
120
123
warnIfLegacyBackendDetected = false ,
@@ -149,6 +152,14 @@ export default function DevTools({
149
152
[ enabledInspectedElementContextMenu , viewAttributeSourceFunction ] ,
150
153
) ;
151
154
155
+ const hookNamesContext = useMemo (
156
+ ( ) => ( {
157
+ loadHookNames : loadHookNames || null ,
158
+ purgeCachedMetadata : purgeCachedHookNamesMetadata || null ,
159
+ } ) ,
160
+ [ loadHookNames , purgeCachedHookNamesMetadata ] ,
161
+ ) ;
162
+
152
163
const devToolsRef = useRef < HTMLElement | null > ( null ) ;
153
164
154
165
useEffect ( ( ) => {
@@ -204,8 +215,7 @@ export default function DevTools({
204
215
componentsPortalContainer = { componentsPortalContainer }
205
216
profilerPortalContainer = { profilerPortalContainer } >
206
217
< ViewElementSourceContext . Provider value = { viewElementSource } >
207
- < LoadHookNamesFunctionContext . Provider
208
- value = { loadHookNamesFunction || null } >
218
+ < HookNamesContext . Provider value = { hookNamesContext } >
209
219
< TreeContextController >
210
220
< ProfilerContextController >
211
221
< div className = { styles . DevTools } ref = { devToolsRef } >
@@ -240,7 +250,7 @@ export default function DevTools({
240
250
</ div >
241
251
</ ProfilerContextController >
242
252
</ TreeContextController >
243
- </ LoadHookNamesFunctionContext . Provider >
253
+ </ HookNamesContext . Provider >
244
254
</ ViewElementSourceContext . Provider >
245
255
</ SettingsContextController >
246
256
< UnsupportedBridgeProtocolDialog />
0 commit comments