@@ -71,34 +71,7 @@ See https://github.com/shakacode/react_on_rails#renderer-functions`);
7171
7272 const processReactElement = ( ) => {
7373 try {
74- // const readableStreamPromise = ReactDOMServer.renderToReadableStream(reactRenderingResult as ReactElement);
75- // return readableStreamPromise.then(async (readableStream) => {
76- // const reader = readableStream.getReader();
77- // let html = '';
78- // while (true) {
79- // const { done, value } = await reader.read();
80- // if (done) {
81- // break;
82- // }
83- // html += value;
84- // }
85- // return html;
86- // })
87- const pipeableStream = ReactDOMServer . renderToPipeableStream ( reactRenderingResult as ReactElement ) ;
88- return new Promise < string > ( ( resolve , reject ) => {
89- let html = '' ;
90- const stream = new PassThrough ( ) ;
91- stream . on ( 'data' , ( chunk ) => {
92- html += chunk . toString ( ) ;
93- } ) ;
94- stream . on ( 'end' , ( ) => {
95- resolve ( html ) ;
96- } ) ;
97- stream . on ( 'error' , reject ) ;
98- pipeableStream . pipe ( stream ) ;
99-
100- } ) ;
101- // return ReactDOMServer.renderToString(reactRenderingResult as ReactElement);
74+ return ReactDOMServer . renderToString ( reactRenderingResult as ReactElement ) ;
10275 } catch ( error ) {
10376 console . error ( `Invalid call to renderToString. Possibly you have a renderFunction, a function that already
10477calls renderToString, that takes one parameter. You need to add an extra unused parameter to identify this function
@@ -107,15 +80,11 @@ as a renderFunction and not a simple React Function Component.`);
10780 }
10881 } ;
10982
110- console . log ( '\n\n\n\n\n\n\n\n\n\n\n\nserverRenderReactComponentInternal\n\n\n\n\n\n\n\n\n\n\n\n' , React . version ) ;
11183 if ( isServerRenderHash ( reactRenderingResult ) ) {
112- console . log ( 'isServerRenderHash' ) ;
11384 renderResult = processServerRenderHash ( ) ;
11485 } else if ( isPromise ( reactRenderingResult ) ) {
115- console . log ( 'isPromise' ) ;
11686 renderResult = processPromise ( ) as Promise < string > ;
11787 } else {
118- console . log ( 'isReactElement' , React . version ) ;
11988 renderResult = processReactElement ( ) ;
12089 }
12190 } catch ( e : any ) {
@@ -207,7 +176,7 @@ const stringToStream = (str: string) => {
207176} ;
208177
209178export const streamServerRenderedReactComponent = ( options : RenderParams ) => {
210- const { name, domNodeId, trace, props, railsContext, renderingReturnsPromises , throwJsErrors } = options ;
179+ const { name, domNodeId, trace, props, railsContext, throwJsErrors } = options ;
211180
212181 let renderResult : null | PassThrough = null ;
213182
@@ -233,6 +202,9 @@ See https://github.com/shakacode/react_on_rails#renderer-functions`);
233202
234203 renderResult = new PassThrough ( ) ;
235204 ReactDOMServer . renderToPipeableStream ( reactRenderingResult as ReactElement ) . pipe ( renderResult ) ;
205+
206+ // TODO: Add console replay script to the stream
207+ // Ensure to avoid console messages leaking between different components rendering
236208 } catch ( e : any ) {
237209 if ( throwJsErrors ) {
238210 throw e ;
0 commit comments