import type { GetStaticProps } from 'next'; import dynamic from 'next/dynamic'; import Head from 'next/head'; import { useIntl } from 'react-intl'; import { getLayout, Page, PageHeader, PageSidebar, Heading, PageBody, } from '../components'; import { mdxComponents } from '../components/mdx'; import LegalNoticeContent, { meta } from '../content/pages/legal-notice.mdx'; import type { NextPageWithLayout } from '../types'; import { CONFIG } from '../utils/config'; import { ROUTES } from '../utils/constants'; import { getSchemaFrom, getWebPageGraph } from '../utils/helpers'; import { loadTranslation } from '../utils/helpers/server'; import { useBreadcrumbs, useHeadingsTree } from '../utils/hooks'; const Toc = dynamic( async () => import('../components').then((mod) => mod.TocWidget), { ssr: false, } ); /** * Legal Notice page. */ const LegalNoticePage: NextPageWithLayout = () => { const intl = useIntl(); const { dates, intro, seo, title } = meta; const { items: breadcrumbItems, schema: breadcrumbSchema } = useBreadcrumbs(title); const { ref, tree } = useHeadingsTree({ fromLevel: 2 }); const jsonLd = getSchemaFrom([ getWebPageGraph({ breadcrumb: breadcrumbSchema, copyrightYear: new Date(dates.publication).getFullYear(), dates, description: intro, slug: ROUTES.LEGAL_NOTICE, title, }), ]); const page = { title: `${seo.title} - ${CONFIG.name}`, url: `${CONFIG.url}${ROUTES.LEGAL_NOTICE}`, }; const tocTitle = intl.formatMessage({ defaultMessage: 'Table of Contents', description: 'PageLayout: table of contents title', id: 'eys2uX', }); return ( {page.title} {/*eslint-disable-next-line react/jsx-no-literals -- Name allowed */} {/*eslint-disable-next-line react/jsx-no-literals -- Content allowed */}