Skip to content
This repository was archived by the owner on Jan 2, 2018. It is now read-only.

Commit d9e75f0

Browse files
authored
Merge pull request #55 from rocjs/feature/more-data-in-templates
Added new data to the template that can be used when rendering
2 parents c731a3c + fe9a5f2 commit d9e75f0

File tree

2 files changed

+38
-21
lines changed

2 files changed

+38
-21
lines changed

extensions/roc-package-web-app-react/src/app/server/reactRenderer.js

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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
});

extensions/roc-package-web-app-react/src/app/server/reactRouter.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export default function reactRouter({
6969
createRoutes,
7070
renderPage,
7171
koaState: this.state,
72+
request: this.request,
7273
hasTemplateValues,
7374
templateValues,
7475
reduxSagas,

0 commit comments

Comments
 (0)