From 1eb887368103de55153effa691190700b205096d Mon Sep 17 00:00:00 2001 From: Pedro Martin Date: Mon, 11 Nov 2024 13:51:41 +0000 Subject: [PATCH] feat: localised support banner --- .../src/components/support-banner/index.tsx | 49 ++++++++++++++----- website/src/models/banners/banner.ts | 1 + 2 files changed, 39 insertions(+), 11 deletions(-) diff --git a/website/src/components/support-banner/index.tsx b/website/src/components/support-banner/index.tsx index 90c8f3d..287ffc3 100644 --- a/website/src/components/support-banner/index.tsx +++ b/website/src/components/support-banner/index.tsx @@ -1,29 +1,56 @@ import styles from './index.module.scss'; +import { documentToReactComponents } from '@contentful/rich-text-react-renderer'; +import { getClient } from '@graphql/client'; +import { + GetBannerDocument, + type GetBannerQuery, +} from '@graphql/queries/banner/index.generated'; import type { AvailableLocale } from '@i18n/locales'; +import { supportUsBannerId } from '@models/banners/banner'; interface SupportBannerProps { lang: AvailableLocale; } -const SupportBanner: React.FC = ({ lang }) => { +const SupportBanner: React.FC = async ({ lang }) => { + const { query } = getClient(); + + const { + data: { banner }, + error, + } = await query({ + query: GetBannerDocument, + variables: { + id: supportUsBannerId, + locale: lang, + }, + }); + + if (error || !banner) { + return null; + } + + const { heading, content, cta, image } = banner; + + const headingContent = heading?.content ?? ''; + const textContent = documentToReactComponents(content?.content?.json); + const ctaContent = cta?.content ?? ''; + const ctaUrl = cta?.href ?? '/'; + const imageUrl = image?.url ?? ''; + return (
-

Support our work

-

- There are plenty of ways to help. You can support us by donating, - volunteering a few hours a month or helping us fundraise. Help us - fulfill our mission! -

- - Support us +

{headingContent}

+ {textContent} +
+ {ctaContent}
diff --git a/website/src/models/banners/banner.ts b/website/src/models/banners/banner.ts index 4908b7f..96c5ac8 100644 --- a/website/src/models/banners/banner.ts +++ b/website/src/models/banners/banner.ts @@ -1 +1,2 @@ export const homePageBannerId = '3q7tOCfyVIeSMPS9kZchMu'; +export const supportUsBannerId = '1fsH8gLkk90N92o6Fv0ajd';