Skip to content

Commit 1c7c618

Browse files
committed
feat: src and srcSet, better sizes
1 parent 9dc3f47 commit 1c7c618

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/components/mdx/image.tsx

+16-3
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,36 @@ const getUrl = pathname => {
1818
};
1919

2020
const useImgix = (src: string) => {
21-
if (process.env.NODE_ENV !== 'production' || !src) return src;
21+
if (process.env.NODE_ENV !== 'production' || !src)
22+
return {
23+
src,
24+
srcset: undefined,
25+
};
2226
let _src = src;
2327
const router = useRouter();
2428
if (!src?.startsWith('http')) {
2529
const path = src.startsWith('/') ? '' : getUrl(router.pathname);
2630
_src = `${imgix + path + src + params}`;
2731
}
28-
return _src;
32+
const srcset = `${_src}&w=860&dpr=1&fit=max 1x,
33+
${_src}&w=480&fit=max&q=40&dpr=2 2x,
34+
${_src}&w=480&fit=max&q=20&dpr=3 3x`;
35+
36+
const base = `${_src}&w=720&dpr=1&fit=max`;
37+
return {
38+
srcset,
39+
src: base,
40+
};
2941
};
3042

3143
export const Img: React.FC<BoxProps & { loading?: string; src?: string; alt?: string }> = ({
3244
src: _src,
3345
...rest
3446
}) => {
35-
const src = useImgix(_src);
47+
const { src, srcset } = useImgix(_src);
3648
const props = {
3749
src,
50+
srcSet: srcset,
3851
...rest,
3952
};
4053
return <Box loading="lazy" maxWidth="100%" display="block" as="img" {...props} />;

0 commit comments

Comments
 (0)