All files / src/pages landing.tsx

80% Statements 4/5
100% Branches 0/0
50% Functions 1/2
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 83 84 85 86 87                          1x 2x   2x                                                                                                                             1x              
import { GetServerSideProps } from 'next'
import { Trans, useTranslation } from 'next-i18next'
import { NextSeo } from 'next-seo'
import Link from 'next/link'
 
import AlertBlock from '../components/AlertBlock'
import Collapse from '../components/Collapse'
import ExampleImage from '../components/ExampleImage'
import Layout from '../components/Layout'
import LinkButton from '../components/LinkButton'
import { pageWithServerSideTranslations } from '../lib/utils/next-i18next-utils'
import { getDCTermsTitle } from '../lib/utils/seo-utils'
 
const Landing = () => {
  const { t } = useTranslation('landing')
 
  return (
    <Layout>
      <NextSeo
        title={t('do-you-have.question')}
        additionalMetaTags={[getDCTermsTitle(t('header'))]}
      />
      <AlertBlock page="landing" />
      <h1 id="main-header" className="h1" tabIndex={-1}>
        {t('do-you-have.question')}
      </h1>
      <div className="max-w-prose">
        <h2 className="h2 mb-6">{t('where-to-find.header')}</h2>
        <Collapse title={t('where-to-find.applied-by-mail.header')}>
          <p>
            <Trans
              i18nKey="where-to-find.applied-by-mail.text"
              ns="landing"
              components={{ Link: <Link href="/email" /> }}
            />
          </p>
        </Collapse>
        <Collapse title={t('where-to-find.applied-in-person.header')}>
          <p>{t('where-to-find.applied-in-person.text')}</p>
          <div className="mt-5 max-w-prose">
            <ExampleImage
              imageProps={{
                src: t('receipt-image-1.src'),
                alt: t('receipt-image-1.alt'),
                width: 500,
                height: 785,
              }}
            >
              <Trans i18nKey="receipt-image-1.descriptive-text" ns="landing" />
            </ExampleImage>
          </div>
        </Collapse>
        <Collapse title={t('if-lost.header')}>
          <p>
            <Trans
              i18nKey="if-lost.text"
              ns="landing"
              components={{ Link: <Link href="/email" /> }}
            />
          </p>
        </Collapse>
 
        <div className="mb-4 mt-8 flex flex-wrap gap-6 md:flex-nowrap">
          <div className="w-full">
            <LinkButton href="/status" fullWidth style="primary" id="with-esrf">
              {t('do-you-have.with-reference')}
            </LinkButton>
          </div>
          <div className="mb-8 w-full">
            <LinkButton href="/email" fullWidth id="without-esrf">
              {t('do-you-have.without-reference')}
            </LinkButton>
          </div>
        </div>
      </div>
    </Layout>
  )
}
 
export const getServerSideProps: GetServerSideProps = async ({ locale }) => ({
  props: {
    ...(await pageWithServerSideTranslations(locale, 'landing')),
  },
})
 
export default Landing