diff --git a/{{cookiecutter.project_slug}}/frontend/package.json b/{{cookiecutter.project_slug}}/frontend/package.json
index 448f1d4be..5c19366c7 100644
--- a/{{cookiecutter.project_slug}}/frontend/package.json
+++ b/{{cookiecutter.project_slug}}/frontend/package.json
@@ -20,7 +20,9 @@
"devDependencies": {
"axios": "0.19.0",
"node-sass": "4.12.0",
- "raven-js": "3.27.2"
+ "raven-js": "3.27.2",
+ "react-document-title": "2.0.3",
+ "react-router-dom": "5.1.2"
},
"engines": {
"node": ">=9.11.1",
diff --git a/{{cookiecutter.project_slug}}/frontend/src/App.js b/{{cookiecutter.project_slug}}/frontend/src/App.js
index 467ae6a68..63175ab4c 100644
--- a/{{cookiecutter.project_slug}}/frontend/src/App.js
+++ b/{{cookiecutter.project_slug}}/frontend/src/App.js
@@ -3,22 +3,25 @@ import logo from './logo.svg'
import './App.css'
import axios from 'axios'
-
+import DocumentTitle from 'react-document-title'
class App extends Component {
- onClick = (e) => {
- console.log("Sending a GET API Call !!!");
- axios.get('/api/')
- .then(res => {
- console.log(res);
- }).then(response => {
- console.log(JSON.stringify(response));
- })
+ onClick = e => {
+ console.log('Sending a GET API Call !!!')
+ axios
+ .get('/api/')
+ .then(res => {
+ console.log(res)
+ })
+ .then(response => {
+ console.log(JSON.stringify(response))
+ })
}
render() {
return (
)
}
}
-
export default App
diff --git a/{{cookiecutter.project_slug}}/frontend/src/index.js b/{{cookiecutter.project_slug}}/frontend/src/index.js
index aa5c66a6b..84be06051 100644
--- a/{{cookiecutter.project_slug}}/frontend/src/index.js
+++ b/{{cookiecutter.project_slug}}/frontend/src/index.js
@@ -1,22 +1,17 @@
import React from 'react'
import ReactDOM from 'react-dom'
+import * as serviceWorker from './serviceWorker'
+
import './index.css'
-import App from './App'
-import * as serviceWorker from './serviceWorker';
-
-import Raven from 'raven-js'
-
-
-if (process.env.NODE_ENV === 'production') {
- Raven.config(process.env.REACT_APP_SENTRY_URL).install()
-}
+import Root from './root'
const rootElement = document.getElementById('root')
-ReactDOM.render(, rootElement)
-if (module.hot && process.env.NODE_ENV === "development") {
- module.hot.accept('./App', () => {
- const NextRoot = require('./App').default
+ReactDOM.render(, rootElement)
+
+if (module.hot && process.env.NODE_ENV === 'development') {
+ module.hot.accept('./root', () => {
+ const NextRoot = require('./root').default
ReactDOM.render(, rootElement)
})
}
diff --git a/{{cookiecutter.project_slug}}/frontend/src/root.js b/{{cookiecutter.project_slug}}/frontend/src/root.js
new file mode 100644
index 000000000..b19501a51
--- /dev/null
+++ b/{{cookiecutter.project_slug}}/frontend/src/root.js
@@ -0,0 +1,20 @@
+import React from 'react'
+import { Router } from 'react-router-dom'
+import { createBrowserHistory as createHistory } from 'history'
+import Raven from 'raven-js'
+
+import Routes from './routes'
+
+if (process.env.NODE_ENV === 'production') {
+ Raven.config(process.env.REACT_APP_SENTRY_URL).install()
+}
+
+const history = createHistory()
+
+const Root = () => (
+
+
+
+)
+
+export default Root
diff --git a/{{cookiecutter.project_slug}}/frontend/src/routes.js b/{{cookiecutter.project_slug}}/frontend/src/routes.js
new file mode 100644
index 000000000..7dbc58c31
--- /dev/null
+++ b/{{cookiecutter.project_slug}}/frontend/src/routes.js
@@ -0,0 +1,14 @@
+import React, { Suspense } from 'react'
+import { Route, Switch } from 'react-router-dom'
+
+const App = React.lazy(() => import('./App'))
+
+const Routes = () => (
+ Loading...}>
+
+
+
+
+)
+
+export default Routes