From 60df1c0c6af1ddc7f3ee68bec094311c77803c51 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Wed, 10 Dec 2025 09:47:00 -1000 Subject: [PATCH] Fix TypeScript error in processPromise return type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the promise resolves to a non-ReactElement value (string or ServerRenderHashRenderedHtml), TypeScript couldn't narrow the type properly. Added explicit type assertion since after isValidElement check, the remaining union members are all valid FinalHtmlResult types. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- packages/react-on-rails/src/serverRenderReactComponent.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/react-on-rails/src/serverRenderReactComponent.ts b/packages/react-on-rails/src/serverRenderReactComponent.ts index ae60cfc711..87bd8d2672 100644 --- a/packages/react-on-rails/src/serverRenderReactComponent.ts +++ b/packages/react-on-rails/src/serverRenderReactComponent.ts @@ -9,6 +9,7 @@ import { renderToString } from './ReactDOMServer.cts'; import { createResultObject, convertToError, validateComponent } from './serverRenderUtils.ts'; import type { CreateReactOutputResult, + FinalHtmlResult, RenderParams, RenderResult, RenderState, @@ -71,7 +72,8 @@ function processPromise( if (isValidElement(promiseResult)) { return processReactElement(promiseResult); } - return promiseResult; + // promiseResult is string | ServerRenderHashRenderedHtml (both are FinalHtmlResult) + return promiseResult as FinalHtmlResult; }); }