From 12bffc78d8d9e0ee8d494849f20611fe15d598ef Mon Sep 17 00:00:00 2001 From: jstejada Date: Mon, 6 Dec 2021 08:49:15 -0500 Subject: [PATCH] [DevTools] Emit new event when DevTools connects in standalone app (#22848) --- packages/react-devtools-core/src/standalone.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/react-devtools-core/src/standalone.js b/packages/react-devtools-core/src/standalone.js index 1ef01e8ffc..ab3250d7cf 100644 --- a/packages/react-devtools-core/src/standalone.js +++ b/packages/react-devtools-core/src/standalone.js @@ -41,13 +41,17 @@ import type {InspectedElement} from 'react-devtools-shared/src/devtools/views/Co installHook(window); -export type StatusListener = (message: string) => void; +export type StatusTypes = 'server-connected' | 'devtools-connected' | 'error'; +export type StatusListener = (message: string, status: StatusTypes) => void; export type OnDisconnectedCallback = () => void; let node: HTMLElement = ((null: any): HTMLElement); let nodeWaitingToConnectHTML: string = ''; let projectRoots: Array = []; -let statusListener: StatusListener = (message: string) => {}; +let statusListener: StatusListener = ( + message: string, + status?: StatusTypes, +) => {}; let disconnectedCallback: OnDisconnectedCallback = () => {}; // TODO (Webpack 5) Hopefully we can remove this prop after the Webpack 5 migration. @@ -260,6 +264,7 @@ function initialize(socket: WebSocket) { }); log('Connected'); + statusListener('DevTools initialized.', 'devtools-connected'); reload(); } @@ -372,12 +377,15 @@ function startServer( httpServer.on('error', event => { onError(event); - statusListener('Failed to start the server.'); + statusListener('Failed to start the server.', 'error'); startServerTimeoutID = setTimeout(() => startServer(port), 1000); }); httpServer.listen(port, () => { - statusListener('The server is listening on the port ' + port + '.'); + statusListener( + 'The server is listening on the port ' + port + '.', + 'server-connected', + ); }); return {