@@ -22,6 +22,7 @@ export type FooterProps = {
2222 cookiesManagementLinkProps ?: RegisteredLinkProps ;
2323 homeLinkProps : RegisteredLinkProps & { title : string } ;
2424 bottomItems ?: FooterProps . BottomItem [ ] ;
25+ partnersLogos ?: FooterProps . PartnersLogos ;
2526 operatorLogo ?: {
2627 orientation : "horizontal" | "vertical" ;
2728 /**
@@ -79,6 +80,19 @@ export namespace FooterProps {
7980 > ;
8081 } ;
8182 }
83+
84+ export type PartnersLogos = {
85+ main : PartnersLogos . Logo ;
86+ sub ?: PartnersLogos . Logo [ ] ;
87+ } ;
88+
89+ export namespace PartnersLogos {
90+ export type Logo = {
91+ alt : string ;
92+ href : string ;
93+ imgUrl : string ;
94+ } ;
95+ }
8296}
8397
8498/** @see <https://react-dsfr-components.etalab.studio/?path=/docs/components-footer> */
@@ -97,6 +111,7 @@ export const Footer = memo(
97111 personalDataLinkProps,
98112 cookiesManagementLinkProps,
99113 bottomItems = [ ] ,
114+ partnersLogos,
100115 operatorLogo,
101116 license,
102117 style,
@@ -205,6 +220,53 @@ export const Footer = memo(
205220 </ ul >
206221 </ div >
207222 </ div >
223+ { partnersLogos && (
224+ < div className = { fr . cx ( "fr-footer__partners" ) } >
225+ < h4 className = { fr . cx ( "fr-footer__partners-title" ) } >
226+ { t ( "our partners" ) }
227+ </ h4 >
228+ < div className = { fr . cx ( "fr-footer__partners-logos" ) } >
229+ < div className = { fr . cx ( "fr-footer__partners-main" ) } >
230+ < a
231+ target = "_blank"
232+ href = { partnersLogos . main . href }
233+ className = { fr . cx ( "fr-footer__partners-link" ) }
234+ >
235+ < img
236+ alt = { partnersLogos . main . alt }
237+ style = { { height : "5.625rem" } }
238+ src = { partnersLogos . main . imgUrl }
239+ className = { fr . cx ( "fr-footer__logo" ) }
240+ />
241+ </ a >
242+ </ div >
243+ { partnersLogos . sub && (
244+ < div className = { fr . cx ( "fr-footer__partners-sub" ) } >
245+ < ul >
246+ { partnersLogos . sub . map ( logo => (
247+ < li >
248+ < a
249+ target = "_blank"
250+ href = { logo . href }
251+ className = { fr . cx (
252+ "fr-footer__partners-link"
253+ ) }
254+ >
255+ < img
256+ alt = { logo . alt }
257+ src = { logo . imgUrl }
258+ style = { { height : "5.625rem" } }
259+ className = { fr . cx ( "fr-footer__logo" ) }
260+ />
261+ </ a >
262+ </ li >
263+ ) ) }
264+ </ ul >
265+ </ div >
266+ ) }
267+ </ div >
268+ </ div >
269+ ) }
208270 < div className = { cx ( fr . cx ( "fr-footer__bottom" ) , classes . bottom ) } >
209271 < ul className = { cx ( fr . cx ( "fr-footer__bottom-list" ) , classes . bottomList ) } >
210272 { [
@@ -329,7 +391,8 @@ const { useTranslation, addFooterTranslations } = createComponentI18nApi({
329391 "personal data" : "Données personnelles" ,
330392 "cookies management" : "Gestion des cookies" ,
331393 "license mention" : "Sauf mention contraire, tous les contenus de ce site sont sous" ,
332- "etalab license" : "licence etalab-2.0"
394+ "etalab license" : "licence etalab-2.0" ,
395+ "our partners" : "Nos partenaires"
333396 /* spell-checker: enable */
334397 }
335398} ) ;
0 commit comments