Skip to content

Commit 37157aa

Browse files
author
Thomas Roger Lux
committed
Code cleaning
1 parent 5e12222 commit 37157aa

File tree

5 files changed

+28
-38
lines changed

5 files changed

+28
-38
lines changed

Diff for: package.json

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
{
22
"name": "typescript-react-ssr-boilerplate",
3-
"version": "0.2.0",
3+
"version": "0.4.0",
44
"license": "MIT",
55
"author": "[email protected]",
66
"scripts": {
7-
"dev": "webpack --watch",
7+
"build-dev": "webpack --watch",
88
"build": "webpack",
9+
"start-dev": "nodemon build/server.js",
910
"start": "node build/server.js"
1011
},
1112
"dependencies": {
@@ -14,15 +15,15 @@
1415
"react-dom": "^16.4.1",
1516
"react-redux": "^5.0.7",
1617
"react-router-dom": "^4.3.1",
17-
"redux": "^4.0.0",
18-
"styled-components": "^3.4.9"
18+
"redux": "^4.0.0"
1919
},
2020
"devDependencies": {
2121
"@types/express": "^4.16.0",
2222
"@types/react": "^16.4.1",
2323
"@types/react-dom": "^16.0.6",
2424
"@types/react-redux": "^6.0.2",
2525
"@types/react-router-dom": "^4.3.1",
26+
"nodemon": "^1.18.4",
2627
"ts-loader": "^4.4.1",
2728
"typescript": "^2.9.2",
2829
"webpack": "^4.12.1",

Diff for: src/client/index.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
import * as React from "react";
22
import * as ReactDOM from "react-dom";
33
import * as Redux from "redux";
4-
import * as ReactRedux from "react-redux";
4+
import { Provider as ReduxProvider } from "react-redux";
55
import { BrowserRouter as Router } from "react-router-dom";
66

77
import App from "common/App";
88
import { changeTitle } from "common/redux/reducer/title";
9-
import { Store } from "common/redux/store";
109

1110
const preloadedState = (window as any)["__PRELOADED_STATE__"];
1211
delete (window as any)["__PRELOADED_STATE__"];
1312

1413
const store = Redux.createStore(changeTitle, preloadedState);
1514

1615
ReactDOM.hydrate(
17-
<ReactRedux.Provider store={store}>
16+
<ReduxProvider store={store}>
1817
<Router>
1918
<App />
2019
</Router>
21-
</ReactRedux.Provider>,
20+
</ReduxProvider>,
2221
document.getElementById("root")
2322
);

Diff for: src/common/App.tsx

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@ import * as React from "react";
22
import { Switch, Route } from "react-router-dom";
33

44
import Home from "common/container/Home";
5-
import Test from "common/container/Test";
65

76
export default class App extends React.Component {
87
public render() {
98
return (
10-
<main>
9+
<React.Fragment>
1110
<Switch>
1211
<Route exact path="/" component={Home} />
13-
<Route path="/test" component={Test} />
1412
</Switch>
15-
</main>
13+
</React.Fragment>
1614
);
1715
}
1816
}

Diff for: src/common/container/Test.tsx

-11
This file was deleted.

Diff for: src/server/index.tsx

+18-15
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as React from "react";
22
import * as ReactDOM from "react-dom/server";
33
import * as Express from "express";
44
import * as Redux from "redux";
5-
import * as ReactRedux from "react-redux";
5+
import { Provider as ReduxProvider } from "react-redux";
66
import { ServerStyleSheet } from "styled-components";
77
import { StaticRouter as Router } from "react-router-dom";
88

@@ -15,46 +15,49 @@ function main() {
1515
const express = Express();
1616
const port = 8080;
1717

18-
const store = Redux.createStore(changeTitle);
19-
2018
express.use(Express.static("build"));
2119

2220
express.get("/*", (req, res, next) => {
21+
const store = Redux.createStore(changeTitle);
2322
const sheet = new ServerStyleSheet();
23+
2424
const appHTML = ReactDOM.renderToString(
2525
sheet.collectStyles(
26-
<ReactRedux.Provider store={store}>
26+
<ReduxProvider store={store}>
2727
<Router location={req.path} context={{}}>
2828
<App />
2929
</Router>
30-
</ReactRedux.Provider>
30+
</ReduxProvider>
3131
)
3232
);
33-
34-
const styleTags = sheet.getStyleTags();
35-
const preloadedState = JSON.stringify(store.getState()).replace(
33+
const appCSS = sheet.getStyleTags();
34+
const appInitialState = JSON.stringify(store.getState()).replace(
3635
/</g,
3736
"\\u003c"
3837
);
3938

40-
const fullHTML = `
39+
res.send(`
4140
<!DOCTYPE html>
4241
<html>
4342
<head>
4443
<title>TypeScript ReactJS SSR App</title>
44+
<style>
45+
body {
46+
margin: 0px;
47+
padding: 0px;
48+
}
49+
${appCSS}
50+
</style>
4551
</head>
4652
<body>
47-
<div id="root">${appHTML}</div>
53+
<main id="root">${appHTML}</main>
4854
<script>
49-
window["__PRELOADED_STATE__"] = ${preloadedState}
55+
window["__PRELOADED_STATE__"] = ${appInitialState}
5056
</script>
5157
<script type="application/javascript" src="bundle.js"></script>
52-
${styleTags}
5358
</body>
5459
</html>
55-
`;
56-
57-
res.send(fullHTML);
60+
`);
5861
res.end();
5962
next();
6063
});

0 commit comments

Comments
 (0)