1
1
/**
2
- * Copyright 2021 Shift Crypto AG
2
+ * Copyright 2021-2025 Shift Crypto AG
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
@@ -20,16 +20,17 @@ import BitcoinSuisseLogo from '@/assets/exchanges/logos/bitcoin_suisse.png';
20
20
import BittrLogo from '@/assets/exchanges/logos/bittr.png' ;
21
21
import BityLogo from '@/assets/exchanges/logos/bity.png' ;
22
22
import PocketBitcoinLogo from '@/assets/exchanges/logos/pocketbitcoin.svg' ;
23
+ import RelaiLogo from '@/assets/exchanges/logos/relai.svg' ;
23
24
24
25
type TVASPProps = {
25
- fallback ?: JSX . Element ;
26
- hostname : string ;
27
- prominent ?: boolean ;
28
- withLogoText ?: string ;
26
+ fallback ?: JSX . Element ;
27
+ hostname : string ;
28
+ prominent ?: boolean ;
29
+ withLogoText ?: string ;
29
30
}
30
31
31
32
type TVASPMap = {
32
- [ hostname : string ] : string
33
+ [ hostname : string ] : string ;
33
34
}
34
35
35
36
const VASPLogoMap : TVASPMap = {
@@ -39,6 +40,7 @@ const VASPLogoMap: TVASPMap = {
39
40
'bity.com' : BityLogo ,
40
41
'getbittr.com' : BittrLogo ,
41
42
'pocketbitcoin.com' : PocketBitcoinLogo ,
43
+ 'relai.app' : RelaiLogo ,
42
44
} ;
43
45
44
46
const VASPHostnameMap : TVASPMap = {
@@ -52,16 +54,21 @@ export const Vasp = ({
52
54
prominent,
53
55
withLogoText,
54
56
} : TVASPProps ) => {
55
- const hasLogo = hostname in VASPLogoMap ;
56
- if ( ! hasLogo ) {
57
- return fallback || ( < p className = { styles . hostname } > { hostname } </ p > ) ;
57
+ const subdomainOfVasp = Object . keys ( VASPLogoMap ) . find ( ( vasp ) => hostname . endsWith ( vasp ) ) ;
58
+ const knownVasp = subdomainOfVasp || ( hostname in VASPLogoMap && hostname ) ;
59
+
60
+ if ( ! knownVasp ) {
61
+ return fallback || (
62
+ < p className = { styles . hostname } > { hostname } </ p >
63
+ ) ;
58
64
}
65
+
59
66
const logoClasses = prominent ? `${ styles . logo } ${ styles . prominent } ` : styles . logo ;
60
67
return (
61
68
< div >
62
- < img className = { logoClasses } src = { VASPLogoMap [ hostname ] } alt = { hostname } />
69
+ < img className = { logoClasses } src = { VASPLogoMap [ knownVasp ] } alt = { knownVasp } />
63
70
< p className = { `${ styles . hostname } ${ styles . capitalized } ` } >
64
- { hostname in VASPHostnameMap ? VASPHostnameMap [ hostname ] : hostname }
71
+ { knownVasp in VASPHostnameMap ? VASPHostnameMap [ knownVasp ] : knownVasp }
65
72
</ p >
66
73
{ withLogoText ? ( < p > { withLogoText } </ p > ) : null }
67
74
</ div >
0 commit comments