From 916c512bf5a31041ac87296e1382f84c9367b955 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Mon, 14 Feb 2022 17:16:53 +0100 Subject: chore: display initial posts, thematics & topics By fetching the data in getStaticProps, I can display the data even for users with Javascript disabled. --- src/pages/blog/index.tsx | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) (limited to 'src/pages/blog/index.tsx') diff --git a/src/pages/blog/index.tsx b/src/pages/blog/index.tsx index 51db760..e725ea8 100644 --- a/src/pages/blog/index.tsx +++ b/src/pages/blog/index.tsx @@ -6,7 +6,12 @@ import PostsList from '@components/PostsList/PostsList'; import Sidebar from '@components/Sidebar/Sidebar'; import Spinner from '@components/Spinner/Spinner'; import { ThematicsList, TopicsList } from '@components/Widgets'; -import { getPublishedPosts } from '@services/graphql/queries'; +import { + getAllThematics, + getAllTopics, + getPostsTotal, + getPublishedPosts, +} from '@services/graphql/queries'; import styles from '@styles/pages/Page.module.scss'; import { NextPageWithLayout } from '@ts/types/app'; import { BlogPageProps, PostsList as PostsListData } from '@ts/types/blog'; @@ -20,7 +25,12 @@ import { useIntl } from 'react-intl'; import { Blog as BlogSchema, Graph, WebPage } from 'schema-dts'; import useSWRInfinite from 'swr/infinite'; -const Blog: NextPageWithLayout = ({ fallback }) => { +const Blog: NextPageWithLayout = ({ + allThematics, + allTopics, + firstPosts, + totalPosts, +}) => { const intl = useIntl(); const lastPostRef = useRef(null); const router = useRouter(); @@ -39,9 +49,9 @@ const Blog: NextPageWithLayout = ({ fallback }) => { const { data, error, size, setSize } = useSWRInfinite( getKey, getPublishedPosts, - { fallback } + { fallbackData: [firstPosts] } ); - const [totalPostsCount, setTotalPostsCount] = useState(0); + const [totalPostsCount, setTotalPostsCount] = useState(totalPosts); useEffect(() => { if (data) setTotalPostsCount(data[0].pageInfo.total); @@ -158,12 +168,6 @@ const Blog: NextPageWithLayout = ({ fallback }) => { >
- {getPostsList()} {hasNextPage && ( <> @@ -182,6 +186,12 @@ const Blog: NextPageWithLayout = ({ fallback }) => { description: 'BlogPage: load more text', })} + )}
@@ -193,12 +203,14 @@ const Blog: NextPageWithLayout = ({ fallback }) => { })} >