fix contract
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
'use client'
|
||||
|
||||
import { useMarketplacePreferences } from '@/components/MarketplaceShell'
|
||||
import { type FooterPageSlug, getFooterPageContent } from '@/lib/footerContent'
|
||||
|
||||
const pageMeta = {
|
||||
en: {
|
||||
kicker: 'Footer information',
|
||||
cta: 'Need more details?',
|
||||
support: 'Contact the RentalDriveGo team through our official channels for business, support, or partnership requests.',
|
||||
},
|
||||
fr: {
|
||||
kicker: 'Informations du pied de page',
|
||||
cta: 'Besoin de plus de détails ?',
|
||||
support: 'Contactez l’équipe RentalDriveGo via nos canaux officiels pour toute demande commerciale, support ou partenariat.',
|
||||
},
|
||||
ar: {
|
||||
kicker: 'معلومات التذييل',
|
||||
cta: 'هل تحتاج إلى مزيد من التفاصيل؟',
|
||||
support: 'تواصل مع فريق RentalDriveGo عبر القنوات الرسمية للاستفسارات التجارية أو الدعم أو الشراكات.',
|
||||
},
|
||||
} as const
|
||||
|
||||
export default function FooterContentPage({ slug }: { slug: FooterPageSlug }) {
|
||||
const { language } = useMarketplacePreferences()
|
||||
const content = getFooterPageContent(language, slug)
|
||||
const meta = pageMeta[language]
|
||||
const isArabic = language === 'ar'
|
||||
|
||||
return (
|
||||
<main className="min-h-screen bg-stone-50">
|
||||
<div className="mx-auto max-w-4xl px-4 py-16 sm:px-6 lg:px-8">
|
||||
<section className="overflow-hidden rounded-[2rem] border border-stone-200 bg-white shadow-[0_30px_80px_rgba(12,18,28,0.08)]">
|
||||
<div className="bg-[linear-gradient(135deg,#f8fafc,white_45%,#fef3c7)] px-6 py-10 sm:px-10 sm:py-14">
|
||||
<p className="text-sm font-semibold uppercase tracking-[0.24em] text-amber-700">
|
||||
{meta.kicker}
|
||||
</p>
|
||||
<h1 className="mt-4 text-4xl font-black tracking-tight text-stone-900 sm:text-5xl">
|
||||
{content.title}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div className={`space-y-6 px-6 py-10 sm:px-10 sm:py-12 ${isArabic ? 'text-right' : 'text-left'}`}>
|
||||
{content.paragraphs.map((paragraph) => (
|
||||
<p key={paragraph} className="text-lg leading-8 text-stone-700">
|
||||
{paragraph}
|
||||
</p>
|
||||
))}
|
||||
|
||||
<div className="rounded-3xl border border-amber-200 bg-amber-50 px-6 py-5 text-stone-700">
|
||||
<p className="text-sm font-semibold uppercase tracking-[0.18em] text-amber-800">
|
||||
{meta.cta}
|
||||
</p>
|
||||
<p className="mt-2 text-base leading-7">{meta.support}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
)
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import Image from 'next/image'
|
||||
import Link from 'next/link'
|
||||
import { createContext, useContext, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { usePathname, useRouter } from 'next/navigation'
|
||||
import { footerPageHref } from '@/lib/footerContent'
|
||||
import { MARKETPLACE_LANGUAGE_COOKIE, SHARED_LANGUAGE_COOKIE, isMarketplaceLanguage, type MarketplaceLanguage } from '@/lib/i18n'
|
||||
import { resolveBrowserAppUrl } from '@/lib/appUrls'
|
||||
import { SHARED_LANGUAGE_KEY, SHARED_THEME_KEY, readCurrentUserScopedPreference, readScopedPreference, writeScopedPreference } from '@/lib/preferences'
|
||||
@@ -94,19 +95,17 @@ function getFooterContent(language: MarketplaceLanguage): {
|
||||
case 'fr':
|
||||
return {
|
||||
primary: [
|
||||
{ label: 'À propos', href: '/' },
|
||||
{ label: 'CLUF' },
|
||||
{ label: "Conditions d'utilisation" },
|
||||
{ label: 'Sécurité' },
|
||||
{ label: 'Conformité' },
|
||||
{ label: 'Politique de confidentialité' },
|
||||
{ label: 'Politique de cookies' },
|
||||
{ label: "Programme d'affiliation" },
|
||||
{ label: 'À propos de nous', href: footerPageHref['about-us'] },
|
||||
{ label: 'Conditions d’utilisation', href: footerPageHref['terms-of-service'] },
|
||||
{ label: 'Sécurité', href: footerPageHref.security },
|
||||
{ label: 'Conformité', href: footerPageHref.compliance },
|
||||
{ label: 'Politique de confidentialité', href: footerPageHref['privacy-policy'] },
|
||||
{ label: 'Politique relative aux cookies', href: footerPageHref['cookie-policy'] },
|
||||
],
|
||||
secondary: [
|
||||
{ label: 'Newsletter' },
|
||||
{ label: 'Contacter les ventes', href: `${resolveBrowserAppUrl(process.env.NEXT_PUBLIC_DASHBOARD_URL ?? 'http://localhost:3001')}/sign-in` },
|
||||
{ label: 'Nos bureaux', href: '/' },
|
||||
{ label: 'Newsletter', href: footerPageHref.newsletter },
|
||||
{ label: 'Contacter les ventes', href: footerPageHref['contact-sales'] },
|
||||
{ label: 'Nos bureaux', href: footerPageHref['our-offices'] },
|
||||
],
|
||||
localeLabel: 'Europ (French)',
|
||||
rightsLabel: 'Tous droits réservés.',
|
||||
@@ -114,19 +113,17 @@ function getFooterContent(language: MarketplaceLanguage): {
|
||||
case 'ar':
|
||||
return {
|
||||
primary: [
|
||||
{ label: 'من نحن', href: '/' },
|
||||
{ label: 'اتفاقية الترخيص' },
|
||||
{ label: 'شروط الخدمة' },
|
||||
{ label: 'الأمان' },
|
||||
{ label: 'الامتثال' },
|
||||
{ label: 'سياسة الخصوصية' },
|
||||
{ label: 'سياسة ملفات الارتباط' },
|
||||
{ label: 'برنامج الشركاء' },
|
||||
{ label: 'من نحن', href: footerPageHref['about-us'] },
|
||||
{ label: 'شروط الاستخدام', href: footerPageHref['terms-of-service'] },
|
||||
{ label: 'الأمان', href: footerPageHref.security },
|
||||
{ label: 'الامتثال', href: footerPageHref.compliance },
|
||||
{ label: 'سياسة الخصوصية', href: footerPageHref['privacy-policy'] },
|
||||
{ label: 'سياسة ملفات تعريف الارتباط', href: footerPageHref['cookie-policy'] },
|
||||
],
|
||||
secondary: [
|
||||
{ label: 'النشرة البريدية' },
|
||||
{ label: 'تواصل مع المبيعات', href: `${resolveBrowserAppUrl(process.env.NEXT_PUBLIC_DASHBOARD_URL ?? 'http://localhost:3001')}/sign-in` },
|
||||
{ label: 'مكاتبنا', href: '/' },
|
||||
{ label: 'النشرة الإخبارية', href: footerPageHref.newsletter },
|
||||
{ label: 'تواصل مع المبيعات', href: footerPageHref['contact-sales'] },
|
||||
{ label: 'مكاتبنا', href: footerPageHref['our-offices'] },
|
||||
],
|
||||
localeLabel: 'NorthAfrica (Arabic)',
|
||||
rightsLabel: 'جميع الحقوق محفوظة.',
|
||||
@@ -135,19 +132,17 @@ function getFooterContent(language: MarketplaceLanguage): {
|
||||
default:
|
||||
return {
|
||||
primary: [
|
||||
{ label: 'About us', href: '/' },
|
||||
{ label: 'EULA' },
|
||||
{ label: 'Terms of service' },
|
||||
{ label: 'Security' },
|
||||
{ label: 'Compliance' },
|
||||
{ label: 'Privacy policy' },
|
||||
{ label: 'Cookie policy' },
|
||||
{ label: 'Affiliate program' },
|
||||
{ label: 'About Us', href: footerPageHref['about-us'] },
|
||||
{ label: 'Terms of Service', href: footerPageHref['terms-of-service'] },
|
||||
{ label: 'Security', href: footerPageHref.security },
|
||||
{ label: 'Compliance', href: footerPageHref.compliance },
|
||||
{ label: 'Privacy Policy', href: footerPageHref['privacy-policy'] },
|
||||
{ label: 'Cookie Policy', href: footerPageHref['cookie-policy'] },
|
||||
],
|
||||
secondary: [
|
||||
{ label: 'Newsletter' },
|
||||
{ label: 'Contact sales', href: `${resolveBrowserAppUrl(process.env.NEXT_PUBLIC_DASHBOARD_URL ?? 'http://localhost:3001')}/sign-in` },
|
||||
{ label: 'Our offices', href: '/' },
|
||||
{ label: 'Newsletter', href: footerPageHref.newsletter },
|
||||
{ label: 'Contact Sales', href: footerPageHref['contact-sales'] },
|
||||
{ label: 'Our Offices', href: footerPageHref['our-offices'] },
|
||||
],
|
||||
localeLabel: 'Global (English)',
|
||||
rightsLabel: 'All rights reserved.',
|
||||
|
||||
Reference in New Issue
Block a user