-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathonsite.tsx
64 lines (58 loc) · 1.73 KB
/
onsite.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
import { Suspense } from "react";
import HowCard from "../src/Components/Card/How";
import { DefaultPageLayout } from "../src/Components/Layouts/DefaultPagelayout";
import Seo from "../src/Components/Seo";
import {
HowQueryDocument,
HowQueryQuery,
HowQueryQueryVariables,
} from "../src/graphql/how.generated";
import { urlQlient } from "../src/graphql/urql";
import { ParseQuery } from "../src/helpers/types";
type Page = ParseQuery<HowQueryQuery["page"]>;
export interface PageProps {
howItems: Page["howBlockCollection"];
followUsData: Page["followUsBlock"];
GM_KEY: string;
seo: Page["seo"];
}
export default function OnSitePage(props: PageProps) {
return (
<>
<Seo {...props.seo} />
{props.howItems?.items?.map((elem, index) =>
elem.sectionsCollection?.items.map((item, subIndex) => (
<Suspense key={subIndex} fallback={null}>
<HowCard
{...item}
number={subIndex + 1}
key={subIndex}
GM_KEY={props.GM_KEY}
/>
</Suspense>
))
)}
</>
);
}
export async function getStaticProps() {
const queryResults = await urlQlient
.query<HowQueryQuery, HowQueryQueryVariables>(HowQueryDocument, {
id: "6WMOBLoBEhCWUtyQtw872A",
locale: "es-CL",
isPreview: Boolean(process.env.NEXT_PUBLIC_CONTENTFUL_IS_PREVIEW),
})
.toPromise();
const page = queryResults.data?.page as Page;
if (!page) return { props: {} };
const props: PageProps = {
howItems: page?.howBlockCollection,
followUsData: page?.followUsBlock,
GM_KEY: process.env.NEXT_PUBLIC_CONTENTFUL_API_GOOGLE_MAP,
seo: page?.seo || null,
};
return {
props,
};
}
OnSitePage.getLayout = DefaultPageLayout;