Skip to content

Commit 0e3373b

Browse files
committed
Allow dynamic extensions
1 parent 8c51df1 commit 0e3373b

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from 'react';
2+
import Img from 'react-optimized-image';
3+
4+
const imageName = 'image.png';
5+
6+
export default () => (
7+
<div>
8+
<Img src={require(`./${imageName}`)} webp />
9+
</div>
10+
);
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import React from 'react';
2+
import Img from 'react-optimized-image';
3+
const imageName = 'image.png';
4+
export default () => (
5+
<div>
6+
<Img
7+
src={require(`./${imageName}`)}
8+
webp
9+
rawSrc={{
10+
fallback: {
11+
original: {
12+
1: require(`./${imageName}?url`),
13+
},
14+
},
15+
webp: {
16+
original: {
17+
1: require(`./${imageName}?webp`),
18+
},
19+
},
20+
}}
21+
/>
22+
</div>
23+
);

src/plugin/utils/resolveJsxComponent.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,8 @@ const resolveJsxComponent = (types: Babel['types'], path: NodePath<JSXElement>):
390390

391391
const requireName = getRelevantRequireString(types, srcAttribute);
392392

393-
if (!requireName || !requireName.match(/\.(jpe?g|png|svg|gif|webp)($|\?)/gi)) {
393+
// check if the imported src is not an image in case an extension is present
394+
if ((!requireName || !requireName.match(/\.(jpe?g|png|svg|gif|webp)($|\?)/gi)) && requireName !== '') {
394395
return;
395396
}
396397

0 commit comments

Comments
 (0)