/
index.tsx
82 lines (67 loc) · 1.98 KB
/
index.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import React, { useMemo } from 'react'
// import { useRouter } from 'next/router'
import { NextSeo } from 'next-seo'
// import OldMainPage from 'src/components_old/Pages/MainPage'
import { Page } from '../_App/interfaces'
// import { GetStaticProps } from 'next'
// import { GetServerSideProps } from 'next'
// import PostList, {
// ALL_POSTS_QUERY,
// allPostsQueryVars,
// } from '../src/components/PostList'
// import { initializeApollo } from '../src/lib/apolloClient'
import {
useCompaniesQuery,
CompaniesDocument,
CompaniesQuery,
CompaniesQueryVariables,
} from 'src/modules/gql/generated'
import CompaniesView from '../Companies/View'
import { MainPageProps } from './interfaces'
import { getCompaniesVariables } from '../Cities/City'
import { useRouter } from 'next/router'
export const MainPage: Page<MainPageProps> = ({ city }): JSX.Element => {
const router = useRouter()
const { variables, page } = useMemo(() => {
return getCompaniesVariables({
city,
query: router.query,
})
}, [city, router.query])
const companiesResponse = useCompaniesQuery({
variables,
})
return (
<>
<NextSeo
title="Городские и общественные бани"
description="Все Городские и общественные бани"
/>
{/* <OldMainPage /> */}
<CompaniesView
companies={companiesResponse.data?.companies || []}
city={city}
pagination={{
page,
limit: companiesResponse.variables?.take || 0,
total: 100,
}}
/>
</>
)
}
MainPage.getInitialProps = async (appContext) => {
const { apolloClient, cities, query } = appContext
const moscow = cities.find((n) => n.id === 1197)
await apolloClient.query<CompaniesQuery, CompaniesQueryVariables>({
query: CompaniesDocument,
variables: getCompaniesVariables({
city: moscow,
query,
}).variables,
})
return {
city: moscow,
}
}
export default MainPage