Skip to content

Commit b06fcd6

Browse files
authored
Merge pull request #294 from totakoko/allow_card_images_lazy_loading
Ajoute nativeImgProps pour les Card
2 parents 9a2c192 + 2dd9f1c commit b06fcd6

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/Card.tsx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
import React, { memo, forwardRef, type ReactNode, type CSSProperties } from "react";
1+
import React, {
2+
memo,
3+
forwardRef,
4+
type ReactNode,
5+
type CSSProperties,
6+
DetailedHTMLProps,
7+
ImgHTMLAttributes
8+
} from "react";
29
import { symToStr } from "tsafe/symToStr";
310
import { assert } from "tsafe/assert";
411
import type { Equals } from "tsafe";
@@ -88,20 +95,23 @@ export namespace CardProps {
8895
imageUrl: string;
8996
imageAlt: string;
9097
imageComponent?: never;
98+
nativeImgProps?: DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>;
9199
};
92100

93101
export type WithImageComponent = {
94102
badge?: ReactNode;
95103
imageUrl?: never;
96104
imageAlt?: never;
97105
imageComponent: ReactNode;
106+
nativeImgProps?: never;
98107
};
99108

100109
export type WithoutImage = {
101110
badge?: never;
102111
imageUrl?: never;
103112
imageAlt?: never;
104113
imageComponent?: never;
114+
nativeImgProps?: never;
105115
};
106116
}
107117

@@ -118,6 +128,7 @@ export const Card = memo(
118128
imageUrl,
119129
imageAlt,
120130
imageComponent,
131+
nativeImgProps,
121132
start,
122133
detail,
123134
end,
@@ -224,9 +235,14 @@ export const Card = memo(
224235
<div className={cx(fr.cx("fr-card__header"), classes.header)}>
225236
<div className={cx(fr.cx("fr-card__img"), classes.img)}>
226237
<img
227-
className={cx(fr.cx("fr-responsive-img"), classes.imgTag)}
228238
src={imageUrl}
229239
alt={imageAlt}
240+
{...nativeImgProps}
241+
className={cx(
242+
fr.cx("fr-responsive-img"),
243+
classes.imgTag,
244+
nativeImgProps?.className
245+
)}
230246
/>
231247
</div>
232248
{badge !== undefined && (

0 commit comments

Comments
 (0)