diff --git a/client/index.js b/client/index.js
index 70409012..1c99354e 100644
--- a/client/index.js
+++ b/client/index.js
@@ -6,6 +6,7 @@ import BrowserRouter from 'react-router-dom/BrowserRouter';
import asyncBootstrapper from 'react-async-bootstrapper';
import { AppContainer as ReactHotLoader } from 'react-hot-loader';
import { AsyncComponentProvider } from 'react-async-component';
+import { HelmetProvider } from 'react-helmet-async';
import './polyfills';
@@ -33,7 +34,9 @@ function renderApp(TheApp) {
-
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 9f25a257..7c4e58c4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4253,11 +4253,6 @@
"strip-eof": "1.0.0"
}
},
- "exenv": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
- "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50="
- },
"exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@@ -10949,15 +10944,15 @@
"integrity": "sha512-FlsPxavEyMuR6TjVbSSywovXSEyOg6ZDj5+Z8nbsRl9EkOzAhEIcS+GLoQDC5fz/t9suhUXWmUrOBrgeUvrMxw==",
"dev": true
},
- "react-helmet": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-5.2.0.tgz",
- "integrity": "sha1-qBgR3yExOm1VxfBYxK66XW89l6c=",
+ "react-helmet-async": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-0.0.5.tgz",
+ "integrity": "sha512-O6neLxFoxp1fOziF+HEfIqlDkEmC9IAPJRQMG25y5BqDCxY/FTa2n9jUmN1zBmlSjHvDbIUlc5SokjojIJ96wg==",
"requires": {
"deep-equal": "1.0.1",
- "object-assign": "4.1.1",
+ "invariant": "2.2.3",
"prop-types": "15.6.1",
- "react-side-effect": "1.1.5"
+ "shallowequal": "1.0.2"
}
},
"react-hot-loader": {
@@ -11026,15 +11021,6 @@
"warning": "3.0.0"
}
},
- "react-side-effect": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.1.5.tgz",
- "integrity": "sha512-Z2ZJE4p/jIfvUpiUMRydEVpQRf2f8GMHczT6qLcARmX7QRb28JDBTpnM2g/i5y/p7ZDEXYGHWg0RbhikE+hJRw==",
- "requires": {
- "exenv": "1.2.2",
- "shallowequal": "1.0.2"
- }
- },
"react-test-renderer": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.2.0.tgz",
diff --git a/package.json b/package.json
index 2e1fd654..4d9abcf8 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"react-async-bootstrapper": "2.1.0",
"react-async-component": "2.0.0",
"react-dom": "16.2.0",
- "react-helmet": "5.2.0",
+ "react-helmet-async": "0.0.5",
"react-hot-loader": "4.0.0",
"react-router-dom": "4.2.2",
"react-tree-walker": "4.0.2",
diff --git a/server/middleware/reactApplication/ServerHTML.js b/server/middleware/reactApplication/ServerHTML.js
index 4069aa17..1b3c85fe 100644
--- a/server/middleware/reactApplication/ServerHTML.js
+++ b/server/middleware/reactApplication/ServerHTML.js
@@ -45,7 +45,7 @@ function scriptTag(jsFilePath) {
// COMPONENT
function ServerHTML(props) {
- const { asyncComponentsState, helmet, nonce, reactAppString } = props;
+ const { asyncComponentsState, helmet, nonce, children } = props;
// Creates an inline script definition that is protected by the nonce.
const inlineScript = body => (
@@ -124,8 +124,9 @@ function ServerHTML(props) {
bodyElements={bodyElements.map((x, idx) => (
{x}
))}
- appBodyString={reactAppString}
- />
+ >
+ {children}
+