From db623aa4837dff16466b0cda1617fcda5d2f071d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ovidiu=20Chereche=C8=99?= Date: Mon, 11 Mar 2024 10:37:01 +0200 Subject: [PATCH] Forward renderer responses to injected window handler (#1631) --- .../src/rendererConnect/createWebSocketsConnect.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/react-cosmos-renderer/src/rendererConnect/createWebSocketsConnect.ts b/packages/react-cosmos-renderer/src/rendererConnect/createWebSocketsConnect.ts index fbcf6d92f9..131b582fe4 100644 --- a/packages/react-cosmos-renderer/src/rendererConnect/createWebSocketsConnect.ts +++ b/packages/react-cosmos-renderer/src/rendererConnect/createWebSocketsConnect.ts @@ -1,10 +1,17 @@ import { RendererConnect, RendererRequest, + RendererResponse, SocketMessage, rendererSocketMessage, } from 'react-cosmos-core'; +declare global { + interface Window { + cosmosRendererResponse?: (msg: RendererResponse) => void; + } +} + export function createWebSocketsConnect(url: string): RendererConnect { let pendingMessages: SocketMessage[] = []; @@ -24,6 +31,11 @@ export function createWebSocketsConnect(url: string): RendererConnect { } else { pendingMessages.push(socketMessage); } + + // Allow headless browsers to capture renderer responses + if (window.cosmosRendererResponse) { + window.cosmosRendererResponse(rendererResponse); + } }, onMessage(onMessage) {