File tree 1 file changed +16
-3
lines changed
1 file changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -18,23 +18,36 @@ const getUrl = pathname => {
18
18
} ;
19
19
20
20
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
+ } ;
22
26
let _src = src ;
23
27
const router = useRouter ( ) ;
24
28
if ( ! src ?. startsWith ( 'http' ) ) {
25
29
const path = src . startsWith ( '/' ) ? '' : getUrl ( router . pathname ) ;
26
30
_src = `${ imgix + path + src + params } ` ;
27
31
}
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
+ } ;
29
41
} ;
30
42
31
43
export const Img : React . FC < BoxProps & { loading ?: string ; src ?: string ; alt ?: string } > = ( {
32
44
src : _src ,
33
45
...rest
34
46
} ) => {
35
- const src = useImgix ( _src ) ;
47
+ const { src, srcset } = useImgix ( _src ) ;
36
48
const props = {
37
49
src,
50
+ srcSet : srcset ,
38
51
...rest ,
39
52
} ;
40
53
return < Box loading = "lazy" maxWidth = "100%" display = "block" as = "img" { ...props } /> ;
You can’t perform that action at this time.
0 commit comments