@reown/appkit-ui-react-native 1.2.6 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/lib/commonjs/assets/svg/ArrowBottom.js +1 -1
  2. package/lib/commonjs/assets/svg/ArrowBottomCircle.js +1 -1
  3. package/lib/commonjs/assets/svg/ArrowLeft.js +1 -1
  4. package/lib/commonjs/assets/svg/ArrowRight.js +1 -1
  5. package/lib/commonjs/assets/svg/ArrowTop.js +1 -1
  6. package/lib/commonjs/assets/svg/Browser.js +2 -2
  7. package/lib/commonjs/assets/svg/Card.js +21 -0
  8. package/lib/commonjs/assets/svg/Card.js.map +1 -0
  9. package/lib/commonjs/assets/svg/Checkmark.js +1 -1
  10. package/lib/commonjs/assets/svg/ChevronBottom.js +1 -1
  11. package/lib/commonjs/assets/svg/ChevronLeft.js +1 -1
  12. package/lib/commonjs/assets/svg/ChevronRight.js +1 -1
  13. package/lib/commonjs/assets/svg/ChevronRightSmall.js +1 -1
  14. package/lib/commonjs/assets/svg/ChevronTop.js +1 -1
  15. package/lib/commonjs/assets/svg/Clock.js +4 -4
  16. package/lib/commonjs/assets/svg/Clock.js.map +1 -1
  17. package/lib/commonjs/assets/svg/Close.js +1 -1
  18. package/lib/commonjs/assets/svg/CoinPlaceholder.js +1 -1
  19. package/lib/commonjs/assets/svg/Compass.js +1 -1
  20. package/lib/commonjs/assets/svg/Copy.js +1 -1
  21. package/lib/commonjs/assets/svg/CopySmall.js +1 -1
  22. package/lib/commonjs/assets/svg/CurrencyDollar.js +21 -0
  23. package/lib/commonjs/assets/svg/CurrencyDollar.js.map +1 -0
  24. package/lib/commonjs/assets/svg/Cursor.js +1 -1
  25. package/lib/commonjs/assets/svg/Desktop.js +2 -2
  26. package/lib/commonjs/assets/svg/Disconnect.js +1 -1
  27. package/lib/commonjs/assets/svg/Etherscan.js +1 -1
  28. package/lib/commonjs/assets/svg/Extension.js +1 -1
  29. package/lib/commonjs/assets/svg/ExternalLink.js +1 -1
  30. package/lib/commonjs/assets/svg/Filters.js +1 -1
  31. package/lib/commonjs/assets/svg/HelpCircle.js +2 -2
  32. package/lib/commonjs/assets/svg/InfoCircle.js +2 -2
  33. package/lib/commonjs/assets/svg/Mail.js +1 -1
  34. package/lib/commonjs/assets/svg/Mobile.js +2 -2
  35. package/lib/commonjs/assets/svg/More.js +1 -1
  36. package/lib/commonjs/assets/svg/NetworkPlaceholder.js +2 -2
  37. package/lib/commonjs/assets/svg/NftPlaceholder.js +1 -1
  38. package/lib/commonjs/assets/svg/Off.js +1 -1
  39. package/lib/commonjs/assets/svg/Paperplane.js +1 -1
  40. package/lib/commonjs/assets/svg/Plus.js +1 -1
  41. package/lib/commonjs/assets/svg/QrCode.js +1 -1
  42. package/lib/commonjs/assets/svg/RecycleHorizontal.js +1 -1
  43. package/lib/commonjs/assets/svg/Refresh.js +1 -1
  44. package/lib/commonjs/assets/svg/Search.js +1 -1
  45. package/lib/commonjs/assets/svg/Settings.js +21 -0
  46. package/lib/commonjs/assets/svg/Settings.js.map +1 -0
  47. package/lib/commonjs/assets/svg/SwapHorizontal.js +1 -1
  48. package/lib/commonjs/assets/svg/SwapVertical.js +1 -1
  49. package/lib/commonjs/assets/svg/Verify.js +1 -1
  50. package/lib/commonjs/assets/svg/Wallet.js +1 -1
  51. package/lib/commonjs/assets/svg/WalletConnect.js +1 -1
  52. package/lib/commonjs/assets/svg/WalletPlaceholder.js +1 -1
  53. package/lib/commonjs/assets/svg/WalletSmall.js +1 -1
  54. package/lib/commonjs/assets/svg/WarningCircle.js +2 -2
  55. package/lib/commonjs/components/wui-icon/index.js +6 -0
  56. package/lib/commonjs/components/wui-icon/index.js.map +1 -1
  57. package/lib/commonjs/components/wui-pressable/index.js +5 -2
  58. package/lib/commonjs/components/wui-pressable/index.js.map +1 -1
  59. package/lib/commonjs/composites/wui-button/index.js +3 -1
  60. package/lib/commonjs/composites/wui-button/index.js.map +1 -1
  61. package/lib/commonjs/composites/wui-button/styles.js +1 -1
  62. package/lib/commonjs/composites/wui-card-select/index.js +1 -1
  63. package/lib/commonjs/composites/wui-card-select/index.js.map +1 -1
  64. package/lib/commonjs/composites/wui-double-image-loader/index.js +57 -0
  65. package/lib/commonjs/composites/wui-double-image-loader/index.js.map +1 -0
  66. package/lib/commonjs/composites/wui-double-image-loader/index.native.js +94 -0
  67. package/lib/commonjs/composites/wui-double-image-loader/index.native.js.map +1 -0
  68. package/lib/commonjs/composites/wui-double-image-loader/styles.js +31 -0
  69. package/lib/commonjs/composites/wui-double-image-loader/styles.js.map +1 -0
  70. package/lib/commonjs/composites/wui-icon-box/index.js +4 -2
  71. package/lib/commonjs/composites/wui-icon-box/index.js.map +1 -1
  72. package/lib/commonjs/composites/wui-list-item/index.js +13 -8
  73. package/lib/commonjs/composites/wui-list-item/index.js.map +1 -1
  74. package/lib/commonjs/composites/wui-list-social/styles.js +1 -1
  75. package/lib/commonjs/composites/wui-list-social/styles.js.map +1 -1
  76. package/lib/commonjs/composites/wui-list-token/index.js +1 -3
  77. package/lib/commonjs/composites/wui-list-token/index.js.map +1 -1
  78. package/lib/commonjs/composites/wui-network-button/styles.js +1 -2
  79. package/lib/commonjs/composites/wui-network-button/styles.js.map +1 -1
  80. package/lib/commonjs/composites/wui-network-image/index.js +31 -28
  81. package/lib/commonjs/composites/wui-network-image/index.js.map +1 -1
  82. package/lib/commonjs/composites/wui-numeric-keyboard/index.js +56 -0
  83. package/lib/commonjs/composites/wui-numeric-keyboard/index.js.map +1 -0
  84. package/lib/commonjs/composites/wui-search-bar/index.js +8 -4
  85. package/lib/commonjs/composites/wui-search-bar/index.js.map +1 -1
  86. package/lib/commonjs/composites/wui-tag/index.js +3 -2
  87. package/lib/commonjs/composites/wui-tag/index.js.map +1 -1
  88. package/lib/commonjs/composites/wui-toggle/index.js +3 -2
  89. package/lib/commonjs/composites/wui-toggle/index.js.map +1 -1
  90. package/lib/commonjs/composites/wui-token-button/index.js +32 -10
  91. package/lib/commonjs/composites/wui-token-button/index.js.map +1 -1
  92. package/lib/commonjs/composites/wui-token-button/styles.js +14 -1
  93. package/lib/commonjs/composites/wui-token-button/styles.js.map +1 -1
  94. package/lib/commonjs/index.js +14 -0
  95. package/lib/commonjs/index.js.map +1 -1
  96. package/lib/commonjs/layout/wui-flex/index.js +2 -1
  97. package/lib/commonjs/layout/wui-flex/index.js.map +1 -1
  98. package/lib/commonjs/layout/wui-separator/index.js +5 -4
  99. package/lib/commonjs/layout/wui-separator/index.js.map +1 -1
  100. package/lib/module/assets/svg/ArrowBottom.js +1 -1
  101. package/lib/module/assets/svg/ArrowBottomCircle.js +1 -1
  102. package/lib/module/assets/svg/ArrowLeft.js +1 -1
  103. package/lib/module/assets/svg/ArrowRight.js +1 -1
  104. package/lib/module/assets/svg/ArrowTop.js +1 -1
  105. package/lib/module/assets/svg/Browser.js +2 -2
  106. package/lib/module/assets/svg/Card.js +13 -0
  107. package/lib/module/assets/svg/Card.js.map +1 -0
  108. package/lib/module/assets/svg/Checkmark.js +1 -1
  109. package/lib/module/assets/svg/ChevronBottom.js +1 -1
  110. package/lib/module/assets/svg/ChevronLeft.js +1 -1
  111. package/lib/module/assets/svg/ChevronRight.js +1 -1
  112. package/lib/module/assets/svg/ChevronRightSmall.js +1 -1
  113. package/lib/module/assets/svg/ChevronTop.js +1 -1
  114. package/lib/module/assets/svg/Clock.js +4 -4
  115. package/lib/module/assets/svg/Clock.js.map +1 -1
  116. package/lib/module/assets/svg/Close.js +1 -1
  117. package/lib/module/assets/svg/CoinPlaceholder.js +1 -1
  118. package/lib/module/assets/svg/Compass.js +1 -1
  119. package/lib/module/assets/svg/Copy.js +1 -1
  120. package/lib/module/assets/svg/CopySmall.js +1 -1
  121. package/lib/module/assets/svg/CurrencyDollar.js +13 -0
  122. package/lib/module/assets/svg/CurrencyDollar.js.map +1 -0
  123. package/lib/module/assets/svg/Cursor.js +1 -1
  124. package/lib/module/assets/svg/Desktop.js +2 -2
  125. package/lib/module/assets/svg/Disconnect.js +1 -1
  126. package/lib/module/assets/svg/Etherscan.js +1 -1
  127. package/lib/module/assets/svg/Extension.js +1 -1
  128. package/lib/module/assets/svg/ExternalLink.js +1 -1
  129. package/lib/module/assets/svg/Filters.js +1 -1
  130. package/lib/module/assets/svg/HelpCircle.js +2 -2
  131. package/lib/module/assets/svg/InfoCircle.js +2 -2
  132. package/lib/module/assets/svg/Mail.js +1 -1
  133. package/lib/module/assets/svg/Mobile.js +2 -2
  134. package/lib/module/assets/svg/More.js +1 -1
  135. package/lib/module/assets/svg/NetworkPlaceholder.js +2 -2
  136. package/lib/module/assets/svg/NftPlaceholder.js +1 -1
  137. package/lib/module/assets/svg/Off.js +1 -1
  138. package/lib/module/assets/svg/Paperplane.js +1 -1
  139. package/lib/module/assets/svg/Plus.js +1 -1
  140. package/lib/module/assets/svg/QrCode.js +1 -1
  141. package/lib/module/assets/svg/RecycleHorizontal.js +1 -1
  142. package/lib/module/assets/svg/Refresh.js +1 -1
  143. package/lib/module/assets/svg/Search.js +1 -1
  144. package/lib/module/assets/svg/Settings.js +13 -0
  145. package/lib/module/assets/svg/Settings.js.map +1 -0
  146. package/lib/module/assets/svg/SwapHorizontal.js +1 -1
  147. package/lib/module/assets/svg/SwapVertical.js +1 -1
  148. package/lib/module/assets/svg/Verify.js +1 -1
  149. package/lib/module/assets/svg/Wallet.js +1 -1
  150. package/lib/module/assets/svg/WalletConnect.js +1 -1
  151. package/lib/module/assets/svg/WalletPlaceholder.js +1 -1
  152. package/lib/module/assets/svg/WalletSmall.js +1 -1
  153. package/lib/module/assets/svg/WarningCircle.js +2 -2
  154. package/lib/module/components/wui-icon/index.js +6 -0
  155. package/lib/module/components/wui-icon/index.js.map +1 -1
  156. package/lib/module/components/wui-pressable/index.js +5 -2
  157. package/lib/module/components/wui-pressable/index.js.map +1 -1
  158. package/lib/module/composites/wui-button/index.js +3 -1
  159. package/lib/module/composites/wui-button/index.js.map +1 -1
  160. package/lib/module/composites/wui-button/styles.js +1 -1
  161. package/lib/module/composites/wui-card-select/index.js +1 -1
  162. package/lib/module/composites/wui-card-select/index.js.map +1 -1
  163. package/lib/module/composites/wui-double-image-loader/index.js +50 -0
  164. package/lib/module/composites/wui-double-image-loader/index.js.map +1 -0
  165. package/lib/module/composites/wui-double-image-loader/index.native.js +87 -0
  166. package/lib/module/composites/wui-double-image-loader/index.native.js.map +1 -0
  167. package/lib/module/composites/wui-double-image-loader/styles.js +25 -0
  168. package/lib/module/composites/wui-double-image-loader/styles.js.map +1 -0
  169. package/lib/module/composites/wui-icon-box/index.js +4 -2
  170. package/lib/module/composites/wui-icon-box/index.js.map +1 -1
  171. package/lib/module/composites/wui-list-item/index.js +13 -8
  172. package/lib/module/composites/wui-list-item/index.js.map +1 -1
  173. package/lib/module/composites/wui-list-social/styles.js +1 -1
  174. package/lib/module/composites/wui-list-social/styles.js.map +1 -1
  175. package/lib/module/composites/wui-list-token/index.js +1 -3
  176. package/lib/module/composites/wui-list-token/index.js.map +1 -1
  177. package/lib/module/composites/wui-network-button/styles.js +1 -2
  178. package/lib/module/composites/wui-network-button/styles.js.map +1 -1
  179. package/lib/module/composites/wui-network-image/index.js +31 -29
  180. package/lib/module/composites/wui-network-image/index.js.map +1 -1
  181. package/lib/module/composites/wui-numeric-keyboard/index.js +50 -0
  182. package/lib/module/composites/wui-numeric-keyboard/index.js.map +1 -0
  183. package/lib/module/composites/wui-search-bar/index.js +8 -4
  184. package/lib/module/composites/wui-search-bar/index.js.map +1 -1
  185. package/lib/module/composites/wui-tag/index.js +3 -2
  186. package/lib/module/composites/wui-tag/index.js.map +1 -1
  187. package/lib/module/composites/wui-toggle/index.js +3 -2
  188. package/lib/module/composites/wui-toggle/index.js.map +1 -1
  189. package/lib/module/composites/wui-token-button/index.js +29 -7
  190. package/lib/module/composites/wui-token-button/index.js.map +1 -1
  191. package/lib/module/composites/wui-token-button/styles.js +14 -1
  192. package/lib/module/composites/wui-token-button/styles.js.map +1 -1
  193. package/lib/module/index.js +2 -0
  194. package/lib/module/index.js.map +1 -1
  195. package/lib/module/layout/wui-flex/index.js +2 -1
  196. package/lib/module/layout/wui-flex/index.js.map +1 -1
  197. package/lib/module/layout/wui-separator/index.js +5 -4
  198. package/lib/module/layout/wui-separator/index.js.map +1 -1
  199. package/lib/module/utils/TransactionUtil.js.map +1 -1
  200. package/lib/typescript/assets/svg/Card.d.ts +4 -0
  201. package/lib/typescript/assets/svg/Card.d.ts.map +1 -0
  202. package/lib/typescript/assets/svg/CurrencyDollar.d.ts +4 -0
  203. package/lib/typescript/assets/svg/CurrencyDollar.d.ts.map +1 -0
  204. package/lib/typescript/assets/svg/Settings.d.ts +4 -0
  205. package/lib/typescript/assets/svg/Settings.d.ts.map +1 -0
  206. package/lib/typescript/components/wui-icon/index.d.ts.map +1 -1
  207. package/lib/typescript/components/wui-pressable/index.d.ts +2 -1
  208. package/lib/typescript/components/wui-pressable/index.d.ts.map +1 -1
  209. package/lib/typescript/components/wui-shimmer/index.d.ts +2 -2
  210. package/lib/typescript/components/wui-shimmer/index.d.ts.map +1 -1
  211. package/lib/typescript/composites/wui-button/index.d.ts +2 -1
  212. package/lib/typescript/composites/wui-button/index.d.ts.map +1 -1
  213. package/lib/typescript/composites/wui-double-image-loader/index.d.ts +16 -0
  214. package/lib/typescript/composites/wui-double-image-loader/index.d.ts.map +1 -0
  215. package/lib/typescript/composites/wui-double-image-loader/index.native.d.ts +16 -0
  216. package/lib/typescript/composites/wui-double-image-loader/index.native.d.ts.map +1 -0
  217. package/lib/typescript/composites/wui-double-image-loader/styles.d.ts +24 -0
  218. package/lib/typescript/composites/wui-double-image-loader/styles.d.ts.map +1 -0
  219. package/lib/typescript/composites/wui-icon-box/index.d.ts +2 -1
  220. package/lib/typescript/composites/wui-icon-box/index.d.ts.map +1 -1
  221. package/lib/typescript/composites/wui-list-item/index.d.ts +6 -2
  222. package/lib/typescript/composites/wui-list-item/index.d.ts.map +1 -1
  223. package/lib/typescript/composites/wui-list-token/index.d.ts.map +1 -1
  224. package/lib/typescript/composites/wui-network-button/styles.d.ts +0 -1
  225. package/lib/typescript/composites/wui-network-button/styles.d.ts.map +1 -1
  226. package/lib/typescript/composites/wui-network-image/index.d.ts.map +1 -1
  227. package/lib/typescript/composites/wui-numeric-keyboard/index.d.ts +8 -0
  228. package/lib/typescript/composites/wui-numeric-keyboard/index.d.ts.map +1 -0
  229. package/lib/typescript/composites/wui-search-bar/index.d.ts +3 -2
  230. package/lib/typescript/composites/wui-search-bar/index.d.ts.map +1 -1
  231. package/lib/typescript/composites/wui-tag/index.d.ts +3 -2
  232. package/lib/typescript/composites/wui-tag/index.d.ts.map +1 -1
  233. package/lib/typescript/composites/wui-toggle/index.d.ts +8 -1
  234. package/lib/typescript/composites/wui-toggle/index.d.ts.map +1 -1
  235. package/lib/typescript/composites/wui-token-button/index.d.ts +7 -2
  236. package/lib/typescript/composites/wui-token-button/index.d.ts.map +1 -1
  237. package/lib/typescript/composites/wui-token-button/styles.d.ts +13 -0
  238. package/lib/typescript/composites/wui-token-button/styles.d.ts.map +1 -1
  239. package/lib/typescript/index.d.ts +2 -0
  240. package/lib/typescript/index.d.ts.map +1 -1
  241. package/lib/typescript/layout/wui-flex/index.d.ts +1 -0
  242. package/lib/typescript/layout/wui-flex/index.d.ts.map +1 -1
  243. package/lib/typescript/layout/wui-separator/index.d.ts +3 -1
  244. package/lib/typescript/layout/wui-separator/index.d.ts.map +1 -1
  245. package/lib/typescript/utils/TransactionUtil.d.ts +1 -1
  246. package/lib/typescript/utils/TransactionUtil.d.ts.map +1 -1
  247. package/lib/typescript/utils/TypesUtil.d.ts +1 -1
  248. package/lib/typescript/utils/TypesUtil.d.ts.map +1 -1
  249. package/package.json +1 -1
  250. package/src/assets/svg/ArrowBottom.tsx +1 -1
  251. package/src/assets/svg/ArrowBottomCircle.tsx +1 -1
  252. package/src/assets/svg/ArrowLeft.tsx +1 -1
  253. package/src/assets/svg/ArrowRight.tsx +1 -1
  254. package/src/assets/svg/ArrowTop.tsx +1 -1
  255. package/src/assets/svg/Browser.tsx +2 -2
  256. package/src/assets/svg/Card.tsx +13 -0
  257. package/src/assets/svg/Checkmark.tsx +1 -1
  258. package/src/assets/svg/ChevronBottom.tsx +1 -1
  259. package/src/assets/svg/ChevronLeft.tsx +1 -1
  260. package/src/assets/svg/ChevronRight.tsx +1 -1
  261. package/src/assets/svg/ChevronRightSmall.tsx +1 -1
  262. package/src/assets/svg/ChevronTop.tsx +1 -1
  263. package/src/assets/svg/Clock.tsx +3 -3
  264. package/src/assets/svg/Close.tsx +1 -1
  265. package/src/assets/svg/CoinPlaceholder.tsx +1 -1
  266. package/src/assets/svg/Compass.tsx +1 -1
  267. package/src/assets/svg/Copy.tsx +1 -1
  268. package/src/assets/svg/CopySmall.tsx +1 -1
  269. package/src/assets/svg/CurrencyDollar.tsx +12 -0
  270. package/src/assets/svg/Cursor.tsx +1 -1
  271. package/src/assets/svg/Desktop.tsx +2 -2
  272. package/src/assets/svg/Disconnect.tsx +1 -1
  273. package/src/assets/svg/Etherscan.tsx +1 -1
  274. package/src/assets/svg/Extension.tsx +1 -1
  275. package/src/assets/svg/ExternalLink.tsx +1 -1
  276. package/src/assets/svg/Filters.tsx +1 -1
  277. package/src/assets/svg/HelpCircle.tsx +2 -2
  278. package/src/assets/svg/InfoCircle.tsx +2 -2
  279. package/src/assets/svg/Mail.tsx +1 -1
  280. package/src/assets/svg/Mobile.tsx +2 -2
  281. package/src/assets/svg/More.tsx +1 -1
  282. package/src/assets/svg/NetworkPlaceholder.tsx +2 -2
  283. package/src/assets/svg/NftPlaceholder.tsx +1 -1
  284. package/src/assets/svg/Off.tsx +1 -1
  285. package/src/assets/svg/Paperplane.tsx +1 -1
  286. package/src/assets/svg/Plus.tsx +1 -1
  287. package/src/assets/svg/QrCode.tsx +1 -1
  288. package/src/assets/svg/RecycleHorizontal.tsx +1 -1
  289. package/src/assets/svg/Refresh.tsx +1 -1
  290. package/src/assets/svg/Search.tsx +1 -1
  291. package/src/assets/svg/Settings.tsx +12 -0
  292. package/src/assets/svg/SwapHorizontal.tsx +1 -1
  293. package/src/assets/svg/SwapVertical.tsx +1 -1
  294. package/src/assets/svg/Verify.tsx +1 -1
  295. package/src/assets/svg/Wallet.tsx +1 -1
  296. package/src/assets/svg/WalletConnect.tsx +1 -1
  297. package/src/assets/svg/WalletPlaceholder.tsx +1 -1
  298. package/src/assets/svg/WalletSmall.tsx +1 -1
  299. package/src/assets/svg/WarningCircle.tsx +2 -2
  300. package/src/components/wui-icon/index.tsx +6 -0
  301. package/src/components/wui-pressable/index.tsx +10 -1
  302. package/src/components/wui-shimmer/index.tsx +2 -2
  303. package/src/composites/wui-button/index.tsx +3 -0
  304. package/src/composites/wui-button/styles.ts +1 -1
  305. package/src/composites/wui-card-select/index.tsx +1 -1
  306. package/src/composites/wui-double-image-loader/index.native.tsx +120 -0
  307. package/src/composites/wui-double-image-loader/index.tsx +74 -0
  308. package/src/composites/wui-double-image-loader/styles.ts +25 -0
  309. package/src/composites/wui-icon-box/index.tsx +4 -1
  310. package/src/composites/wui-list-item/index.tsx +36 -7
  311. package/src/composites/wui-list-social/styles.ts +1 -1
  312. package/src/composites/wui-list-token/index.tsx +1 -4
  313. package/src/composites/wui-network-button/styles.ts +1 -2
  314. package/src/composites/wui-network-image/index.tsx +47 -31
  315. package/src/composites/wui-numeric-keyboard/index.tsx +67 -0
  316. package/src/composites/wui-search-bar/index.tsx +30 -25
  317. package/src/composites/wui-tag/index.tsx +4 -3
  318. package/src/composites/wui-toggle/index.tsx +10 -2
  319. package/src/composites/wui-token-button/index.tsx +27 -4
  320. package/src/composites/wui-token-button/styles.ts +14 -1
  321. package/src/index.ts +2 -0
  322. package/src/layout/wui-flex/index.tsx +2 -1
  323. package/src/layout/wui-separator/index.tsx +6 -8
  324. package/src/utils/TransactionUtil.ts +6 -6
  325. package/src/utils/TypesUtil.ts +3 -0
