1+ import { memo } from "react"
12import { fallbackTokenIconUrl } from "~/features/utils/index.ts"
23import "./TokenCard.css"
34
@@ -8,15 +9,15 @@ interface TokenCardProps {
89 onClick ?: ( ) => void
910}
1011
11- function TokenCard ( { id, logo, link, onClick } : TokenCardProps ) {
12+ const TokenCard = memo ( function TokenCard ( { id, logo, link, onClick } : TokenCardProps ) {
1213 if ( link ) {
1314 return (
1415 < a href = { link } >
1516 < div className = "token-card__container" >
1617 { /* We cannot use the normal Image/onError syntax as a fallback as the element is server rendered
1718 and the onerror does not seem to work correctly. Using Picture will also not work. */ }
18- < object data = { logo } type = "image/png" >
19- < img src = { fallbackTokenIconUrl } alt = " " />
19+ < object data = { logo } type = "image/png" aria-label = { ` ${ id } token logo` } >
20+ < img src = { fallbackTokenIconUrl } alt = { ` ${ id } token logo` } loading = "lazy " />
2021 </ object >
2122 < h3 > { id } </ h3 >
2223 </ div >
@@ -26,23 +27,23 @@ function TokenCard({ id, logo, link, onClick }: TokenCardProps) {
2627
2728 if ( onClick ) {
2829 return (
29- < div className = "token-card__container" onClick = { onClick } role = "button" >
30- < object data = { logo } type = "image/png" >
31- < img src = { fallbackTokenIconUrl } alt = " " />
30+ < button type = "button" className = "token-card__container" onClick = { onClick } aria-label = { `View ${ id } token details` } >
31+ < object data = { logo } type = "image/png" aria-label = { ` ${ id } token logo` } >
32+ < img src = { fallbackTokenIconUrl } alt = { ` ${ id } token logo` } loading = "lazy " />
3233 </ object >
3334 < h3 > { id } </ h3 >
34- </ div >
35+ </ button >
3536 )
3637 }
3738
3839 return (
3940 < div className = "token-card__container" >
4041 < object data = { logo } type = "image/png" >
41- < img src = { fallbackTokenIconUrl } alt = "" />
42+ < img src = { fallbackTokenIconUrl } alt = "" loading = "lazy" />
4243 </ object >
4344 < h3 > { id } </ h3 >
4445 </ div >
4546 )
46- }
47+ } )
4748
4849export default TokenCard
0 commit comments