@samitouri / QOS-React-2 / commits / 12bffc78d8

[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 {