@@ -4,7 +4,8 @@ import { useParams } from 'react-router-dom'
4
4
import { Interface } from 'ethers/lib/utils'
5
5
import { useEffect , useState , useRef , useMemo } from 'react'
6
6
import { AiOutlineSend } from 'react-icons/ai'
7
- import { BsFillImageFill , BsXLg } from 'react-icons/bs'
7
+ import { BsXLg } from 'react-icons/bs'
8
+ import FallbackImage from 'resources/icons/fallback.svg'
8
9
import * as blockies from 'blockies-ts'
9
10
import { useToasts } from 'hooks/toasts'
10
11
import {
@@ -14,7 +15,8 @@ import {
14
15
AddressBook ,
15
16
AddressWarning ,
16
17
ToolTip ,
17
- Panel
18
+ Panel ,
19
+ Image
18
20
} from 'components/common'
19
21
import ERC721Abi from 'ambire-common/src/constants/abis/ERC721Abi'
20
22
import { validateSendNftAddress } from 'lib/validations/formValidations'
@@ -24,22 +26,6 @@ import useConstants from 'hooks/useConstants'
24
26
25
27
const ERC721 = new Interface ( ERC721Abi )
26
28
27
- const handleUri = ( uri ) => {
28
- if ( ! uri ) return ''
29
- uri = uri . startsWith ( 'data:application/json' )
30
- ? uri . replace ( 'data:application/json;utf8,' , '' )
31
- : uri
32
-
33
- if ( uri . split ( '/' ) . length === 1 ) return `https://ipfs.io/ipfs/${ uri } `
34
- if ( uri . split ( '/' ) [ 0 ] === 'data:image' ) return uri
35
- if ( uri . startsWith ( 'ipfs://' ) )
36
- return uri . replace ( / i p f s : \/ \/ i p f s \/ | i p f s : \/ \/ / g, 'https://ipfs.io/ipfs/' )
37
- if ( uri . split ( '/' ) [ 2 ] && uri . split ( '/' ) [ 2 ] . endsWith ( 'mypinata.cloud' ) )
38
- return `https://ipfs.io/ipfs/${ uri . split ( '/' ) . slice ( 4 ) . join ( '/' ) } `
39
-
40
- return uri
41
- }
42
-
43
29
const Collectible = ( { portfolio, selectedAcc, selectedNetwork, addRequest, addressBook } ) => {
44
30
const {
45
31
constants : { humanizerInfo }
@@ -248,8 +234,14 @@ const Collectible = ({ portfolio, selectedAcc, selectedNetwork, addRequest, addr
248
234
</ div >
249
235
250
236
< div className = "metadata" >
251
- < div className = "image" style = { { backgroundImage : `url(${ handleUri ( metadata . image ) } )` } } >
252
- { ! metadata . image ? < BsFillImageFill /> : null }
237
+ < div className = "image" >
238
+ < Image
239
+ alt = ""
240
+ style = { { width :"100%" } }
241
+ src = { metadata . image }
242
+ fallbackImage = { FallbackImage }
243
+ size = { "100%" }
244
+ />
253
245
</ div >
254
246
< div className = "info" >
255
247
< div className = "name" > { metadata . name } </ div >
0 commit comments