From 32c3b91053e87f543bee786f3803a77be6ad1f49 Mon Sep 17 00:00:00 2001 From: MohammadReza Iranmanesh Date: Sun, 6 Jun 2021 15:21:54 +0430 Subject: [PATCH 1/2] feat: add SSR sample component --- README.md | 5 ++-- src/configs/routes.js | 1 + src/views/Home/index.jsx | 50 +++++++++++++++++++++++++++----------- src/views/Home/requests.js | 5 ++++ 4 files changed, 45 insertions(+), 16 deletions(-) create mode 100644 src/views/Home/requests.js diff --git a/README.md b/README.md index fbfceb3..b765fec 100644 --- a/README.md +++ b/README.md @@ -89,8 +89,9 @@ Only views can be SSR. Views are components that directly connected to a URL. To ``` Component.propTypes = { - initialSSRData: PropTypes.shape({ - posts: PropTypes.array(), + initialSSRData: PropTypes.shape({ + posts: PropTypes.array(), + }), }; export default withSSRData(Component); diff --git a/src/configs/routes.js b/src/configs/routes.js index cc02a98..f1fcb47 100644 --- a/src/configs/routes.js +++ b/src/configs/routes.js @@ -2,6 +2,7 @@ import Home from 'src/views/Home'; const routes = [ { + path: '/', component: Home, }, ]; diff --git a/src/views/Home/index.jsx b/src/views/Home/index.jsx index f9d9172..059fb0e 100644 --- a/src/views/Home/index.jsx +++ b/src/views/Home/index.jsx @@ -1,22 +1,44 @@ -import React from 'react'; +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; import MetaTags from 'react-helmet'; import logo from 'src/assets/logo.svg'; +import withSSRData from 'src/shared-components/withSSRData'; + +import { getHomeTitle } from './requests'; import './Home.scss'; -function Home() { - return ( -
- - divar-stater-kit -

Running divar-starter-kit successfully.

-
- ); +class Home extends Component { + static serverSideInitial() { + const title = getHomeTitle(); + + return { + title, + }; + } + + render() { + const { initialSSRData: { title } } = this.props; + + return ( +
+ + divar-stater-kit +

{title}

+
+ ); + } } -export default Home; +Home.propTypes = { + initialSSRData: PropTypes.shape({ + title: PropTypes.string, + }).isRequired, +}; + +export default withSSRData(Home); diff --git a/src/views/Home/requests.js b/src/views/Home/requests.js new file mode 100644 index 0000000..5a4dc07 --- /dev/null +++ b/src/views/Home/requests.js @@ -0,0 +1,5 @@ + +// eslint-disable-next-line import/prefer-default-export +export function getHomeTitle() { + return 'Running divar-starter-kit successfully.'; +} From 2bbfe763c859901ffeb7792a768df431362be307 Mon Sep 17 00:00:00 2001 From: MohammadReza Iranmanesh Date: Sun, 6 Jun 2021 15:38:09 +0430 Subject: [PATCH 2/2] fix: update sample --- src/views/Home/index.jsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/views/Home/index.jsx b/src/views/Home/index.jsx index 059fb0e..7e9003e 100644 --- a/src/views/Home/index.jsx +++ b/src/views/Home/index.jsx @@ -3,7 +3,6 @@ import PropTypes from 'prop-types'; import MetaTags from 'react-helmet'; import logo from 'src/assets/logo.svg'; -import withSSRData from 'src/shared-components/withSSRData'; import { getHomeTitle } from './requests'; @@ -41,4 +40,4 @@ Home.propTypes = { }).isRequired, }; -export default withSSRData(Home); +export default Home;