diff options
Diffstat (limited to 'src/pages/projets')
| -rw-r--r-- | src/pages/projets/[slug].tsx | 27 | ||||
| -rw-r--r-- | src/pages/projets/index.tsx | 22 | 
2 files changed, 19 insertions, 30 deletions
| diff --git a/src/pages/projets/[slug].tsx b/src/pages/projets/[slug].tsx index 711a5cd..1a90e0f 100644 --- a/src/pages/projets/[slug].tsx +++ b/src/pages/projets/[slug].tsx @@ -3,7 +3,6 @@ import SocialLink, { SocialWebsite } from '@components/atoms/links/social-link';  import Spinner from '@components/atoms/loaders/spinner';  import ResponsiveImage from '@components/molecules/images/responsive-image';  import Code from '@components/molecules/layout/code'; -import { BreadcrumbItem } from '@components/molecules/nav/breadcrumb';  import Gallery from '@components/organisms/images/gallery';  import Overview, { OverviewMeta } from '@components/organisms/layout/overview';  import Sharing from '@components/organisms/widgets/sharing'; @@ -14,6 +13,7 @@ import { ProjectPreview, Repos } from '@ts/types/app';  import { loadTranslation, Messages } from '@utils/helpers/i18n';  import { getProjectData, getProjectFilenames } from '@utils/helpers/projects';  import { capitalize } from '@utils/helpers/strings'; +import useBreadcrumb from '@utils/hooks/use-breadcrumb';  import useGithubApi, { RepoData } from '@utils/hooks/use-github-api';  import useSettings from '@utils/hooks/use-settings';  import { MDXComponents, NestedMDXComponents } from 'mdx/types'; @@ -37,21 +37,10 @@ const ProjectPage: NextPage<ProjectPageProps> = ({ project }) => {    const { id, intro, meta, title } = project;    const { cover, dates, license, repos, seo, technologies } = meta;    const intl = useIntl(); -  const homeLabel = intl.formatMessage({ -    defaultMessage: 'Home', -    description: 'Breadcrumb: home label', -    id: 'j5k9Fe', +  const { items: breadcrumbItems, schema: breadcrumbSchema } = useBreadcrumb({ +    title, +    url: `/projets/${id}`,    }); -  const projectsLabel = intl.formatMessage({ -    defaultMessage: 'Projects', -    description: 'Breadcrumb: projects label', -    id: '28GZdv', -  }); -  const breadcrumb: BreadcrumbItem[] = [ -    { id: 'home', name: homeLabel, url: '/' }, -    { id: 'projects', name: projectsLabel, url: '/projets' }, -    { id: 'project', name: title, url: `/projets/${id}` }, -  ];    const ProjectContent: ComponentType<MDXComponents> =      require(`../../content/projects/${id}.mdx`).default; @@ -192,7 +181,8 @@ const ProjectPage: NextPage<ProjectPageProps> = ({ project }) => {        <PageLayout          title={title}          intro={intro} -        breadcrumb={breadcrumb} +        breadcrumb={breadcrumbItems} +        breadcrumbSchema={breadcrumbSchema}          headerMeta={headerMeta}          withToC={true}          widgets={[ @@ -217,7 +207,10 @@ const ProjectPage: NextPage<ProjectPageProps> = ({ project }) => {    );  }; -export const getStaticProps: GetStaticProps = async ({ locale, params }) => { +export const getStaticProps: GetStaticProps<ProjectPageProps> = async ({ +  locale, +  params, +}) => {    const translation = await loadTranslation(locale);    const { slug } = params!;    const project = await getProjectData(slug as string); diff --git a/src/pages/projets/index.tsx b/src/pages/projets/index.tsx index a6858c8..4a58269 100644 --- a/src/pages/projets/index.tsx +++ b/src/pages/projets/index.tsx @@ -1,5 +1,4 @@  import Link from '@components/atoms/links/link'; -import { BreadcrumbItem } from '@components/molecules/nav/breadcrumb';  import CardsList, {    CardsListItem,  } from '@components/organisms/layout/cards-list'; @@ -9,13 +8,13 @@ import styles from '@styles/pages/projects.module.scss';  import { ProjectCard } from '@ts/types/app';  import { loadTranslation, Messages } from '@utils/helpers/i18n';  import { getProjectsCard } from '@utils/helpers/projects'; +import useBreadcrumb from '@utils/hooks/use-breadcrumb';  import useSettings from '@utils/hooks/use-settings';  import { NestedMDXComponents } from 'mdx/types';  import { GetStaticProps, NextPage } from 'next';  import Head from 'next/head';  import { useRouter } from 'next/router';  import Script from 'next/script'; -import { useIntl } from 'react-intl';  import { Article, Graph, WebPage } from 'schema-dts';  type ProjectsPageProps = { @@ -27,17 +26,11 @@ type ProjectsPageProps = {   * Projects page.   */  const ProjectsPage: NextPage<ProjectsPageProps> = ({ projects }) => { -  const intl = useIntl();    const { dates, seo, title } = meta; -  const homeLabel = intl.formatMessage({ -    defaultMessage: 'Home', -    description: 'Breadcrumb: home label', -    id: 'j5k9Fe', +  const { items: breadcrumbItems, schema: breadcrumbSchema } = useBreadcrumb({ +    title, +    url: `/projets`,    }); -  const breadcrumb: BreadcrumbItem[] = [ -    { id: 'home', name: homeLabel, url: '/' }, -    { id: 'projects', name: title, url: '/projets' }, -  ];    const items: CardsListItem[] = projects.map(      ({ id, meta: projectMeta, slug, title: projectTitle }) => { @@ -120,7 +113,8 @@ const ProjectsPage: NextPage<ProjectsPageProps> = ({ projects }) => {        <PageLayout          title={title}          intro={<PageContent components={components} />} -        breadcrumb={breadcrumb} +        breadcrumb={breadcrumbItems} +        breadcrumbSchema={breadcrumbSchema}        >          <CardsList items={items} titleLevel={2} className={styles.list} />        </PageLayout> @@ -128,7 +122,9 @@ const ProjectsPage: NextPage<ProjectsPageProps> = ({ projects }) => {    );  }; -export const getStaticProps: GetStaticProps = async ({ locale }) => { +export const getStaticProps: GetStaticProps<ProjectsPageProps> = async ({ +  locale, +}) => {    const projects = await getProjectsCard();    const translation = await loadTranslation(locale); | 
