[DevTools] Emit new event when DevTools connects in standalone app (#22848)
jstejada committed
Dec 6, 2021 at 08:49 UTC
12bffc78d8d9e0ee8d494849f20611fe15d598ef
1 file changed
+12
-4
packages/react-devtools-core/src/standalone.js
+12
-4
@@ -41,13 +41,17 @@ import type {InspectedElement} from 'react-devtools-shared/src/devtools/views/Co
41
42
installHook(window);
43
44
-export type StatusListener = (message: string) => void;
44
+export type StatusTypes = 'server-connected' | 'devtools-connected' | 'error';
45
+export type StatusListener = (message: string, status: StatusTypes) => void;
46
export type OnDisconnectedCallback = () => void;
47
48
let node: HTMLElement = ((null: any): HTMLElement);
49
let nodeWaitingToConnectHTML: string = '';
50
let projectRoots: Array<string> = [];
50
-let statusListener: StatusListener = (message: string) => {};
51
+let statusListener: StatusListener = (
52
+ message: string,
53
+ status?: StatusTypes,
54
+) => {};
55
let disconnectedCallback: OnDisconnectedCallback = () => {};
56
57
// TODO (Webpack 5) Hopefully we can remove this prop after the Webpack 5 migration.
@@ -260,6 +264,7 @@ function initialize(socket: WebSocket) {
264
});
265
266
log('Connected');
267
+ statusListener('DevTools initialized.', 'devtools-connected');
268
reload();
269
}
270
@@ -372,12 +377,15 @@ function startServer(
377
378
httpServer.on('error', event => {
379
onError(event);
375
- statusListener('Failed to start the server.');
380
+ statusListener('Failed to start the server.', 'error');
381
startServerTimeoutID = setTimeout(() => startServer(port), 1000);
382
});
383
384
httpServer.listen(port, () => {
380
- statusListener('The server is listening on the port ' + port + '.');
385
+ statusListener(
386
+ 'The server is listening on the port ' + port + '.',
387
+ 'server-connected',
388
+ );
389
});
390
391
return {