@@ -36,13 +36,16 @@ export function initRenderPage({ script, css }, distMode, devMode, Header) {
3636 const bundleName = script [ 0 ] ;
3737 const styleName = css [ 0 ] ;
3838
39- return (
40- head ,
39+ return ( {
4140 content = '' ,
42- fluxState = { } ,
41+ customTemplateValues = { } ,
42+ error,
43+ head,
4344 redialProps = [ ] ,
44- customTemplateValues = { }
45- ) => {
45+ reduxState = { } ,
46+ request,
47+ status,
48+ } ) => {
4649 const { dev, build, ...rest } = rocConfig ; // eslint-disable-line
4750
4851 const rocConfigClient = distMode ? rest : { ...rest , dev } ;
@@ -55,16 +58,19 @@ export function initRenderPage({ script, css }, distMode, devMode, Header) {
5558 }
5659
5760 return nunjucks . render ( rocConfig . runtime . template . name , {
58- head,
59- content,
60- fluxState : serialize ( fluxState ) ,
6161 bundleName,
62- styleName,
62+ content,
63+ custom : customTemplateValues ,
6364 dist : distMode ,
64- serializedRocConfig : serialize ( rocConfigClient ) ,
65- serializedAppConfig : serialize ( appConfig ) ,
65+ error,
66+ fluxState : serialize ( reduxState ) ,
67+ head,
6668 redialProps : serialize ( redialProps ) ,
67- custom : customTemplateValues ,
69+ request,
70+ serializedAppConfig : serialize ( appConfig ) ,
71+ serializedRocConfig : serialize ( rocConfigClient ) ,
72+ status,
73+ styleName,
6874 } ) ;
6975 } ;
7076}
@@ -76,6 +82,7 @@ export function reactRender({
7682 createRoutes,
7783 renderPage,
7884 koaState,
85+ request,
7986 staticRender = false ,
8087 hasTemplateValues,
8188 templateValues,
@@ -102,13 +109,13 @@ export function reactRender({
102109 log ( 'Router error' , pretty . render ( error ) ) ;
103110 return resolve ( {
104111 status : 500 ,
105- body : renderPage ( ) ,
112+ body : renderPage ( { error , request , status : 500 } ) ,
106113 } ) ;
107114 } else if ( ! renderProps ) {
108115 log ( 'No renderProps, most likely the path does not exist' ) ;
109116 return resolve ( {
110117 status : 404 ,
111- body : renderPage ( ) ,
118+ body : renderPage ( { request , status : 404 } ) ,
112119 } ) ;
113120 }
114121
@@ -162,32 +169,41 @@ export function reactRender({
162169 ) ;
163170 }
164171
165- const page = staticRender ? renderToStaticMarkup ( component ) : renderToString ( component ) ;
172+ const content = staticRender ? renderToStaticMarkup ( component ) : renderToString ( component ) ;
166173 const head = Helmet . rewind ( ) ;
167- const state = store ? store . getState ( ) : { } ;
174+ const reduxState = store ? store . getState ( ) : { } ;
175+ const status = ServerStatus . rewind ( ) || 200 ;
168176
169177 let computedTemplateValues ;
170178 if ( hasTemplateValues ) {
171179 // Provides settings, Redux state and Koa state
172180 computedTemplateValues = templateValues . default ( {
173181 koaState,
174182 settings : rocConfig ,
175- reduxState : state ,
183+ reduxState,
176184 } ) ;
177185 }
178186
179187 return resolve ( {
180- body : renderPage ( head , page , state , redialProps , computedTemplateValues ) ,
181- status : ServerStatus . rewind ( ) || 200 ,
188+ body : renderPage ( {
189+ computedTemplateValues,
190+ content,
191+ head,
192+ redialProps,
193+ reduxState,
194+ request,
195+ status,
196+ } ) ,
197+ status,
182198 } ) ;
183199 } )
184200 . catch ( ( err ) => {
185201 if ( err ) {
186- log ( 'Fetching error' , pretty . render ( err ) ) ;
202+ log ( 'General error' , pretty . render ( err ) ) ;
187203 }
188204 return resolve ( {
189205 status : 500 ,
190- body : renderPage ( ) ,
206+ body : renderPage ( { error : err , request , status : 500 } ) ,
191207 } ) ;
192208 } ) ;
193209 } ) ;
0 commit comments