From 85c4c42bd601270d7be0f34a0767a34bb85e29bb Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Tue, 12 Dec 2023 18:50:03 +0100 Subject: refactor(hooks): rewrite useBreadcrumbs hook * use next/router to get the slug instead of using props * handle cases where the current page title is not provided * update JSON-LD schema to match the example in documentation * add tests --- src/pages/contact.tsx | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'src/pages/contact.tsx') diff --git a/src/pages/contact.tsx b/src/pages/contact.tsx index 9394ee8..264ca56 100644 --- a/src/pages/contact.tsx +++ b/src/pages/contact.tsx @@ -25,15 +25,13 @@ import { getWebPageSchema, } from '../utils/helpers'; import { loadTranslation } from '../utils/helpers/server'; -import { useBreadcrumb } from '../utils/hooks'; +import { useBreadcrumbs } from '../utils/hooks'; const ContactPage: NextPageWithLayout = () => { const { dates, intro, seo, title } = meta; const intl = useIntl(); - const { items: breadcrumbItems, schema: breadcrumbSchema } = useBreadcrumb({ - title, - url: ROUTES.CONTACT, - }); + const { items: breadcrumbItems, schema: breadcrumbSchema } = + useBreadcrumbs(title); const messages = { form: intl.formatMessage({ @@ -83,7 +81,11 @@ const ContactPage: NextPageWithLayout = () => { slug: ROUTES.CONTACT, title, }); - const schemaJsonLd = getSchemaJson([webpageSchema, contactSchema]); + const schemaJsonLd = getSchemaJson([ + webpageSchema, + contactSchema, + breadcrumbSchema, + ]); const submitMail: ContactFormSubmit = useCallback( async ({ email, message, name, object }) => { @@ -148,12 +150,6 @@ const ContactPage: NextPageWithLayout = () => { type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaJsonLd) }} /> -