@@ -2,7 +2,7 @@ import Svg, { ClipPath, Defs, G, Path, type SvgProps } from 'react-native-svg';
2
2
  const SvgWalletConnect = (props: SvgProps) => (
3
3
  <Svg fill="none" viewBox="0 0 96 67" {...props}>
4
4
  <Path
5
- fill={props.fill || '#fff'}
5
+ fill={props.fill ?? '#fff'}
6
6
  d="M25.32 18.8a32.56 32.56 0 0 1 45.36 0l1.5 1.47c.63.62.63 1.61 0 2.22l-5.15 5.05c-.31.3-.82.3-1.14 0l-2.07-2.03a22.71 22.71 0 0 0-31.64 0l-2.22 2.18c-.31.3-.82.3-1.14 0l-5.15-5.05a1.55 1.55 0 0 1 0-2.22l1.65-1.62Zm56.02 10.44 4.59 4.5c.63.6.63 1.6 0 2.21l-20.7 20.26c-.62.61-1.63.61-2.26 0L48.28 41.83a.4.4 0 0 0-.56 0L33.03 56.21c-.63.61-1.64.61-2.27 0L10.07 35.95a1.55 1.55 0 0 1 0-2.22l4.59-4.5a1.63 1.63 0 0 1 2.27 0L31.6 43.63a.4.4 0 0 0 .57 0l14.69-14.38a1.63 1.63 0 0 1 2.26 0l14.69 14.38a.4.4 0 0 0 .57 0l14.68-14.38a1.63 1.63 0 0 1 2.27 0Z"
7
7
  />
8
8
  <Path
@@ -11,7 +11,7 @@ const SvgWalletPlaceholder = (props: SvgProps) => {
11
11
  d="M4.56 8.64c-1.23 1.68-1.23 4.08-1.23 8.88v8.96c0 4.8 0 7.2 1.23 8.88.39.55.87 1.02 1.41 1.42C7.65 38 10.05 38 14.85 38h14.3c4.8 0 7.2 0 8.88-1.22a6.4 6.4 0 0 0 1.41-1.42c.83-1.14 1.1-2.6 1.19-4.92a6.4 6.4 0 0 0 5.16-4.65c.21-.81.21-1.8.21-3.79 0-1.98 0-2.98-.22-3.79a6.4 6.4 0 0 0-5.15-4.65c-.1-2.32-.36-3.78-1.19-4.92a6.4 6.4 0 0 0-1.41-1.42C36.35 6 33.95 6 29.15 6h-14.3c-4.8 0-7.2 0-8.88 1.22a6.4 6.4 0 0 0-1.41 1.42Z"
12
12
  />
13
13
  <Path
14
- fill={props.fill || Theme['bg-300']}
14
+ fill={props.fill ?? Theme['bg-300']}
15
15
  fillRule="evenodd"
16
16
  d="M2.27 11.33a6.4 6.4 0 0 1 6.4-6.4h26.66a6.4 6.4 0 0 1 6.4 6.4v1.7a6.4 6.4 0 0 1 5.34 6.3v5.34a6.4 6.4 0 0 1-5.34 6.3v1.7a6.4 6.4 0 0 1-6.4 6.4H8.67a6.4 6.4 0 0 1-6.4-6.4V11.33ZM39.6 31.07h-6.93a9.07 9.07 0 1 1 0-18.14h6.93v-1.6a4.27 4.27 0 0 0-4.27-4.26H8.67a4.27 4.27 0 0 0-4.27 4.26v21.34a4.27 4.27 0 0 0 4.27 4.26h26.66a4.27 4.27 0 0 0 4.27-4.26v-1.6Zm-6.93-16a6.93 6.93 0 0 0 0 13.86h8a4.27 4.27 0 0 0 4.26-4.26v-5.34a4.27 4.27 0 0 0-4.26-4.26h-8Z"
17
17
  clipRule="evenodd"
@@ -2,7 +2,7 @@ import Svg, { Path, type SvgProps } from 'react-native-svg';
2
2
  const SvgWalletSmall = (props: SvgProps) => (
3
3
  <Svg viewBox="0 0 14 14" fill="none" {...props}>
4
4
  <Path
5
- fill={props.fill || '#fff'}
5
+ fill={props.fill ?? '#fff'}
6
6
  fillRule="evenodd"
7
7
  d="M0 4C0 2.61929 1.11929 1.5 2.5 1.5H10C11.3666 1.5 12.4772 2.59659 12.4997 3.95787C13.3828 4.34357 14 5.22471 14 6.25V7.75C14 8.77529 13.3828 9.65643 12.4997 10.0421C12.4772 11.4034 11.3666 12.5 10 12.5H2.5C1.11929 12.5 0 11.3807 0 10V4ZM10.4331 10.25H9.25C7.45507 10.25 6 8.79492 6 7C6 5.20507 7.45507 3.75 9.25 3.75L10.4331 3.75C10.3467 3.60055 10.1851 3.5 10 3.5H2.5C2.22386 3.5 2 3.72386 2 4V10C2 10.2761 2.22386 10.5 2.5 10.5H10C10.1851 10.5 10.3467 10.3995 10.4331 10.25ZM9.25 5.75C8.55964 5.75 8 6.30964 8 7C8 7.69036 8.55964 8.25 9.25 8.25H11.5C11.7761 8.25 12 8.02614 12 7.75V6.25C12 5.97386 11.7761 5.75 11.5 5.75L9.25 5.75Z"
8
8
  clipRule="evenodd"
@@ -2,11 +2,11 @@ import Svg, { Path, type SvgProps } from 'react-native-svg';
2
2
  const SvgWarningCircle = (props: SvgProps) => (
3
3
  <Svg viewBox="0 0 20 20" fill="none" {...props}>
4
4
  <Path
5
- fill={props.fill || '#fff'}
5
+ fill={props.fill ?? '#fff'}
6
6
  d="M11 6.67a1 1 0 1 0-2 0v2.66a1 1 0 0 0 2 0V6.67ZM10 14.5a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z"
7
7
  />
8
8
  <Path
9
- fill={props.fill || '#fff'}
9
+ fill={props.fill ?? '#fff'}
10
10
  fillRule="evenodd"
11
11
  d="M10 1a9 9 0 1 0 0 18 9 9 0 0 0 0-18Zm-7 9a7 7 0 1 1 14 0 7 7 0 0 1-14 0Z"
12
12
  clipRule="evenodd"
@@ -10,6 +10,7 @@ import ArrowLeftSvg from '../../assets/svg/ArrowLeft';
10
10
  import ArrowRightSvg from '../../assets/svg/ArrowRight';
11
11
  import ArrowTopSvg from '../../assets/svg/ArrowTop';
12
12
  import BrowserSvg from '../../assets/svg/Browser';
13
+ import CardSvg from '../../assets/svg/Card';
13
14
  import CheckmarkSvg from '../../assets/svg/Checkmark';
14
15
  import ChevronBottomSvg from '../../assets/svg/ChevronBottom';
15
16
  import ChevronLeftSvg from '../../assets/svg/ChevronLeft';
@@ -23,6 +24,7 @@ import CoinPlaceholderSvg from '../../assets/svg/CoinPlaceholder';
23
24
  import CopySvg from '../../assets/svg/Copy';
24
25
  import CopySmallSvg from '../../assets/svg/CopySmall';
25
26
  import CursorSvg from '../../assets/svg/Cursor';
27
+ import CurrencyDollarSvg from '../../assets/svg/CurrencyDollar';
26
28
  import DesktopSvg from '../../assets/svg/Desktop';
27
29
  import DisconnectSvg from '../../assets/svg/Disconnect';
28
30
  import DiscordSvg from '../../assets/svg/Discord';
@@ -48,6 +50,7 @@ import QrCodeSvg from '../../assets/svg/QrCode';
48
50
  import RecycleHorizontalSvg from '../../assets/svg/RecycleHorizontal';
49
51
  import RefreshSvg from '../../assets/svg/Refresh';
50
52
  import SearchSvg from '../../assets/svg/Search';
53
+ import SettingsSvg from '../../assets/svg/Settings';
51
54
  import SwapHorizontalSvg from '../../assets/svg/SwapHorizontal';
52
55
  import SwapVerticalSvg from '../../assets/svg/SwapVertical';
53
56
  import TelegramSvg from '../../assets/svg/Telegram';
@@ -71,6 +74,7 @@ const svgOptions: Record<IconType, (props: SvgProps) => JSX.Element> = {
71
74
  arrowRight: ArrowRightSvg,
72
75
  arrowTop: ArrowTopSvg,
73
76
  browser: BrowserSvg,
77
+ card: CardSvg,
74
78
  checkmark: CheckmarkSvg,
75
79
  chevronBottom: ChevronBottomSvg,
76
80
  chevronLeft: ChevronLeftSvg,
@@ -84,6 +88,7 @@ const svgOptions: Record<IconType, (props: SvgProps) => JSX.Element> = {
84
88
  copy: CopySvg,
85
89
  copySmall: CopySmallSvg,
86
90
  cursor: CursorSvg,
91
+ currencyDollar: CurrencyDollarSvg,
87
92
  desktop: DesktopSvg,
88
93
  disconnect: DisconnectSvg,
89
94
  discord: DiscordSvg,
@@ -109,6 +114,7 @@ const svgOptions: Record<IconType, (props: SvgProps) => JSX.Element> = {
109
114
  recycleHorizontal: RecycleHorizontalSvg,
110
115
  refresh: RefreshSvg,
111
116
  search: SearchSvg,
117
+ settings: SettingsSvg,
112
118
  swapHorizontal: SwapHorizontalSvg,
113
119
  swapVertical: SwapVerticalSvg,
114
120
  telegram: TelegramSvg,
@@ -20,6 +20,7 @@ export interface PressableProps extends RNPressableProps {
20
20
  animationDuration?: number;
21
21
  disabled?: boolean;
22
22
  pressable?: boolean;
23
+ transparent?: boolean;
23
24
  }
24
25
 
25
26
  export function Pressable({
@@ -28,6 +29,7 @@ export function Pressable({
28
29
  disabled = false,
29
30
  pressable = true,
30
31
  onPress,
32
+ transparent = false,
31
33
  backgroundColor = 'gray-glass-002',
32
34
  pressedBackgroundColor = 'gray-glass-010',
33
35
  bounceScale = 0.99, // Scale to 99% of original size
@@ -80,7 +82,14 @@ export function Pressable({
80
82
  return (
81
83
  <AnimatedPressable
82
84
  disabled={disabled || !pressable}
83
- style={[{ backgroundColor: bgColor, transform: [{ scale: scaleAnimation.current }] }, style]}
85
+ style={[
86
+ // eslint-disable-next-line react-native/no-inline-styles
87
+ {
88
+ backgroundColor: transparent ? 'transparent' : bgColor,
89
+ transform: [{ scale: scaleAnimation.current }]
90
+ },
91
+ style
92
+ ]}
84
93
  onPressIn={onPressIn}
85
94
  onPressOut={onPressOut}
86
95
  onPress={onPress}
@@ -5,8 +5,8 @@ import { useTheme } from '../../hooks/useTheme';
5
5
  const AnimatedRect = Animated.createAnimatedComponent(Rect);
6
6
 
7
7
  export interface ShimmerProps {
8
- width?: number;
9
- height?: number;
8
+ width?: number | string;
9
+ height?: number | string;
10
10
  duration?: number;
11
11
  borderRadius?: number;
12
12
  backgroundColor?: string;
@@ -28,6 +28,7 @@ export type ButtonProps = NativeProps & {
28
28
  style?: StyleProp<ViewStyle>;
29
29
  iconStyle?: SvgProps['style'];
30
30
  loading?: boolean;
31
+ testID?: string;
31
32
  };
32
33
 
33
34
  export function Button({
@@ -41,6 +42,7 @@ export function Button({
41
42
  iconRight,
42
43
  iconStyle,
43
44
  loading,
45
+ testID,
44
46
  ...rest
45
47
  }: ButtonProps) {
46
48
  const Theme = useTheme();
@@ -84,6 +86,7 @@ export function Button({
84
86
  onPressIn={onPressIn}
85
87
  onPressOut={onPressOut}
86
88
  onPress={onPress}
89
+ testID={testID}
87
90
  {...rest}
88
91
  >
89
92
  <FlexView flexDirection="row" alignItems="center" justifyContent="center">
@@ -28,7 +28,7 @@ export const getThemedButtonStyle = (
28
28
 
29
29
  return {
30
30
  ...buttonBaseStyle,
31
- backgroundColor: variant === 'fill' ? theme['accent-100'] : theme['gray-glass-002']
31
+ backgroundColor: variant === 'fill' ? theme['accent-100'] : theme['gray-glass-005']
32
32
  };
33
33
  };
34
34
 
@@ -100,5 +100,5 @@ function _CardSelect({
100
100
  }
101
101
 
102
102
  export const CardSelect = memo(_CardSelect, (prevProps, nextProps) => {
103
- return prevProps.name === nextProps.name;
103
+ return prevProps.name === nextProps.name && prevProps.imageSrc === nextProps.imageSrc;
104
104
  });
@@ -0,0 +1,120 @@
1
+ import { Animated, useAnimatedValue, type StyleProp, type ViewStyle } from 'react-native';
2
+
3
+ import { useEffect } from 'react';
4
+ import { useTheme } from '../../hooks/useTheme';
5
+ import { FlexView } from '../../layout/wui-flex';
6
+ import { Image } from '../../components/wui-image';
7
+ import { Icon } from '../../components/wui-icon';
8
+ import { type IconType } from '../../utils/TypesUtil';
9
+ import { WalletImage } from '../wui-wallet-image';
10
+ import styles from './styles';
11
+ interface Props {
12
+ style?: StyleProp<ViewStyle>;
13
+ leftImage?: string;
14
+ rightImage?: string;
15
+ renderRightPlaceholder?: () => React.ReactElement;
16
+ leftPlaceholderIcon?: IconType;
17
+ rightPlaceholderIcon?: IconType;
18
+ leftItemStyle?: StyleProp<ViewStyle>;
19
+ rightItemStyle?: StyleProp<ViewStyle>;
20
+ }
21
+
22
+ export function DoubleImageLoader({
23
+ style,
24
+ leftImage,
25
+ rightImage,
26
+ renderRightPlaceholder,
27
+ leftPlaceholderIcon = 'mobile',
28
+ rightPlaceholderIcon = 'browser',
29
+ leftItemStyle,
30
+ rightItemStyle
31
+ }: Props) {
32
+ const Theme = useTheme();
33
+ const leftPosition = useAnimatedValue(10);
34
+ const rightPosition = useAnimatedValue(-10);
35
+
36
+ useEffect(() => {
37
+ const leftAnimation = Animated.loop(
38
+ Animated.sequence([
39
+ Animated.timing(leftPosition, {
40
+ toValue: -5,
41
+ duration: 1500,
42
+ useNativeDriver: true
43
+ }),
44
+ Animated.timing(leftPosition, {
45
+ toValue: 10,
46
+ duration: 1500,
47
+ useNativeDriver: true
48
+ })
49
+ ])
50
+ );
51
+
52
+ const rightAnimation = Animated.loop(
53
+ Animated.sequence([
54
+ Animated.timing(rightPosition, {
55
+ toValue: 5,
56
+ duration: 1500,
57
+ useNativeDriver: true
58
+ }),
59
+ Animated.timing(rightPosition, {
60
+ toValue: -10,
61
+ duration: 1500,
62
+ useNativeDriver: true
63
+ })
64
+ ])
65
+ );
66
+
67
+ leftAnimation.start();
68
+ rightAnimation.start();
69
+
70
+ return () => {
71
+ leftAnimation.stop();
72
+ rightAnimation.stop();
73
+ };
74
+ // eslint-disable-next-line react-hooks/exhaustive-deps
75
+ }, []);
76
+
77
+ return (
78
+ <FlexView flexDirection="row" alignItems="center" justifyContent="center" style={style}>
79
+ <Animated.View
80
+ style={[
81
+ styles.itemBorder,
82
+ styles.leftItemBorder,
83
+ {
84
+ transform: [{ translateX: leftPosition }],
85
+ backgroundColor: Theme['bg-200']
86
+ },
87
+ leftItemStyle
88
+ ]}
89
+ >
90
+ {leftImage ? (
91
+ <Image
92
+ source={leftImage}
93
+ style={[styles.rightImage, { backgroundColor: Theme['bg-200'] }]}
94
+ />
95
+ ) : (
96
+ <Icon name={leftPlaceholderIcon} size="lg" color="fg-200" />
97
+ )}
98
+ </Animated.View>
99
+ <Animated.View
100
+ style={[
101
+ styles.itemBorder,
102
+ styles.rightItemBorder,
103
+ {
104
+ transform: [{ translateX: rightPosition }],
105
+ backgroundColor: Theme['bg-200']
106
+ },
107
+ rightItemStyle
108
+ ]}
109
+ >
110
+ {rightImage ? (
111
+ <WalletImage imageSrc={rightImage} size="lg" border={false} />
112
+ ) : (
113
+ renderRightPlaceholder?.() ?? (
114
+ <Icon name={rightPlaceholderIcon} size="lg" color="fg-200" />
115
+ )
116
+ )}
117
+ </Animated.View>
118
+ </FlexView>
119
+ );
120
+ }
@@ -0,0 +1,74 @@
1
+ import { type StyleProp, type ViewStyle } from 'react-native';
2
+
3
+ import { useTheme } from '../../hooks/useTheme';
4
+ import { FlexView } from '../../layout/wui-flex';
5
+ import { Image } from '../../components/wui-image';
6
+ import { Icon } from '../../components/wui-icon';
7
+ import { type IconType } from '../../utils/TypesUtil';
8
+ import { WalletImage } from '../wui-wallet-image';
9
+ import styles from './styles';
10
+ interface Props {
11
+ style?: StyleProp<ViewStyle>;
12
+ leftImage?: string;
13
+ rightImage?: string;
14
+ renderRightPlaceholder?: () => React.ReactElement;
15
+ leftPlaceholderIcon?: IconType;
16
+ rightPlaceholderIcon?: IconType;
17
+ leftItemStyle?: StyleProp<ViewStyle>;
18
+ rightItemStyle?: StyleProp<ViewStyle>;
19
+ }
20
+
21
+ export function DoubleImageLoader({
22
+ style,
23
+ leftImage,
24
+ rightImage,
25
+ renderRightPlaceholder,
26
+ leftPlaceholderIcon = 'mobile',
27
+ rightPlaceholderIcon = 'browser',
28
+ leftItemStyle,
29
+ rightItemStyle
30
+ }: Props) {
31
+ const Theme = useTheme();
32
+
33
+ return (
34
+ <FlexView flexDirection="row" alignItems="center" justifyContent="center" style={style}>
35
+ <FlexView
36
+ style={[
37
+ styles.itemBorder,
38
+ styles.leftItemBorder,
39
+ {
40
+ backgroundColor: Theme['bg-200']
41
+ },
42
+ leftItemStyle
43
+ ]}
44
+ >
45
+ {leftImage ? (
46
+ <Image
47
+ source={leftImage}
48
+ style={[styles.rightImage, { backgroundColor: Theme['bg-200'] }]}
49
+ />
50
+ ) : (
51
+ <Icon name={leftPlaceholderIcon} size="lg" color="fg-200" />
52
+ )}
53
+ </FlexView>
54
+ <FlexView
55
+ style={[
56
+ styles.itemBorder,
57
+ styles.rightItemBorder,
58
+ {
59
+ backgroundColor: Theme['bg-200']
60
+ },
61
+ rightItemStyle
62
+ ]}
63
+ >
64
+ {rightImage ? (
65
+ <WalletImage imageSrc={rightImage} size="lg" border={false} />
66
+ ) : (
67
+ renderRightPlaceholder?.() ?? (
68
+ <Icon name={rightPlaceholderIcon} size="lg" color="fg-200" />
69
+ )
70
+ )}
71
+ </FlexView>
72
+ </FlexView>
73
+ );
74
+ }
@@ -0,0 +1,25 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { BorderRadius } from '../../utils/ThemeUtil';
3
+
4
+ export default StyleSheet.create({
5
+ rightImage: {
6
+ height: 64,
7
+ width: 64,
8
+ borderRadius: BorderRadius.full
9
+ },
10
+ itemBorder: {
11
+ width: 74,
12
+ height: 74,
13
+ alignItems: 'center',
14
+ justifyContent: 'center'
15
+ },
16
+ leftItemBorder: {
17
+ borderRadius: BorderRadius.full,
18
+ zIndex: 2
19
+ },
20
+ rightItemBorder: {
21
+ borderRadius: 22,
22
+ width: 72,
23
+ height: 72
24
+ }
25
+ });
@@ -16,6 +16,7 @@ export interface IconBoxProps {
16
16
  borderColor?: ThemeKeys;
17
17
  borderSize?: number;
18
18
  style?: StyleProp<ViewStyle>;
19
+ testID?: string;
19
20
  }
20
21
 
21
22
  export function IconBox({
@@ -28,7 +29,8 @@ export function IconBox({
28
29
  border,
29
30
  borderColor,
30
31
  borderSize = 4,
31
- style
32
+ style,
33
+ testID
32
34
  }: IconBoxProps) {
33
35
  const Theme = useTheme();
34
36
  let _iconSize: SizeType;
@@ -97,6 +99,7 @@ export function IconBox({
97
99
  border && { borderColor: Theme[borderColor || 'bg-125'], borderWidth: borderSize / 2 },
98
100
  style
99
101
  ]}
102
+ testID={testID}
100
103
  >
101
104
  <Icon size={iconSize || _iconSize} color={iconColor} name={icon} />
102
105
  </View>
@@ -1,5 +1,13 @@
1
1
  import type { ReactNode } from 'react';
2
- import { View, Pressable, Animated, type StyleProp, type ViewStyle } from 'react-native';
2
+ import {
3
+ View,
4
+ Pressable,
5
+ Animated,
6
+ type StyleProp,
7
+ type ViewStyle,
8
+ type ImageStyle,
9
+ type ImageProps
10
+ } from 'react-native';
3
11
  import { Icon } from '../../components/wui-icon';
4
12
  import { Image } from '../../components/wui-image';
5
13
  import { LoadingSpinner } from '../../components/wui-loading-spinner';
@@ -16,8 +24,12 @@ export interface ListItemProps {
16
24
  iconColor?: ColorType;
17
25
  iconBackgroundColor?: ColorType;
18
26
  iconBorderColor?: ColorType;
27
+ backgroundColor?: ColorType;
19
28
  imageSrc?: string;
20
29
  imageHeaders?: Record<string, string>;
30
+ imageStyle?: StyleProp<ImageStyle>;
31
+ imageProps?: ImageProps;
32
+ imageContainerStyle?: StyleProp<ViewStyle>;
21
33
  chevron?: boolean;
22
34
  disabled?: boolean;
23
35
  loading?: boolean;
@@ -32,7 +44,10 @@ export function ListItem({
32
44
  children,
33
45
  icon,
34
46
  imageSrc,
47
+ imageProps,
35
48
  imageHeaders,
49
+ imageStyle,
50
+ imageContainerStyle,
36
51
  iconColor = 'fg-200',
37
52
  iconBackgroundColor,
38
53
  iconBorderColor = 'gray-glass-005',
@@ -42,28 +57,42 @@ export function ListItem({
42
57
  onPress,
43
58
  style,
44
59
  contentStyle,
45
- testID
60
+ testID,
61
+ backgroundColor = 'gray-glass-002'
46
62
  }: ListItemProps) {
47
63
  const Theme = useTheme();
48
64
  const { animatedValue, setStartValue, setEndValue } = useAnimatedValue(
49
- Theme['gray-glass-002'],
65
+ Theme[backgroundColor],
50
66
  Theme['gray-glass-010']
51
67
  );
52
68
 
53
69
  function visualTemplate() {
54
70
  if (imageSrc) {
55
71
  return (
56
- <View style={[styles.imageContainer, { borderColor: Theme['gray-glass-005'] }]}>
72
+ <View
73
+ style={[
74
+ styles.imageContainer,
75
+ { borderColor: Theme['gray-glass-005'] },
76
+ imageContainerStyle
77
+ ]}
78
+ >
57
79
  <Image
58
- source={imageSrc}
80
+ {...imageProps}
59
81
  headers={imageHeaders}
60
- style={[styles.image, (disabled || loading) && styles.disabledImage]}
82
+ source={imageSrc}
83
+ style={[styles.image, (disabled || loading) && styles.disabledImage, imageStyle]}
61
84
  />
62
85
  </View>
63
86
  );
64
87
  } else if (icon) {
65
88
  return (
66
- <View style={[styles.imageContainer, { borderColor: Theme[iconBorderColor] }]}>
89
+ <View
90
+ style={[
91
+ styles.imageContainer,
92
+ { borderColor: Theme[iconBorderColor] },
93
+ imageContainerStyle
94
+ ]}
95
+ >
67
96
  <IconBox
68
97
  icon={icon}
69
98
  iconColor={iconColor}
@@ -14,7 +14,7 @@ export default StyleSheet.create({
14
14
  rightPlaceholder: {
15
15
  width: 40,
16
16
  height: 40,
17
- borderRadius: 100
17
+ borderRadius: BorderRadius.full
18
18
  },
19
19
  disabledLogo: {
20
20
  opacity: 0.4
@@ -50,10 +50,7 @@ export function ListToken({
50
50
  >
51
51
  <FlexView flexDirection="row" alignItems="center">
52
52
  {imageSrc ? (
53
- <Image
54
- source={imageSrc}
55
- style={[styles.image, { backgroundColor: Theme['gray-glass-005'] }]}
56
- />
53
+ <Image source={imageSrc} style={styles.image} />
57
54
  ) : (
58
55
  <FlexView
59
56
  style={[styles.image, { backgroundColor: Theme['gray-glass-005'] }]}
@@ -21,8 +21,7 @@ export default StyleSheet.create({
21
21
  height: 24,
22
22
  width: 24,
23
23
  borderRadius: BorderRadius.full,
24
- borderWidth: 2,
25
- paddingLeft: Spacing['4xs']
24
+ borderWidth: 2
26
25
  },
27
26
  imageDisabled: {
28
27
  opacity: 0.4
@@ -1,9 +1,8 @@
1
- import { Path, Svg, Image, Defs, Pattern } from 'react-native-svg';
1
+ import { Path, Svg, Image, Defs, Pattern, G } from 'react-native-svg';
2
2
  import type { StyleProp, ViewStyle } from 'react-native';
3
3
  import { useTheme } from '../../hooks/useTheme';
4
4
  import type { SizeType } from '../../utils/TypesUtil';
5
- import { Icon } from '../../components/wui-icon';
6
- import { FlexView } from '../../layout/wui-flex';
5
+ import NetworkPlaceholderSvg from '../../assets/svg/NetworkPlaceholder';
7
6
  import { PathLg, PathNormal, PathSmall, PathXS } from './styles';
8
7
 
9
8
  export interface NetworkImageProps {
@@ -31,6 +30,13 @@ const sizeToHeight = {
31
30
  xs: 20
32
31
  };
33
32
 
33
+ const sizeToIconSize = {
34
+ lg: 24,
35
+ md: 16,
36
+ sm: 14,
37
+ xs: 12
38
+ };
39
+
34
40
  export function NetworkImage({
35
41
  imageSrc,
36
42
  imageHeaders,
@@ -44,42 +50,52 @@ export function NetworkImage({
44
50
  const Theme = useTheme();
45
51
  const svgStroke = selected ? Theme['accent-100'] : Theme['gray-glass-010'];
46
52
  const opacity = disabled ? 0.5 : 1;
53
+ const containerSize = sizeToHeight[size];
54
+ const iconSize = sizeToIconSize[size];
47
55
 
48
56
  return (
49
57
  <Svg
50
- width={sizeToHeight[size]}
51
- height={sizeToHeight[size]}
58
+ width={containerSize}
59
+ height={containerSize}
52
60
  stroke={borderColor ?? svgStroke}
53
61
  strokeWidth={borderWidth}
54
62
  style={style}
55
63
  >
56
- <Defs>
57
- <Pattern id="image-pattern">
58
- {imageSrc ? (
59
- <Image
60
- height={sizeToHeight[size]}
61
- width={sizeToHeight[size]}
62
- opacity={opacity}
63
- href={{ uri: imageSrc, headers: imageHeaders }}
64
- />
65
- ) : (
66
- <FlexView
67
- alignItems="center"
68
- justifyContent="center"
69
- // eslint-disable-next-line react-native/no-inline-styles
70
- style={{
71
- height: sizeToHeight[size],
72
- width: sizeToHeight[size],
73
- backgroundColor: 'transparent'
74
- }}
64
+ {imageSrc ? (
65
+ <>
66
+ <Defs>
67
+ <Pattern
68
+ id="image-pattern"
69
+ width={containerSize}
70
+ height={containerSize}
71
+ patternUnits="userSpaceOnUse"
75
72
  >
76
- <Icon name="networkPlaceholder" size={size} color="fg-200" />
77
- </FlexView>
78
- )}
79
- </Pattern>
80
- </Defs>
81
- {!imageSrc && <Path d={sizeToPath[size]} opacity={opacity} fill={Theme['gray-glass-005']} />}
82
- <Path d={sizeToPath[size]} opacity={opacity} fill="url(#image-pattern)" />
73
+ <Image
74
+ height={containerSize}
75
+ width={containerSize}
76
+ opacity={opacity}
77
+ href={{ uri: imageSrc, headers: imageHeaders }}
78
+ />
79
+ </Pattern>
80
+ </Defs>
81
+ <Path d={sizeToPath[size]} opacity={opacity} fill="url(#image-pattern)" />
82
+ </>
83
+ ) : (
84
+ <>
85
+ <Path d={sizeToPath[size]} opacity={opacity} fill={Theme['gray-glass-005']} />
86
+ <G
87
+ transform={`translate(${(containerSize - iconSize) / 2}, ${
88
+ (containerSize - iconSize) / 2
89
+ })`}
90
+ >
91
+ <NetworkPlaceholderSvg
92
+ fill={selected ? Theme['accent-100'] : Theme['fg-200']}
93
+ width={iconSize}
94
+ height={iconSize}
95
+ />
96
+ </G>
97
+ </>
98
+ )}
83
99
  </Svg>
84
100
  );
85
101
  }