diff --git a/apps/frontend/app/[locale]/compliance/page.tsx b/apps/frontend/app/[locale]/compliance/page.tsx index 8d7a747..a976a60 100644 --- a/apps/frontend/app/[locale]/compliance/page.tsx +++ b/apps/frontend/app/[locale]/compliance/page.tsx @@ -20,6 +20,7 @@ import { } from 'lucide-react'; import { Link } from '@/i18n/navigation'; import { LandingHeader, LandingFooter } from '@/components/layout'; +import { CONTROLLER } from '@/lib/legal/processing'; type RightKey = 'access' | 'rectification' | 'erasure' | 'portability'; type PrincipleKey = 'minimization' | 'retention' | 'integrity' | 'transparency'; @@ -43,6 +44,11 @@ const MEASURES: MeasureKey[] = ['technical', 'organizational']; const MEASURE_ITEMS = ['item1', 'item2', 'item3', 'item4', 'item5'] as const; const REGISTER_ITEMS = ['item1', 'item2', 'item3', 'item4', 'item5'] as const; +// Le lien de contact suit la realite : ecrire a une boite dpo@ qui +// n'existe pas laisserait une demande de droits sans destinataire. +const hasDpo = Boolean(CONTROLLER.dpo); +const contactAddress = CONTROLLER.dpo ?? CONTROLLER.privacyContact; + export default function CompliancePage() { const t = useTranslations('marketing.compliance'); const heroRef = useRef(null); @@ -120,10 +126,12 @@ export default function CompliancePage() { {t('badges.compliant')} -
- - {t('badges.dpo')} -
+ {hasDpo && ( +
+ + {t('badges.dpo')} +
+ )} @@ -197,10 +205,10 @@ export default function CompliancePage() { {t('rightsCta.login')} - {t('rightsCta.dpo')} + {hasDpo ? t('rightsCta.dpo') : t('rightsCta.contact')} @@ -279,7 +287,9 @@ export default function CompliancePage() { >

{t(`measures.${key}.title`)}