in apps-rendering/src/server/editionsPage.tsx [162:223]
function render(
imageSalt: string,
request: RenderingRequest,
res: Response,
getAssetLocation: (assetName: string) => string,
themeOverride: Option<ArticleTheme>,
): Page {
const path = res.req.path;
const isPreview = res.req.query.isPreview === 'true';
const environment = getEditionsEnv(isPreview, path);
const item = fromCapi({ docParser, salt: imageSalt, app: 'Editions' })(
request,
none,
);
const newItem = {
...item,
theme: withDefault(item.theme)(themeOverride),
};
const body = renderBody(newItem);
const thirdPartyEmbeds = getThirdPartyEmbeds(request.content);
const head = renderHead(
item,
request,
thirdPartyEmbeds,
body.css,
body.ids,
false,
environment,
);
const devScript = map(getAssetLocation)(some('editions.js'));
const prodScript = some('assets/js/editions.js');
const previewScript = some(`${s3Path}/assets/js/editions.js`);
const getClientScript = (env: EditionsEnv): Option<string> => {
switch (env) {
case EditionsEnv.Prod:
return prodScript;
case EditionsEnv.Preview:
return previewScript;
default:
return devScript;
}
};
const clientScript = getClientScript(environment);
const scripts = (
<Scripts
clientScript={clientScript}
twitter={thirdPartyEmbeds.twitter}
/>
);
return {
html: buildHtml(head, body.html, scripts),
clientScript: none,
};
}