2021-05-10 07:47:41 +02:00
|
|
|
import Head from 'next/head';
|
|
|
|
import React from 'react';
|
|
|
|
import { GetServerSideProps } from 'next';
|
2021-05-27 02:52:28 +02:00
|
|
|
import { NAVIGATION, METADATA } from '../constants';
|
2021-05-10 07:47:41 +02:00
|
|
|
import { SideMenuItem } from '../state/navigation';
|
|
|
|
import { generateTitle, generateURL } from '../utils/metadata';
|
|
|
|
import { CmsApi } from '../services/cms';
|
|
|
|
import { IFAQItem } from '../types/cms';
|
|
|
|
import { Accordion } from '../components/Accordion';
|
2021-05-17 07:29:37 +02:00
|
|
|
import { Contained } from '../components/Contained';
|
2021-05-10 07:47:41 +02:00
|
|
|
|
2021-05-27 02:52:28 +02:00
|
|
|
export const getServerSideProps: GetServerSideProps = async () => {
|
2021-05-10 07:47:41 +02:00
|
|
|
const cms = new CmsApi();
|
|
|
|
|
|
|
|
const { faqItems, total } = await cms.fetchFAQItems();
|
|
|
|
|
|
|
|
return {
|
|
|
|
props: {
|
|
|
|
faqItems,
|
|
|
|
total,
|
|
|
|
},
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
faqItems: IFAQItem[];
|
|
|
|
total: number;
|
|
|
|
}
|
|
|
|
function FAQ(props: Props) {
|
2021-05-17 07:29:37 +02:00
|
|
|
const { faqItems } = props;
|
2021-05-10 07:47:41 +02:00
|
|
|
|
|
|
|
const pageTitle = generateTitle(
|
|
|
|
NAVIGATION.SIDE_MENU_ITEMS[SideMenuItem.FAQ].label,
|
|
|
|
);
|
|
|
|
const pageURL = generateURL(
|
|
|
|
NAVIGATION.SIDE_MENU_ITEMS[SideMenuItem.FAQ].href,
|
|
|
|
);
|
2021-05-27 02:52:28 +02:00
|
|
|
const imagePathLocal = 'img/faq.png';
|
2021-05-17 07:29:37 +02:00
|
|
|
const imageURL = `${METADATA.OXEN_HOST_URL}/${imagePathLocal}`;
|
2021-05-10 07:47:41 +02:00
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<Head>
|
|
|
|
<title>{pageTitle}</title>
|
2021-05-10 09:03:34 +02:00
|
|
|
<meta name="description" content={METADATA.FAQ.DESCRIPTION}></meta>
|
2021-05-10 07:47:41 +02:00
|
|
|
<meta property="og:title" content={pageTitle} key="ogtitle" />
|
|
|
|
<meta
|
|
|
|
property="og:description"
|
2021-05-10 09:03:34 +02:00
|
|
|
content={METADATA.FAQ.DESCRIPTION}
|
2021-05-10 07:47:41 +02:00
|
|
|
key="ogdesc"
|
|
|
|
/>
|
|
|
|
<meta property="og:type" content="website" />
|
2021-05-17 07:44:39 +02:00
|
|
|
<meta property="og:image" content={imageURL} key="ogimage" />
|
2021-05-10 07:47:41 +02:00
|
|
|
<meta property="og:url" content={pageURL} />
|
|
|
|
|
|
|
|
<link rel="canonical" href={pageURL}></link>
|
|
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
|
|
<meta name="twitter:title" content={pageTitle} />
|
2021-05-10 09:03:34 +02:00
|
|
|
<meta name="twitter:description" content={METADATA.FAQ.DESCRIPTION} />
|
2021-05-10 07:47:41 +02:00
|
|
|
<meta name="twitter:image" content={imageURL} />
|
|
|
|
</Head>
|
|
|
|
|
2021-05-17 07:29:37 +02:00
|
|
|
<div className="bg-alt">
|
|
|
|
<div className="relative flex items-center justify-center w-full h-full pt-3 bg-gradient-to-bl from-hyper to-blush">
|
|
|
|
<img
|
|
|
|
style={{ maxHeight: '33vh' }}
|
|
|
|
src={imagePathLocal}
|
|
|
|
className="object-contain w-full"
|
|
|
|
/>
|
2021-05-10 07:47:41 +02:00
|
|
|
</div>
|
|
|
|
|
2021-05-17 07:29:37 +02:00
|
|
|
<Contained>
|
|
|
|
<div className="flex flex-col pb-6 mx-4">
|
|
|
|
<div>
|
|
|
|
<h1 className="mt-6 mb-3 text-3xl font-medium text-left tablet:text-4xl font-prompt text-primary">
|
|
|
|
FAQ
|
|
|
|
</h1>
|
2021-05-10 07:47:41 +02:00
|
|
|
</div>
|
2021-05-17 07:29:37 +02:00
|
|
|
|
|
|
|
{faqItems.map(faqItem => (
|
|
|
|
<div key={faqItem.id}>
|
|
|
|
<Accordion
|
|
|
|
question={faqItem.question}
|
|
|
|
answer={faqItem.answer}
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
))}
|
|
|
|
</div>
|
|
|
|
</Contained>
|
2021-05-10 07:47:41 +02:00
|
|
|
</div>
|
|
|
|
</>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default FAQ;
|