@rabbitio/ui-kit 1.0.0-beta.64 → 1.0.0-beta.66

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 (255) hide show
  1. package/coverage/clover.xml +6325 -4201
  2. package/coverage/coverage-final.json +160 -99
  3. package/coverage/index.html +444 -189
  4. package/coverage/{rabbit-ui-kit → ui-kit}/index.html +3 -3
  5. package/coverage/{rabbit-ui-kit → ui-kit}/index.js.html +3 -3
  6. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/arrowTosca.jsx.html → ui-kit/src/assets/wrappedImages/arrowIcon.jsx.html} +8 -29
  7. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/arrowIcon.jsx.html → ui-kit/src/assets/wrappedImages/arrowTosca.jsx.html} +9 -24
  8. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/arrowWhite.jsx.html +7 -25
  9. package/coverage/ui-kit/src/assets/wrappedImages/darkRectangle.jsx.html +106 -0
  10. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/determinedError.jsx.html +9 -42
  11. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/successfulValidationIcon.jsx.html → ui-kit/src/assets/wrappedImages/failedValidationIcon.jsx.html} +28 -31
  12. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/index.html +25 -25
  13. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/darkRectangle.jsx.html → ui-kit/src/assets/wrappedImages/infoIcon.jsx.html} +13 -19
  14. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/noticeQuestionIcon.jsx.html +7 -25
  15. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/walletIcon.jsx.html → ui-kit/src/assets/wrappedImages/successfulValidationIcon.jsx.html} +23 -59
  16. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/infoIcon.jsx.html → ui-kit/src/assets/wrappedImages/walletIcon.jsx.html} +16 -16
  17. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/adapters/axiosAdapter.js.html +3 -3
  18. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/adapters/index.html +3 -3
  19. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/adapters/qrUtils.js.html +3 -3
  20. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/amountUtils.js.html +44 -308
  21. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/errorUtils.js.html +3 -3
  22. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/external-apis/apiGroups.js.html +3 -3
  23. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/external-apis/index.html +14 -14
  24. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/external-apis/ipAddressProviders.js.html +31 -178
  25. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/fiatCurrenciesService.js.html +12 -36
  26. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/index.html +20 -20
  27. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/blockchain.js.html +3 -3
  28. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/coin.js.html +10 -22
  29. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/index.html +13 -13
  30. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/protocol.js.html +3 -3
  31. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/cache.js.html +23 -101
  32. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/emailAPI.js.html +9 -15
  33. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/index.html +19 -19
  34. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/logging/index.html +9 -9
  35. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/logging/logger.js.html +14 -35
  36. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/logging/logsStorage.js.html +5 -5
  37. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/postponeExecution.js.html +3 -3
  38. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/safeStringify.js.html +29 -29
  39. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/AssetIcon/AssetIcon.jsx.html +11 -41
  40. package/coverage/ui-kit/src/components/atoms/AssetIcon/index.html +116 -0
  41. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/AssetSelection/AssetSelection.jsx.html +9 -33
  42. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/AssetSelection/index.html +7 -7
  43. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +8 -38
  44. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/BackgroundTitle/index.html +7 -7
  45. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/InformationMessage/InformationMessage.jsx.html +8 -38
  46. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/InformationMessage/index.html +7 -7
  47. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Input/Input.jsx.html +15 -63
  48. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Input/index.html +7 -7
  49. package/coverage/ui-kit/src/components/atoms/LoadingDots/LoadingDots.jsx.html +196 -0
  50. package/coverage/{rabbit-ui-kit/src/components/atoms/RateSelector → ui-kit/src/components/atoms/LoadingDots}/index.html +4 -4
  51. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/NoticeIcon/NoticeIcon.jsx.html +10 -40
  52. package/coverage/{rabbit-ui-kit/src/components/atoms/AssetIcon → ui-kit/src/components/atoms/NoticeIcon}/index.html +4 -4
  53. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/QrCode/QrCode.jsx.html +8 -26
  54. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/QrCode/index.html +7 -7
  55. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/RateSelector/RateSelector.jsx.html +10 -34
  56. package/coverage/ui-kit/src/components/atoms/RateSelector/index.html +116 -0
  57. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/SupportChat/SupportChat.jsx.html +7 -22
  58. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/SupportChat/index.html +7 -7
  59. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Textarea/Textarea.jsx.html +17 -53
  60. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Textarea/index.html +7 -7
  61. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/TitleBox/TitleBox.jsx.html +13 -82
  62. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/TitleBox/index.html +7 -7
  63. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Tooltip/Tooltip.jsx.html +12 -18
  64. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Tooltip/index.html +7 -7
  65. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +12 -30
  66. package/coverage/{rabbit-ui-kit/src/components/atoms/NoticeIcon → ui-kit/src/components/atoms/TwoLinesOfText}/index.html +4 -4
  67. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Validation/Validation.jsx.html +19 -13
  68. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Validation/index.html +7 -7
  69. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Button/Button.jsx.html +23 -113
  70. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Button/index.html +7 -7
  71. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Close/Close.jsx.html +9 -27
  72. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Close/index.html +7 -7
  73. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/LinkButton/LinkButton.jsx.html +11 -38
  74. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/LinkButton/index.html +7 -7
  75. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +13 -67
  76. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/RadioButtonWithText/index.html +7 -7
  77. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/hooks/index.html +7 -7
  78. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/hooks/useCallHandlingErrors.js.html +7 -19
  79. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/hooks/useReferredState.js.html +4 -4
  80. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/AmountInput/AmountInput.jsx.html +56 -407
  81. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/AmountInput/index.html +7 -7
  82. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/CoinPicker/CoinPicker.jsx.html +67 -466
  83. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/CoinPicker/index.html +7 -7
  84. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +7 -22
  85. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/LineWithIconLink/index.html +7 -7
  86. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +3 -3
  87. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/TitledLineWithIconLink/index.html +3 -3
  88. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +9 -15
  89. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/CoinPickerDialogStep/index.html +7 -7
  90. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/Dialog.jsx.html +44 -194
  91. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +3 -3
  92. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogButtons/index.html +3 -3
  93. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +63 -525
  94. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogStep/index.html +7 -7
  95. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/index.html +7 -7
  96. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/SwapForm/SwapForm.jsx.html +145 -670
  97. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/SwapForm/index.html +7 -7
  98. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +3 -3
  99. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/templates/DeterminedErrorDialogStep/index.html +3 -3
  100. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/index.html +20 -20
  101. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/inputValueProviders.js.html +11 -35
  102. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/textUtils.js.html +3 -3
  103. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/uiUtils.js.html +7 -13
  104. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/urlQueryUtils.js.html +18 -93
  105. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Close/close.jsx.html +3 -3
  106. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Close/index.html +3 -3
  107. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/LinkButton/index.html +3 -3
  108. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/LinkButton/linkButton.jsx.html +3 -3
  109. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Tooltip/index.html +3 -3
  110. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Tooltip/tooltip.jsx.html +3 -3
  111. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/globalConstants.jsx.html +7 -10
  112. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/index.html +7 -7
  113. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/DialogStep/dialogStep.js.html +3 -3
  114. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/DialogStep/index.html +3 -3
  115. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/dialog.js.html +3 -3
  116. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/index.html +3 -3
  117. package/coverage/{rabbit-ui-kit → ui-kit}/src/index.html +7 -7
  118. package/coverage/{rabbit-ui-kit → ui-kit}/src/index.js.html +8 -26
  119. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/cacheAndConcurrentRequestsResolver.js.html +30 -222
  120. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/cachedRobustExternalApiCallerService.js.html +24 -147
  121. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/cancelProcessing.js.html +3 -3
  122. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/concurrentCalculationsMetadataHolder.js.html +19 -103
  123. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/externalApiProvider.js.html +3 -3
  124. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/externalServicesStatsCollector.js.html +11 -23
  125. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/index.html +38 -38
  126. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/robustExternalAPICallerService.js.html +53 -305
  127. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/index.html +24 -24
  128. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/swapProvider.js.html +10 -28
  129. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +277 -1009
  130. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/baseSwapCreationInfo.js.html +3 -3
  131. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwap.js.html +3 -3
  132. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwapWithFiatData.js.html +9 -27
  133. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/index.html +13 -13
  134. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/index.html +7 -7
  135. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/publicSwapService.js.html +53 -374
  136. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/index.html +13 -13
  137. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/swapUtils.js.html +32 -179
  138. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/BackgroundTitle.stories.jsx.html +3 -3
  139. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LinesOfText.stories.jsx.html +3 -3
  140. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LoadingDots.stories.jsx.html +3 -3
  141. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/QrCode.stories.jsx.html +3 -3
  142. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/RateSelector.stories.jsx.html +3 -3
  143. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/Validation.stories.jsx.html +3 -3
  144. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Button.stories.jsx.html +3 -3
  145. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Close.stories.jsx.html +3 -3
  146. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/LinkButton.stories.jsx.html +3 -3
  147. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/index.html +3 -3
  148. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/index.html +3 -3
  149. package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/LineWithIconLink.stories.jsx.html +3 -3
  150. package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/TitledLineWithIconLink.stories.jsx.html +3 -3
  151. package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/index.html +3 -3
  152. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/Dialog.stories.jsx.html +3 -3
  153. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +3 -3
  154. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/index.html +3 -3
  155. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +3 -3
  156. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/index.html +3 -3
  157. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/index.html +3 -3
  158. package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/exampleContent.jsx.html +3 -3
  159. package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/index.html +3 -3
  160. package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +3 -3
  161. package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/index.html +3 -3
  162. package/dist/index.cjs +65 -49
  163. package/dist/index.cjs.map +1 -1
  164. package/dist/index.css +5 -2
  165. package/dist/index.css.map +1 -1
  166. package/dist/index.modern.js +43 -28
  167. package/dist/index.modern.js.map +1 -1
  168. package/dist/index.module.js +65 -49
  169. package/dist/index.module.js.map +1 -1
  170. package/dist/index.umd.js +65 -49
  171. package/dist/index.umd.js.map +1 -1
  172. package/package.json +5 -3
  173. package/src/assets/wrappedImages/arrowIcon.jsx +1 -7
  174. package/src/assets/wrappedImages/arrowTosca.jsx +1 -7
  175. package/src/assets/wrappedImages/arrowWhite.jsx +1 -7
  176. package/src/assets/wrappedImages/darkRectangle.jsx +2 -13
  177. package/src/assets/wrappedImages/determinedError.jsx +2 -13
  178. package/src/assets/wrappedImages/failedValidationIcon.jsx +2 -16
  179. package/src/assets/wrappedImages/infoIcon.jsx +1 -7
  180. package/src/assets/wrappedImages/noticeQuestionIcon.jsx +1 -7
  181. package/src/assets/wrappedImages/successfulValidationIcon.jsx +2 -16
  182. package/src/assets/wrappedImages/walletIcon.jsx +3 -19
  183. package/src/common/amountUtils.js +36 -124
  184. package/src/common/external-apis/ipAddressProviders.js +22 -71
  185. package/src/common/fiatCurrenciesService.js +4 -12
  186. package/src/common/models/coin.js +2 -6
  187. package/src/common/tests/amountUtils/composeRateText.test.js +12 -69
  188. package/src/common/tests/integration/external-apis/ipAddressProviders/getClientIpAddress.test.js +1 -3
  189. package/src/common/utils/cache.js +10 -36
  190. package/src/common/utils/emailAPI.js +1 -3
  191. package/src/common/utils/logging/logger.js +5 -12
  192. package/src/components/atoms/AssetIcon/AssetIcon.jsx +4 -14
  193. package/src/components/atoms/AssetSelection/AssetSelection.jsx +3 -11
  194. package/src/components/atoms/BackgroundTitle/BackgroundTitle.jsx +2 -12
  195. package/src/components/atoms/InformationMessage/InformationMessage.jsx +2 -12
  196. package/src/components/atoms/InformationMessage/information-message.module.scss +4 -2
  197. package/src/components/atoms/Input/Input.jsx +9 -25
  198. package/src/components/atoms/LoadingDots/LoadingDots.jsx +8 -28
  199. package/src/components/atoms/NoticeIcon/NoticeIcon.jsx +4 -14
  200. package/src/components/atoms/QrCode/QrCode.jsx +2 -8
  201. package/src/components/atoms/RateSelector/RateSelector.jsx +4 -12
  202. package/src/components/atoms/SupportChat/SupportChat.jsx +1 -6
  203. package/src/components/atoms/Textarea/Textarea.jsx +11 -23
  204. package/src/components/atoms/TitleBox/TitleBox.jsx +7 -30
  205. package/src/components/atoms/TitleBox/title-box.module.scss +2 -0
  206. package/src/components/atoms/Tooltip/Tooltip.jsx +6 -8
  207. package/src/components/atoms/TwoLinesOfText/LinesOfText.jsx +5 -11
  208. package/src/components/atoms/Validation/Validation.jsx +9 -7
  209. package/src/components/atoms/buttons/Button/Button.jsx +17 -47
  210. package/src/components/atoms/buttons/Close/Close.jsx +3 -9
  211. package/src/components/atoms/buttons/LinkButton/LinkButton.jsx +5 -14
  212. package/src/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx +7 -25
  213. package/src/components/hooks/useCallHandlingErrors.js +1 -5
  214. package/src/components/hooks/useReferredState.js +1 -1
  215. package/src/components/molecules/AmountInput/AmountInput.jsx +50 -167
  216. package/src/components/molecules/CoinPicker/CoinPicker.jsx +61 -194
  217. package/src/components/molecules/CoinPicker/coin-picker.module.scss +1 -4
  218. package/src/components/molecules/LineWithIconLink/LineWithIconLink.jsx +1 -6
  219. package/src/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx +3 -5
  220. package/src/components/organisms/Dialog/Dialog.jsx +38 -88
  221. package/src/components/organisms/Dialog/DialogStep/DialogStep.jsx +57 -211
  222. package/src/components/organisms/Dialog/DialogStep/dialog-step.module.scss +2 -4
  223. package/src/components/organisms/SwapForm/SwapForm.jsx +139 -314
  224. package/src/components/tests/utils/inputValueProviders/provideFormatOfFloatValueByInputString.test.js +5 -12
  225. package/src/components/tests/utils/urlQueryUtils/getQueryParameterValues.test.js +3 -9
  226. package/src/components/tests/utils/urlQueryUtils/saveQueryParameterAndValues.test.js +11 -51
  227. package/src/components/utils/inputValueProviders.js +3 -11
  228. package/src/components/utils/uiUtils.js +1 -3
  229. package/src/components/utils/urlQueryUtils.js +10 -35
  230. package/src/constants/globalConstants.jsx +1 -2
  231. package/src/index.js +2 -8
  232. package/src/robustExteranlApiCallerService/cacheAndConcurrentRequestsResolver.js +22 -86
  233. package/src/robustExteranlApiCallerService/cachedRobustExternalApiCallerService.js +15 -56
  234. package/src/robustExteranlApiCallerService/concurrentCalculationsMetadataHolder.js +11 -39
  235. package/src/robustExteranlApiCallerService/externalServicesStatsCollector.js +3 -7
  236. package/src/robustExteranlApiCallerService/robustExternalAPICallerService.js +45 -129
  237. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/_performCallAttempt.test.js +76 -330
  238. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/callExternalAPI.test.js +57 -270
  239. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/constructor.test.js +3 -15
  240. package/src/swaps-lib/external-apis/swapProvider.js +1 -7
  241. package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +117 -361
  242. package/src/swaps-lib/models/existingSwapWithFiatData.js +1 -7
  243. package/src/swaps-lib/services/publicSwapService.js +47 -154
  244. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/_fetchSupportedCurrenciesIfNeeded.test.js +33 -118
  245. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/createSwap.test.js +23 -85
  246. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getAllSupportedCurrencies.test.js +4 -14
  247. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getDepositCurrencies.test.js +3 -9
  248. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getSwapInfo.test.js +148 -460
  249. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getWithdrawalCurrencies.test.js +5 -11
  250. package/src/swaps-lib/test/utils/swapUtils/safeHandleRequestsLimitExceeding.test.js +2 -10
  251. package/src/swaps-lib/utils/swapUtils.js +24 -73
  252. package/coverage/rabbit-ui-kit/src/assets/wrappedImages/failedValidationIcon.jsx.html +0 -244
  253. package/coverage/rabbit-ui-kit/src/components/atoms/LoadingDots/LoadingDots.jsx.html +0 -256
  254. package/coverage/rabbit-ui-kit/src/components/atoms/LoadingDots/index.html +0 -116
  255. package/coverage/rabbit-ui-kit/src/components/atoms/TwoLinesOfText/index.html +0 -116
@@ -3,7 +3,7 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for rabbit-ui-kit/src/components/molecules/CoinPicker/CoinPicker.jsx</title>
6
+ <title>Code coverage report for ui-kit/src/components/molecules/CoinPicker/CoinPicker.jsx</title>
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../../../../../prettify.css" />
9
9
  <link rel="stylesheet" href="../../../../../base.css" />
@@ -19,13 +19,13 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">rabbit-ui-kit/src/components/molecules/CoinPicker</a> CoinPicker.jsx</h1>
22
+ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">ui-kit/src/components/molecules/CoinPicker</a> CoinPicker.jsx</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/642</span>
28
+ <span class='fraction'>0/509</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/642</span>
49
+ <span class='fraction'>0/509</span>
50
50
  </div>
51
51
 
52
52
 
@@ -572,273 +572,7 @@
572
572
  <a name='L507'></a><a href='#L507'>507</a>
573
573
  <a name='L508'></a><a href='#L508'>508</a>
574
574
  <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a>
593
- <a name='L528'></a><a href='#L528'>528</a>
594
- <a name='L529'></a><a href='#L529'>529</a>
595
- <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a>
597
- <a name='L532'></a><a href='#L532'>532</a>
598
- <a name='L533'></a><a href='#L533'>533</a>
599
- <a name='L534'></a><a href='#L534'>534</a>
600
- <a name='L535'></a><a href='#L535'>535</a>
601
- <a name='L536'></a><a href='#L536'>536</a>
602
- <a name='L537'></a><a href='#L537'>537</a>
603
- <a name='L538'></a><a href='#L538'>538</a>
604
- <a name='L539'></a><a href='#L539'>539</a>
605
- <a name='L540'></a><a href='#L540'>540</a>
606
- <a name='L541'></a><a href='#L541'>541</a>
607
- <a name='L542'></a><a href='#L542'>542</a>
608
- <a name='L543'></a><a href='#L543'>543</a>
609
- <a name='L544'></a><a href='#L544'>544</a>
610
- <a name='L545'></a><a href='#L545'>545</a>
611
- <a name='L546'></a><a href='#L546'>546</a>
612
- <a name='L547'></a><a href='#L547'>547</a>
613
- <a name='L548'></a><a href='#L548'>548</a>
614
- <a name='L549'></a><a href='#L549'>549</a>
615
- <a name='L550'></a><a href='#L550'>550</a>
616
- <a name='L551'></a><a href='#L551'>551</a>
617
- <a name='L552'></a><a href='#L552'>552</a>
618
- <a name='L553'></a><a href='#L553'>553</a>
619
- <a name='L554'></a><a href='#L554'>554</a>
620
- <a name='L555'></a><a href='#L555'>555</a>
621
- <a name='L556'></a><a href='#L556'>556</a>
622
- <a name='L557'></a><a href='#L557'>557</a>
623
- <a name='L558'></a><a href='#L558'>558</a>
624
- <a name='L559'></a><a href='#L559'>559</a>
625
- <a name='L560'></a><a href='#L560'>560</a>
626
- <a name='L561'></a><a href='#L561'>561</a>
627
- <a name='L562'></a><a href='#L562'>562</a>
628
- <a name='L563'></a><a href='#L563'>563</a>
629
- <a name='L564'></a><a href='#L564'>564</a>
630
- <a name='L565'></a><a href='#L565'>565</a>
631
- <a name='L566'></a><a href='#L566'>566</a>
632
- <a name='L567'></a><a href='#L567'>567</a>
633
- <a name='L568'></a><a href='#L568'>568</a>
634
- <a name='L569'></a><a href='#L569'>569</a>
635
- <a name='L570'></a><a href='#L570'>570</a>
636
- <a name='L571'></a><a href='#L571'>571</a>
637
- <a name='L572'></a><a href='#L572'>572</a>
638
- <a name='L573'></a><a href='#L573'>573</a>
639
- <a name='L574'></a><a href='#L574'>574</a>
640
- <a name='L575'></a><a href='#L575'>575</a>
641
- <a name='L576'></a><a href='#L576'>576</a>
642
- <a name='L577'></a><a href='#L577'>577</a>
643
- <a name='L578'></a><a href='#L578'>578</a>
644
- <a name='L579'></a><a href='#L579'>579</a>
645
- <a name='L580'></a><a href='#L580'>580</a>
646
- <a name='L581'></a><a href='#L581'>581</a>
647
- <a name='L582'></a><a href='#L582'>582</a>
648
- <a name='L583'></a><a href='#L583'>583</a>
649
- <a name='L584'></a><a href='#L584'>584</a>
650
- <a name='L585'></a><a href='#L585'>585</a>
651
- <a name='L586'></a><a href='#L586'>586</a>
652
- <a name='L587'></a><a href='#L587'>587</a>
653
- <a name='L588'></a><a href='#L588'>588</a>
654
- <a name='L589'></a><a href='#L589'>589</a>
655
- <a name='L590'></a><a href='#L590'>590</a>
656
- <a name='L591'></a><a href='#L591'>591</a>
657
- <a name='L592'></a><a href='#L592'>592</a>
658
- <a name='L593'></a><a href='#L593'>593</a>
659
- <a name='L594'></a><a href='#L594'>594</a>
660
- <a name='L595'></a><a href='#L595'>595</a>
661
- <a name='L596'></a><a href='#L596'>596</a>
662
- <a name='L597'></a><a href='#L597'>597</a>
663
- <a name='L598'></a><a href='#L598'>598</a>
664
- <a name='L599'></a><a href='#L599'>599</a>
665
- <a name='L600'></a><a href='#L600'>600</a>
666
- <a name='L601'></a><a href='#L601'>601</a>
667
- <a name='L602'></a><a href='#L602'>602</a>
668
- <a name='L603'></a><a href='#L603'>603</a>
669
- <a name='L604'></a><a href='#L604'>604</a>
670
- <a name='L605'></a><a href='#L605'>605</a>
671
- <a name='L606'></a><a href='#L606'>606</a>
672
- <a name='L607'></a><a href='#L607'>607</a>
673
- <a name='L608'></a><a href='#L608'>608</a>
674
- <a name='L609'></a><a href='#L609'>609</a>
675
- <a name='L610'></a><a href='#L610'>610</a>
676
- <a name='L611'></a><a href='#L611'>611</a>
677
- <a name='L612'></a><a href='#L612'>612</a>
678
- <a name='L613'></a><a href='#L613'>613</a>
679
- <a name='L614'></a><a href='#L614'>614</a>
680
- <a name='L615'></a><a href='#L615'>615</a>
681
- <a name='L616'></a><a href='#L616'>616</a>
682
- <a name='L617'></a><a href='#L617'>617</a>
683
- <a name='L618'></a><a href='#L618'>618</a>
684
- <a name='L619'></a><a href='#L619'>619</a>
685
- <a name='L620'></a><a href='#L620'>620</a>
686
- <a name='L621'></a><a href='#L621'>621</a>
687
- <a name='L622'></a><a href='#L622'>622</a>
688
- <a name='L623'></a><a href='#L623'>623</a>
689
- <a name='L624'></a><a href='#L624'>624</a>
690
- <a name='L625'></a><a href='#L625'>625</a>
691
- <a name='L626'></a><a href='#L626'>626</a>
692
- <a name='L627'></a><a href='#L627'>627</a>
693
- <a name='L628'></a><a href='#L628'>628</a>
694
- <a name='L629'></a><a href='#L629'>629</a>
695
- <a name='L630'></a><a href='#L630'>630</a>
696
- <a name='L631'></a><a href='#L631'>631</a>
697
- <a name='L632'></a><a href='#L632'>632</a>
698
- <a name='L633'></a><a href='#L633'>633</a>
699
- <a name='L634'></a><a href='#L634'>634</a>
700
- <a name='L635'></a><a href='#L635'>635</a>
701
- <a name='L636'></a><a href='#L636'>636</a>
702
- <a name='L637'></a><a href='#L637'>637</a>
703
- <a name='L638'></a><a href='#L638'>638</a>
704
- <a name='L639'></a><a href='#L639'>639</a>
705
- <a name='L640'></a><a href='#L640'>640</a>
706
- <a name='L641'></a><a href='#L641'>641</a>
707
- <a name='L642'></a><a href='#L642'>642</a>
708
- <a name='L643'></a><a href='#L643'>643</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
709
- <span class="cline-any cline-no">&nbsp;</span>
710
- <span class="cline-any cline-no">&nbsp;</span>
711
- <span class="cline-any cline-no">&nbsp;</span>
712
- <span class="cline-any cline-no">&nbsp;</span>
713
- <span class="cline-any cline-no">&nbsp;</span>
714
- <span class="cline-any cline-no">&nbsp;</span>
715
- <span class="cline-any cline-no">&nbsp;</span>
716
- <span class="cline-any cline-no">&nbsp;</span>
717
- <span class="cline-any cline-no">&nbsp;</span>
718
- <span class="cline-any cline-no">&nbsp;</span>
719
- <span class="cline-any cline-no">&nbsp;</span>
720
- <span class="cline-any cline-no">&nbsp;</span>
721
- <span class="cline-any cline-no">&nbsp;</span>
722
- <span class="cline-any cline-no">&nbsp;</span>
723
- <span class="cline-any cline-no">&nbsp;</span>
724
- <span class="cline-any cline-no">&nbsp;</span>
725
- <span class="cline-any cline-no">&nbsp;</span>
726
- <span class="cline-any cline-no">&nbsp;</span>
727
- <span class="cline-any cline-no">&nbsp;</span>
728
- <span class="cline-any cline-no">&nbsp;</span>
729
- <span class="cline-any cline-no">&nbsp;</span>
730
- <span class="cline-any cline-no">&nbsp;</span>
731
- <span class="cline-any cline-no">&nbsp;</span>
732
- <span class="cline-any cline-no">&nbsp;</span>
733
- <span class="cline-any cline-no">&nbsp;</span>
734
- <span class="cline-any cline-no">&nbsp;</span>
735
- <span class="cline-any cline-no">&nbsp;</span>
736
- <span class="cline-any cline-no">&nbsp;</span>
737
- <span class="cline-any cline-no">&nbsp;</span>
738
- <span class="cline-any cline-no">&nbsp;</span>
739
- <span class="cline-any cline-no">&nbsp;</span>
740
- <span class="cline-any cline-no">&nbsp;</span>
741
- <span class="cline-any cline-no">&nbsp;</span>
742
- <span class="cline-any cline-no">&nbsp;</span>
743
- <span class="cline-any cline-no">&nbsp;</span>
744
- <span class="cline-any cline-no">&nbsp;</span>
745
- <span class="cline-any cline-no">&nbsp;</span>
746
- <span class="cline-any cline-no">&nbsp;</span>
747
- <span class="cline-any cline-no">&nbsp;</span>
748
- <span class="cline-any cline-no">&nbsp;</span>
749
- <span class="cline-any cline-no">&nbsp;</span>
750
- <span class="cline-any cline-no">&nbsp;</span>
751
- <span class="cline-any cline-no">&nbsp;</span>
752
- <span class="cline-any cline-no">&nbsp;</span>
753
- <span class="cline-any cline-no">&nbsp;</span>
754
- <span class="cline-any cline-no">&nbsp;</span>
755
- <span class="cline-any cline-no">&nbsp;</span>
756
- <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-no">&nbsp;</span>
758
- <span class="cline-any cline-no">&nbsp;</span>
759
- <span class="cline-any cline-no">&nbsp;</span>
760
- <span class="cline-any cline-no">&nbsp;</span>
761
- <span class="cline-any cline-no">&nbsp;</span>
762
- <span class="cline-any cline-no">&nbsp;</span>
763
- <span class="cline-any cline-no">&nbsp;</span>
764
- <span class="cline-any cline-no">&nbsp;</span>
765
- <span class="cline-any cline-no">&nbsp;</span>
766
- <span class="cline-any cline-no">&nbsp;</span>
767
- <span class="cline-any cline-no">&nbsp;</span>
768
- <span class="cline-any cline-no">&nbsp;</span>
769
- <span class="cline-any cline-no">&nbsp;</span>
770
- <span class="cline-any cline-no">&nbsp;</span>
771
- <span class="cline-any cline-no">&nbsp;</span>
772
- <span class="cline-any cline-no">&nbsp;</span>
773
- <span class="cline-any cline-no">&nbsp;</span>
774
- <span class="cline-any cline-no">&nbsp;</span>
775
- <span class="cline-any cline-no">&nbsp;</span>
776
- <span class="cline-any cline-no">&nbsp;</span>
777
- <span class="cline-any cline-no">&nbsp;</span>
778
- <span class="cline-any cline-no">&nbsp;</span>
779
- <span class="cline-any cline-no">&nbsp;</span>
780
- <span class="cline-any cline-no">&nbsp;</span>
781
- <span class="cline-any cline-no">&nbsp;</span>
782
- <span class="cline-any cline-no">&nbsp;</span>
783
- <span class="cline-any cline-no">&nbsp;</span>
784
- <span class="cline-any cline-no">&nbsp;</span>
785
- <span class="cline-any cline-no">&nbsp;</span>
786
- <span class="cline-any cline-no">&nbsp;</span>
787
- <span class="cline-any cline-no">&nbsp;</span>
788
- <span class="cline-any cline-no">&nbsp;</span>
789
- <span class="cline-any cline-no">&nbsp;</span>
790
- <span class="cline-any cline-no">&nbsp;</span>
791
- <span class="cline-any cline-no">&nbsp;</span>
792
- <span class="cline-any cline-no">&nbsp;</span>
793
- <span class="cline-any cline-no">&nbsp;</span>
794
- <span class="cline-any cline-no">&nbsp;</span>
795
- <span class="cline-any cline-no">&nbsp;</span>
796
- <span class="cline-any cline-no">&nbsp;</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-no">&nbsp;</span>
799
- <span class="cline-any cline-no">&nbsp;</span>
800
- <span class="cline-any cline-no">&nbsp;</span>
801
- <span class="cline-any cline-no">&nbsp;</span>
802
- <span class="cline-any cline-no">&nbsp;</span>
803
- <span class="cline-any cline-no">&nbsp;</span>
804
- <span class="cline-any cline-no">&nbsp;</span>
805
- <span class="cline-any cline-no">&nbsp;</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-no">&nbsp;</span>
809
- <span class="cline-any cline-no">&nbsp;</span>
810
- <span class="cline-any cline-no">&nbsp;</span>
811
- <span class="cline-any cline-no">&nbsp;</span>
812
- <span class="cline-any cline-no">&nbsp;</span>
813
- <span class="cline-any cline-no">&nbsp;</span>
814
- <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-no">&nbsp;</span>
816
- <span class="cline-any cline-no">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-no">&nbsp;</span>
819
- <span class="cline-any cline-no">&nbsp;</span>
820
- <span class="cline-any cline-no">&nbsp;</span>
821
- <span class="cline-any cline-no">&nbsp;</span>
822
- <span class="cline-any cline-no">&nbsp;</span>
823
- <span class="cline-any cline-no">&nbsp;</span>
824
- <span class="cline-any cline-no">&nbsp;</span>
825
- <span class="cline-any cline-no">&nbsp;</span>
826
- <span class="cline-any cline-no">&nbsp;</span>
827
- <span class="cline-any cline-no">&nbsp;</span>
828
- <span class="cline-any cline-no">&nbsp;</span>
829
- <span class="cline-any cline-no">&nbsp;</span>
830
- <span class="cline-any cline-no">&nbsp;</span>
831
- <span class="cline-any cline-no">&nbsp;</span>
832
- <span class="cline-any cline-no">&nbsp;</span>
833
- <span class="cline-any cline-no">&nbsp;</span>
834
- <span class="cline-any cline-no">&nbsp;</span>
835
- <span class="cline-any cline-no">&nbsp;</span>
836
- <span class="cline-any cline-no">&nbsp;</span>
837
- <span class="cline-any cline-no">&nbsp;</span>
838
- <span class="cline-any cline-no">&nbsp;</span>
839
- <span class="cline-any cline-no">&nbsp;</span>
840
- <span class="cline-any cline-no">&nbsp;</span>
841
- <span class="cline-any cline-no">&nbsp;</span>
575
+ <a name='L510'></a><a href='#L510'>510</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
842
576
  <span class="cline-any cline-no">&nbsp;</span>
843
577
  <span class="cline-any cline-no">&nbsp;</span>
844
578
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1419,7 +1153,7 @@
1419
1153
  <span class="cstat-no" title="statement not covered" > mode = COIN_PICKER_MODES.BUTTON,</span>
1420
1154
  <span class="cstat-no" title="statement not covered" > allCoins,</span>
1421
1155
  <span class="cstat-no" title="statement not covered" > initiallyEnabledCoinsList,</span>
1422
- <span class="cstat-no" title="statement not covered" > handleClick = (ticker) =&gt; {},</span>
1156
+ <span class="cstat-no" title="statement not covered" > handleClick = ticker =&gt; {},</span>
1423
1157
  <span class="cstat-no" title="statement not covered" > triggerToReloadData,</span>
1424
1158
  <span class="cstat-no" title="statement not covered" > search = false,</span>
1425
1159
  <span class="cstat-no" title="statement not covered" > searchAdaptive = true,</span>
@@ -1428,7 +1162,7 @@
1428
1162
  <span class="cstat-no" title="statement not covered" > loadCoinsAndContent = null,</span>
1429
1163
  <span class="cstat-no" title="statement not covered" > showRequestMissingCoinsInfoMessage = true,</span>
1430
1164
  <span class="cstat-no" title="statement not covered" > supportUrl = null,</span>
1431
- <span class="cstat-no" title="statement not covered" > coinToIconPaths = (coin) =&gt; ({</span>
1165
+ <span class="cstat-no" title="statement not covered" > coinToIconPaths = coin =&gt; ({</span>
1432
1166
  <span class="cstat-no" title="statement not covered" > assetIconSrc: undefined,</span>
1433
1167
  <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc: undefined,</span>
1434
1168
  <span class="cstat-no" title="statement not covered" > }),</span>
@@ -1440,12 +1174,8 @@
1440
1174
  <span class="cstat-no" title="statement not covered" ></span>
1441
1175
  <span class="cstat-no" title="statement not covered" > const [coins, setCoins] = useState(null);</span>
1442
1176
  <span class="cstat-no" title="statement not covered" > const [filteredCoins, setFilteredCoins] = useState([]);</span>
1443
- <span class="cstat-no" title="statement not covered" > const [initiallyEnabledCoins, setInitiallyEnabledCoins] = useReferredState(</span>
1444
- <span class="cstat-no" title="statement not covered" > {}</span>
1445
- <span class="cstat-no" title="statement not covered" > );</span>
1446
- <span class="cstat-no" title="statement not covered" > const [currentlyEnabledCoins, setCurrentlyEnabledCoins] = useReferredState(</span>
1447
- <span class="cstat-no" title="statement not covered" > {}</span>
1448
- <span class="cstat-no" title="statement not covered" > );</span>
1177
+ <span class="cstat-no" title="statement not covered" > const [initiallyEnabledCoins, setInitiallyEnabledCoins] = useReferredState({});</span>
1178
+ <span class="cstat-no" title="statement not covered" > const [currentlyEnabledCoins, setCurrentlyEnabledCoins] = useReferredState({});</span>
1449
1179
  <span class="cstat-no" title="statement not covered" > const [searchFieldValue, setSearchFieldValue] = useState("");</span>
1450
1180
  <span class="cstat-no" title="statement not covered" > const [scrollWrapperClass, setScrollWrapperClass] = useState("");</span>
1451
1181
  <span class="cstat-no" title="statement not covered" ></span>
@@ -1460,17 +1190,13 @@
1460
1190
  <span class="cstat-no" title="statement not covered" > const searchRef = useRef();</span>
1461
1191
  <span class="cstat-no" title="statement not covered" > const scrollContainerRef = useRef();</span>
1462
1192
  <span class="cstat-no" title="statement not covered" > const skeletonItemsCount =</span>
1463
- <span class="cstat-no" title="statement not covered" > initiallyEnabledCoinsList?.length ||</span>
1464
- <span class="cstat-no" title="statement not covered" > (partialLoadingEnabled ? partialLoadingIncrement : 6);</span>
1193
+ <span class="cstat-no" title="statement not covered" > initiallyEnabledCoinsList?.length || (partialLoadingEnabled ? partialLoadingIncrement : 6);</span>
1465
1194
  <span class="cstat-no" title="statement not covered" ></span>
1466
1195
  <span class="cstat-no" title="statement not covered" > const defaultLoadCoinsAndContent = async () =&gt; {</span>
1467
- <span class="cstat-no" title="statement not covered" > const allCoinsSorted = sortCoinsArrayByAlphabet(</span>
1468
- <span class="cstat-no" title="statement not covered" > allCoins,</span>
1469
- <span class="cstat-no" title="statement not covered" > composeEnabledCoinsObject(allCoins)</span>
1470
- <span class="cstat-no" title="statement not covered" > );</span>
1196
+ <span class="cstat-no" title="statement not covered" > const allCoinsSorted = sortCoinsArrayByAlphabet(allCoins, composeEnabledCoinsObject(allCoins));</span>
1471
1197
  <span class="cstat-no" title="statement not covered" > return {</span>
1472
1198
  <span class="cstat-no" title="statement not covered" > coins: allCoinsSorted,</span>
1473
- <span class="cstat-no" title="statement not covered" > content: allCoinsSorted.map((c) =&gt; ({</span>
1199
+ <span class="cstat-no" title="statement not covered" > content: allCoinsSorted.map(c =&gt; ({</span>
1474
1200
  <span class="cstat-no" title="statement not covered" > coin: c,</span>
1475
1201
  <span class="cstat-no" title="statement not covered" > subtitle: c.blockchain?.name,</span>
1476
1202
  <span class="cstat-no" title="statement not covered" > })),</span>
@@ -1481,28 +1207,20 @@
1481
1207
  <span class="cstat-no" title="statement not covered" > const sortCoinsArrayByAlphabet = (coinsToSort, enabledCoinsObject) =&gt; {</span>
1482
1208
  <span class="cstat-no" title="statement not covered" > return [</span>
1483
1209
  <span class="cstat-no" title="statement not covered" > ...coinsToSort</span>
1484
- <span class="cstat-no" title="statement not covered" > .filter((coin) =&gt; enabledCoinsObject[coin.ticker])</span>
1485
- <span class="cstat-no" title="statement not covered" > .sort(</span>
1486
- <span class="cstat-no" title="statement not covered" > (a, b) =&gt;</span>
1487
- <span class="cstat-no" title="statement not covered" > a.latinName.toUpperCase() &gt; b.latinName.toUpperCase()</span>
1488
- <span class="cstat-no" title="statement not covered" > ),</span>
1210
+ <span class="cstat-no" title="statement not covered" > .filter(coin =&gt; enabledCoinsObject[coin.ticker])</span>
1211
+ <span class="cstat-no" title="statement not covered" > .sort((a, b) =&gt; a.latinName.toUpperCase() &gt; b.latinName.toUpperCase()),</span>
1489
1212
  <span class="cstat-no" title="statement not covered" > ...coinsToSort</span>
1490
- <span class="cstat-no" title="statement not covered" > .filter((coin) =&gt; !enabledCoinsObject[coin.ticker])</span>
1491
- <span class="cstat-no" title="statement not covered" > .sort(</span>
1492
- <span class="cstat-no" title="statement not covered" > (a, b) =&gt;</span>
1493
- <span class="cstat-no" title="statement not covered" > a.latinName.toUpperCase() &gt; b.latinName.toUpperCase()</span>
1494
- <span class="cstat-no" title="statement not covered" > ),</span>
1213
+ <span class="cstat-no" title="statement not covered" > .filter(coin =&gt; !enabledCoinsObject[coin.ticker])</span>
1214
+ <span class="cstat-no" title="statement not covered" > .sort((a, b) =&gt; a.latinName.toUpperCase() &gt; b.latinName.toUpperCase()),</span>
1495
1215
  <span class="cstat-no" title="statement not covered" > ];</span>
1496
1216
  <span class="cstat-no" title="statement not covered" > };</span>
1497
1217
  <span class="cstat-no" title="statement not covered" ></span>
1498
- <span class="cstat-no" title="statement not covered" > const composeEnabledCoinsObject = (coins) =&gt; {</span>
1218
+ <span class="cstat-no" title="statement not covered" > const composeEnabledCoinsObject = coins =&gt; {</span>
1499
1219
  <span class="cstat-no" title="statement not covered" > if (mode === COIN_PICKER_MODES.CHECKBOX) {</span>
1500
1220
  <span class="cstat-no" title="statement not covered" > return coins.reduce((prev, coin) =&gt; {</span>
1501
1221
  <span class="cstat-no" title="statement not covered" > return {</span>
1502
1222
  <span class="cstat-no" title="statement not covered" > ...prev,</span>
1503
- <span class="cstat-no" title="statement not covered" > [coin.ticker]: !!initiallyEnabledCoinsList.find(</span>
1504
- <span class="cstat-no" title="statement not covered" > (enabledCoin) =&gt; enabledCoin.ticker === coin.ticker</span>
1505
- <span class="cstat-no" title="statement not covered" > ),</span>
1223
+ <span class="cstat-no" title="statement not covered" > [coin.ticker]: !!initiallyEnabledCoinsList.find(enabledCoin =&gt; enabledCoin.ticker === coin.ticker),</span>
1506
1224
  <span class="cstat-no" title="statement not covered" > };</span>
1507
1225
  <span class="cstat-no" title="statement not covered" > }, {});</span>
1508
1226
  <span class="cstat-no" title="statement not covered" > }</span>
@@ -1511,17 +1229,17 @@
1511
1229
  <span class="cstat-no" title="statement not covered" ></span>
1512
1230
  <span class="cstat-no" title="statement not covered" > const handleToggleClick = (ticker, resetButtonLoader = () =&gt; {}) =&gt; {</span>
1513
1231
  <span class="cstat-no" title="statement not covered" > resetButtonLoader &amp;&amp; resetButtonLoader();</span>
1514
- <span class="cstat-no" title="statement not covered" > setCurrentlyEnabledCoins((prev) =&gt; {</span>
1232
+ <span class="cstat-no" title="statement not covered" > setCurrentlyEnabledCoins(prev =&gt; {</span>
1515
1233
  <span class="cstat-no" title="statement not covered" > return { ...prev, [ticker]: !prev[ticker] };</span>
1516
1234
  <span class="cstat-no" title="statement not covered" > });</span>
1517
1235
  <span class="cstat-no" title="statement not covered" > };</span>
1518
1236
  <span class="cstat-no" title="statement not covered" ></span>
1519
- <span class="cstat-no" title="statement not covered" > const handleCoinClick = (coin) =&gt; {</span>
1237
+ <span class="cstat-no" title="statement not covered" > const handleCoinClick = coin =&gt; {</span>
1520
1238
  <span class="cstat-no" title="statement not covered" > if (mode === COIN_PICKER_MODES.CHECKBOX) handleToggleClick(coin.ticker);</span>
1521
1239
  <span class="cstat-no" title="statement not covered" > handleClick(coin.ticker);</span>
1522
1240
  <span class="cstat-no" title="statement not covered" > };</span>
1523
1241
  <span class="cstat-no" title="statement not covered" ></span>
1524
- <span class="cstat-no" title="statement not covered" > const handleSearchAsset = (value) =&gt; {</span>
1242
+ <span class="cstat-no" title="statement not covered" > const handleSearchAsset = value =&gt; {</span>
1525
1243
  <span class="cstat-no" title="statement not covered" > // TODO: [refactoring, high] use unified search function. task_id=be0475316f374dd4a926c948d969e704</span>
1526
1244
  <span class="cstat-no" title="statement not covered" > setSearchFieldValue(value); // Trim the input to handle leading/trailing spaces</span>
1527
1245
  <span class="cstat-no" title="statement not covered" > const searchTerm = value.trim().toLowerCase();</span>
@@ -1529,10 +1247,10 @@
1529
1247
  <span class="cstat-no" title="statement not covered" > const searchWords = searchTerm.split(/\s+/); // Split search terms on whitespace</span>
1530
1248
  <span class="cstat-no" title="statement not covered" ></span>
1531
1249
  <span class="cstat-no" title="statement not covered" > const filteredAndSortedCoins = coins</span>
1532
- <span class="cstat-no" title="statement not covered" > .filter((coin) =&gt; {</span>
1250
+ <span class="cstat-no" title="statement not covered" > .filter(coin =&gt; {</span>
1533
1251
  <span class="cstat-no" title="statement not covered" > // Check if all search words are found in any of the given properties</span>
1534
1252
  <span class="cstat-no" title="statement not covered" > return searchWords.every(</span>
1535
- <span class="cstat-no" title="statement not covered" > (word) =&gt;</span>
1253
+ <span class="cstat-no" title="statement not covered" > word =&gt;</span>
1536
1254
  <span class="cstat-no" title="statement not covered" > coin?.latinName?.toLowerCase().includes(word) ||</span>
1537
1255
  <span class="cstat-no" title="statement not covered" > coin?.ticker?.toLowerCase().includes(word) ||</span>
1538
1256
  <span class="cstat-no" title="statement not covered" > coin?.tickerPrintable?.toLowerCase().includes(word)</span>
@@ -1557,9 +1275,7 @@
1557
1275
  <span class="cstat-no" title="statement not covered" > return bMatch - aMatch;</span>
1558
1276
  <span class="cstat-no" title="statement not covered" > } else {</span>
1559
1277
  <span class="cstat-no" title="statement not covered" > // Sort remaining items alphabetically by latinName</span>
1560
- <span class="cstat-no" title="statement not covered" > return a.latinName</span>
1561
- <span class="cstat-no" title="statement not covered" > .toLowerCase()</span>
1562
- <span class="cstat-no" title="statement not covered" > .localeCompare(b.latinName.toLowerCase());</span>
1278
+ <span class="cstat-no" title="statement not covered" > return a.latinName.toLowerCase().localeCompare(b.latinName.toLowerCase());</span>
1563
1279
  <span class="cstat-no" title="statement not covered" > }</span>
1564
1280
  <span class="cstat-no" title="statement not covered" > });</span>
1565
1281
  <span class="cstat-no" title="statement not covered" ></span>
@@ -1572,9 +1288,7 @@
1572
1288
  <span class="cstat-no" title="statement not covered" > const loadCoinsAndSaveToState = () =&gt; {</span>
1573
1289
  <span class="cstat-no" title="statement not covered" > (async () =&gt; {</span>
1574
1290
  <span class="cstat-no" title="statement not covered" > try {</span>
1575
- <span class="cstat-no" title="statement not covered" > const data = loadCoinsAndContent</span>
1576
- <span class="cstat-no" title="statement not covered" > ? await loadCoinsAndContent()</span>
1577
- <span class="cstat-no" title="statement not covered" > : await defaultLoadCoinsAndContent();</span>
1291
+ <span class="cstat-no" title="statement not covered" > const data = loadCoinsAndContent ? await loadCoinsAndContent() : await defaultLoadCoinsAndContent();</span>
1578
1292
  <span class="cstat-no" title="statement not covered" > setCoins(data.coins);</span>
1579
1293
  <span class="cstat-no" title="statement not covered" > setFilteredCoins(data.coins);</span>
1580
1294
  <span class="cstat-no" title="statement not covered" > setCoinsContent(data.content);</span>
@@ -1607,13 +1321,10 @@
1607
1321
  <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
1608
1322
  <span class="cstat-no" title="statement not covered" > const enabled = currentlyEnabledCoins.current;</span>
1609
1323
  <span class="cstat-no" title="statement not covered" > if (enabled) {</span>
1610
- <span class="cstat-no" title="statement not covered" > const enabledCoinsTickers = Object.keys(enabled).filter(</span>
1611
- <span class="cstat-no" title="statement not covered" > (ticker) =&gt; enabled[ticker]</span>
1612
- <span class="cstat-no" title="statement not covered" > );</span>
1324
+ <span class="cstat-no" title="statement not covered" > const enabledCoinsTickers = Object.keys(enabled).filter(ticker =&gt; enabled[ticker]);</span>
1613
1325
  <span class="cstat-no" title="statement not covered" > setCoinPickerValue(enabledCoinsTickers);</span>
1614
1326
  <span class="cstat-no" title="statement not covered" > setCoinPickerListChanged(</span>
1615
- <span class="cstat-no" title="statement not covered" > JSON.stringify(initiallyEnabledCoins.current) !==</span>
1616
- <span class="cstat-no" title="statement not covered" > JSON.stringify(currentlyEnabledCoins.current)</span>
1327
+ <span class="cstat-no" title="statement not covered" > JSON.stringify(initiallyEnabledCoins.current) !== JSON.stringify(currentlyEnabledCoins.current)</span>
1617
1328
  <span class="cstat-no" title="statement not covered" > );</span>
1618
1329
  <span class="cstat-no" title="statement not covered" > }</span>
1619
1330
  <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
@@ -1621,20 +1332,13 @@
1621
1332
  <span class="cstat-no" title="statement not covered" ></span>
1622
1333
  <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
1623
1334
  <span class="cstat-no" title="statement not covered" > setSearchEnabled(</span>
1624
- <span class="cstat-no" title="statement not covered" > search</span>
1625
- <span class="cstat-no" title="statement not covered" > ? true</span>
1626
- <span class="cstat-no" title="statement not covered" > : searchAdaptive &amp;&amp; initiallyEnabledCoinsList</span>
1627
- <span class="cstat-no" title="statement not covered" > ? initiallyEnabledCoinsList.length &gt; 6</span>
1628
- <span class="cstat-no" title="statement not covered" > : false</span>
1335
+ <span class="cstat-no" title="statement not covered" > search ? true : searchAdaptive &amp;&amp; initiallyEnabledCoinsList ? initiallyEnabledCoinsList.length &gt; 6 : false</span>
1629
1336
  <span class="cstat-no" title="statement not covered" > );</span>
1630
1337
  <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
1631
1338
  <span class="cstat-no" title="statement not covered" > }, [search, searchAdaptive, coins]);</span>
1632
1339
  <span class="cstat-no" title="statement not covered" ></span>
1633
1340
  <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
1634
- <span class="cstat-no" title="statement not covered" > if (</span>
1635
- <span class="cstat-no" title="statement not covered" > filteredCoins?.length &gt; partialLoadingIncrement &amp;&amp;</span>
1636
- <span class="cstat-no" title="statement not covered" > partialLoadingEnabled</span>
1637
- <span class="cstat-no" title="statement not covered" > ) {</span>
1341
+ <span class="cstat-no" title="statement not covered" > if (filteredCoins?.length &gt; partialLoadingIncrement &amp;&amp; partialLoadingEnabled) {</span>
1638
1342
  <span class="cstat-no" title="statement not covered" > setLimitedCoinsNumber(partialLoadingIncrement);</span>
1639
1343
  <span class="cstat-no" title="statement not covered" > } else {</span>
1640
1344
  <span class="cstat-no" title="statement not covered" > setLimitedCoinsNumber(0);</span>
@@ -1654,7 +1358,7 @@
1654
1358
  <span class="cstat-no" title="statement not covered" > }, [limitedCoinsNumber]);</span>
1655
1359
  <span class="cstat-no" title="statement not covered" ></span>
1656
1360
  <span class="cstat-no" title="statement not covered" > const displayMoreCoins = () =&gt; {</span>
1657
- <span class="cstat-no" title="statement not covered" > setLimitedCoinsNumber((prev) =&gt; prev + partialLoadingIncrement);</span>
1361
+ <span class="cstat-no" title="statement not covered" > setLimitedCoinsNumber(prev =&gt; prev + partialLoadingIncrement);</span>
1658
1362
  <span class="cstat-no" title="statement not covered" > };</span>
1659
1363
  <span class="cstat-no" title="statement not covered" ></span>
1660
1364
  <span class="cstat-no" title="statement not covered" > const skeleton = () =&gt; {</span>
@@ -1663,18 +1367,10 @@
1663
1367
  <span class="cstat-no" title="statement not covered" > skeletonItems.push(</span>
1664
1368
  <span class="cstat-no" title="statement not covered" > &lt;div className={s["item"]} key={"coin-picker-skeleton-" + i}&gt;</span>
1665
1369
  <span class="cstat-no" title="statement not covered" > &lt;div className={s["link"] + " " + s["loading"]}&gt;</span>
1666
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1667
- <span class="cstat-no" title="statement not covered" > className={s["icon"] + " " + s["skeleton-dark"]}</span>
1668
- <span class="cstat-no" title="statement not covered" > &gt;&lt;/div&gt;</span>
1370
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["icon"] + " " + s["skeleton-dark"]}&gt;&lt;/div&gt;</span>
1669
1371
  <span class="cstat-no" title="statement not covered" > &lt;div className={s["content"]}&gt;</span>
1670
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1671
- <span class="cstat-no" title="statement not covered" > className={s["name"] + " " + s["skeleton-dark"]}</span>
1672
- <span class="cstat-no" title="statement not covered" > &gt;&lt;/div&gt;</span>
1673
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1674
- <span class="cstat-no" title="statement not covered" > className={</span>
1675
- <span class="cstat-no" title="statement not covered" > s["amount"] + " " + s["skeleton-dark"]</span>
1676
- <span class="cstat-no" title="statement not covered" > }</span>
1677
- <span class="cstat-no" title="statement not covered" > &gt;&lt;/div&gt;</span>
1372
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["name"] + " " + s["skeleton-dark"]}&gt;&lt;/div&gt;</span>
1373
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["amount"] + " " + s["skeleton-dark"]}&gt;&lt;/div&gt;</span>
1678
1374
  <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
1679
1375
  <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
1680
1376
  <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
@@ -1689,9 +1385,7 @@
1689
1385
  <span class="cstat-no" title="statement not covered" > if (scrollContainerRef.current?.scrollTop === 0)</span>
1690
1386
  <span class="cstat-no" title="statement not covered" > setScrollWrapperClass(</span>
1691
1387
  <span class="cstat-no" title="statement not covered" > s["reached-top"] +</span>
1692
- <span class="cstat-no" title="statement not covered" > (scrollContainerRef.current?.scrollHeight -</span>
1693
- <span class="cstat-no" title="statement not covered" > scrollContainerRef.current?.clientHeight ===</span>
1694
- <span class="cstat-no" title="statement not covered" > 0</span>
1388
+ <span class="cstat-no" title="statement not covered" > (scrollContainerRef.current?.scrollHeight - scrollContainerRef.current?.clientHeight === 0</span>
1695
1389
  <span class="cstat-no" title="statement not covered" > ? " " + s["reached-bottom"]</span>
1696
1390
  <span class="cstat-no" title="statement not covered" > : "")</span>
1697
1391
  <span class="cstat-no" title="statement not covered" > );</span>
@@ -1699,8 +1393,7 @@
1699
1393
  <span class="cstat-no" title="statement not covered" > if (</span>
1700
1394
  <span class="cstat-no" title="statement not covered" > scrollContainerRef.current?.scrollTop &gt; 0 &amp;&amp;</span>
1701
1395
  <span class="cstat-no" title="statement not covered" > scrollContainerRef.current?.scrollTop ===</span>
1702
- <span class="cstat-no" title="statement not covered" > scrollContainerRef.current?.scrollHeight -</span>
1703
- <span class="cstat-no" title="statement not covered" > scrollContainerRef.current?.clientHeight</span>
1396
+ <span class="cstat-no" title="statement not covered" > scrollContainerRef.current?.scrollHeight - scrollContainerRef.current?.clientHeight</span>
1704
1397
  <span class="cstat-no" title="statement not covered" > )</span>
1705
1398
  <span class="cstat-no" title="statement not covered" > setScrollWrapperClass(s["reached-bottom"]);</span>
1706
1399
  <span class="cstat-no" title="statement not covered" > };</span>
@@ -1715,17 +1408,12 @@
1715
1408
  <span class="cstat-no" title="statement not covered" ></span>
1716
1409
  <span class="cstat-no" title="statement not covered" > return coins ? (</span>
1717
1410
  <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
1718
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1719
- <span class="cstat-no" title="statement not covered" > className={</span>
1720
- <span class="cstat-no" title="statement not covered" > s["coin-picker"] +</span>
1721
- <span class="cstat-no" title="statement not covered" > (shouldShowSkeleton ? " " + s["loading"] : "")</span>
1722
- <span class="cstat-no" title="statement not covered" > }</span>
1723
- <span class="cstat-no" title="statement not covered" > &gt;</span>
1411
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["coin-picker"] + (shouldShowSkeleton ? " " + s["loading"] : "")}&gt;</span>
1724
1412
  <span class="cstat-no" title="statement not covered" > {searchEnabled ? (</span>
1725
1413
  <span class="cstat-no" title="statement not covered" > &lt;div className={s["coin-picker-search"]}&gt;</span>
1726
1414
  <span class="cstat-no" title="statement not covered" > &lt;Input</span>
1727
1415
  <span class="cstat-no" title="statement not covered" > value={searchFieldValue}</span>
1728
- <span class="cstat-no" title="statement not covered" > onChange={(e) =&gt; handleSearchAsset(e.target.value)}</span>
1416
+ <span class="cstat-no" title="statement not covered" > onChange={e =&gt; handleSearchAsset(e.target.value)}</span>
1729
1417
  <span class="cstat-no" title="statement not covered" > placeholder={texts.searchPlaceholder}</span>
1730
1418
  <span class="cstat-no" title="statement not covered" > isSmallHeight={true}</span>
1731
1419
  <span class="cstat-no" title="statement not covered" > clearButton</span>
@@ -1745,111 +1433,53 @@
1745
1433
  <span class="cstat-no" title="statement not covered" > }</span>
1746
1434
  <span class="cstat-no" title="statement not covered" > &gt;</span>
1747
1435
  <span class="cstat-no" title="statement not covered" > &lt;div</span>
1748
- <span class="cstat-no" title="statement not covered" > className={</span>
1749
- <span class="cstat-no" title="statement not covered" > s["coin-picker-wrapper-content"] +</span>
1750
- <span class="cstat-no" title="statement not covered" > (searchEnabled ? " " + s["fixed-height"] : "")</span>
1751
- <span class="cstat-no" title="statement not covered" > }</span>
1436
+ <span class="cstat-no" title="statement not covered" > className={s["coin-picker-wrapper-content"] + (searchEnabled ? " " + s["fixed-height"] : "")}</span>
1752
1437
  <span class="cstat-no" title="statement not covered" > ref={scrollContainerRef}</span>
1753
1438
  <span class="cstat-no" title="statement not covered" > onScroll={handleScroll}</span>
1754
1439
  <span class="cstat-no" title="statement not covered" > &gt;</span>
1755
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1756
- <span class="cstat-no" title="statement not covered" > className={s["coin-picker-wrapper-content-assets"]}</span>
1757
- <span class="cstat-no" title="statement not covered" > &gt;</span>
1440
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["coin-picker-wrapper-content-assets"]}&gt;</span>
1758
1441
  <span class="cstat-no" title="statement not covered" > {shouldShowSkeleton</span>
1759
1442
  <span class="cstat-no" title="statement not covered" > ? skeleton()</span>
1760
1443
  <span class="cstat-no" title="statement not covered" > : displayedCoins.map((coin, index) =&gt; {</span>
1761
- <span class="cstat-no" title="statement not covered" > const {</span>
1762
- <span class="cstat-no" title="statement not covered" > assetIconSrc,</span>
1763
- <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc,</span>
1764
- <span class="cstat-no" title="statement not covered" > } = coinToIconPaths(coin);</span>
1444
+ <span class="cstat-no" title="statement not covered" > const { assetIconSrc, assetIconProtocolSrc } = coinToIconPaths(coin);</span>
1765
1445
  <span class="cstat-no" title="statement not covered" ></span>
1766
1446
  <span class="cstat-no" title="statement not covered" > return (</span>
1767
1447
  <span class="cstat-no" title="statement not covered" > &lt;div</span>
1768
1448
  <span class="cstat-no" title="statement not covered" > className={s["item"]}</span>
1769
1449
  <span class="cstat-no" title="statement not covered" > key={`picker-${coin.ticker}-${index}`}</span>
1770
- <span class="cstat-no" title="statement not covered" > onClick={(e) =&gt;</span>
1771
- <span class="cstat-no" title="statement not covered" > handleError(</span>
1772
- <span class="cstat-no" title="statement not covered" > () =&gt;</span>
1773
- <span class="cstat-no" title="statement not covered" > handleCoinClick(coin),</span>
1774
- <span class="cstat-no" title="statement not covered" > e</span>
1775
- <span class="cstat-no" title="statement not covered" > )</span>
1776
- <span class="cstat-no" title="statement not covered" > }</span>
1450
+ <span class="cstat-no" title="statement not covered" > onClick={e =&gt; handleError(() =&gt; handleCoinClick(coin), e)}</span>
1777
1451
  <span class="cstat-no" title="statement not covered" > &gt;</span>
1778
1452
  <span class="cstat-no" title="statement not covered" > &lt;div</span>
1779
1453
  <span class="cstat-no" title="statement not covered" > className={</span>
1780
1454
  <span class="cstat-no" title="statement not covered" > s["link"] +</span>
1781
- <span class="cstat-no" title="statement not covered" > (currentlyEnabledCoins</span>
1782
- <span class="cstat-no" title="statement not covered" > .current[</span>
1783
- <span class="cstat-no" title="statement not covered" > coin.ticker</span>
1784
- <span class="cstat-no" title="statement not covered" > ] !==</span>
1785
- <span class="cstat-no" title="statement not covered" > initiallyEnabledCoins</span>
1786
- <span class="cstat-no" title="statement not covered" > .current[coin.ticker]</span>
1455
+ <span class="cstat-no" title="statement not covered" > (currentlyEnabledCoins.current[coin.ticker] !==</span>
1456
+ <span class="cstat-no" title="statement not covered" > initiallyEnabledCoins.current[coin.ticker]</span>
1787
1457
  <span class="cstat-no" title="statement not covered" > ? " " + s["outline"]</span>
1788
1458
  <span class="cstat-no" title="statement not covered" > : "")</span>
1789
1459
  <span class="cstat-no" title="statement not covered" > }</span>
1790
1460
  <span class="cstat-no" title="statement not covered" > &gt;</span>
1791
1461
  <span class="cstat-no" title="statement not covered" > &lt;AssetIcon</span>
1792
- <span class="cstat-no" title="statement not covered" > assetIconSrc={</span>
1793
- <span class="cstat-no" title="statement not covered" > assetIconSrc</span>
1794
- <span class="cstat-no" title="statement not covered" > }</span>
1795
- <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc={</span>
1796
- <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc</span>
1797
- <span class="cstat-no" title="statement not covered" > }</span>
1798
- <span class="cstat-no" title="statement not covered" > fallbackSrc={</span>
1799
- <span class="cstat-no" title="statement not covered" > FALLBACK_ASSET_ICON_URL</span>
1800
- <span class="cstat-no" title="statement not covered" > }</span>
1462
+ <span class="cstat-no" title="statement not covered" > assetIconSrc={assetIconSrc}</span>
1463
+ <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc={assetIconProtocolSrc}</span>
1464
+ <span class="cstat-no" title="statement not covered" > fallbackSrc={FALLBACK_ASSET_ICON_URL}</span>
1801
1465
  <span class="cstat-no" title="statement not covered" > /&gt;</span>
1802
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1803
- <span class="cstat-no" title="statement not covered" > className={s["content"]}</span>
1804
- <span class="cstat-no" title="statement not covered" > key={coin.ticker}</span>
1805
- <span class="cstat-no" title="statement not covered" > &gt;</span>
1806
- <span class="cstat-no" title="statement not covered" > &lt;p className={s["name"]}&gt;</span>
1807
- <span class="cstat-no" title="statement not covered" > {coin.latinName}</span>
1808
- <span class="cstat-no" title="statement not covered" > &lt;/p&gt;</span>
1809
- <span class="cstat-no" title="statement not covered" > &lt;p</span>
1810
- <span class="cstat-no" title="statement not covered" > className={</span>
1811
- <span class="cstat-no" title="statement not covered" > s["amount"]</span>
1812
- <span class="cstat-no" title="statement not covered" > }</span>
1813
- <span class="cstat-no" title="statement not covered" > &gt;</span>
1814
- <span class="cstat-no" title="statement not covered" > {coinsContent?.find(</span>
1815
- <span class="cstat-no" title="statement not covered" > (i) =&gt;</span>
1816
- <span class="cstat-no" title="statement not covered" > i.coin ===</span>
1817
- <span class="cstat-no" title="statement not covered" > coin</span>
1818
- <span class="cstat-no" title="statement not covered" > )?.subtitle ?? ""}</span>
1466
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["content"]} key={coin.ticker}&gt;</span>
1467
+ <span class="cstat-no" title="statement not covered" > &lt;p className={s["name"]}&gt;{coin.latinName}&lt;/p&gt;</span>
1468
+ <span class="cstat-no" title="statement not covered" > &lt;p className={s["amount"]}&gt;</span>
1469
+ <span class="cstat-no" title="statement not covered" > {coinsContent?.find(i =&gt; i.coin === coin)?.subtitle ?? ""}</span>
1819
1470
  <span class="cstat-no" title="statement not covered" > &lt;/p&gt;</span>
1820
1471
  <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
1821
- <span class="cstat-no" title="statement not covered" > {mode ===</span>
1822
- <span class="cstat-no" title="statement not covered" > COIN_PICKER_MODES.BUTTON ? (</span>
1823
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1824
- <span class="cstat-no" title="statement not covered" > className={s["arrow"]}</span>
1825
- <span class="cstat-no" title="statement not covered" > &gt;</span>
1472
+ <span class="cstat-no" title="statement not covered" > {mode === COIN_PICKER_MODES.BUTTON ? (</span>
1473
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["arrow"]}&gt;</span>
1826
1474
  <span class="cstat-no" title="statement not covered" > &lt;ArrowIcon /&gt;</span>
1827
1475
  <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
1828
- <span class="cstat-no" title="statement not covered" > ) : mode ===</span>
1829
- <span class="cstat-no" title="statement not covered" > COIN_PICKER_MODES.CHECKBOX ? (</span>
1830
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1831
- <span class="cstat-no" title="statement not covered" > className={</span>
1832
- <span class="cstat-no" title="statement not covered" > s[</span>
1833
- <span class="cstat-no" title="statement not covered" > "toggle-container"</span>
1834
- <span class="cstat-no" title="statement not covered" > ]</span>
1835
- <span class="cstat-no" title="statement not covered" > }</span>
1836
- <span class="cstat-no" title="statement not covered" > &gt;</span>
1476
+ <span class="cstat-no" title="statement not covered" > ) : mode === COIN_PICKER_MODES.CHECKBOX ? (</span>
1477
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["toggle-container"]}&gt;</span>
1837
1478
  <span class="cstat-no" title="statement not covered" > &lt;RadioButtonWithText</span>
1838
- <span class="cstat-no" title="statement not covered" > onStateChange={(</span>
1839
- <span class="cstat-no" title="statement not covered" > resetButtonLoader</span>
1840
- <span class="cstat-no" title="statement not covered" > ) =&gt;</span>
1841
- <span class="cstat-no" title="statement not covered" > handleToggleClick(</span>
1842
- <span class="cstat-no" title="statement not covered" > coin.ticker,</span>
1843
- <span class="cstat-no" title="statement not covered" > resetButtonLoader</span>
1844
- <span class="cstat-no" title="statement not covered" > )</span>
1845
- <span class="cstat-no" title="statement not covered" > }</span>
1846
- <span class="cstat-no" title="statement not covered" > isSwitchedOn={</span>
1847
- <span class="cstat-no" title="statement not covered" > currentlyEnabledCoins</span>
1848
- <span class="cstat-no" title="statement not covered" > .current[</span>
1849
- <span class="cstat-no" title="statement not covered" > coin</span>
1850
- <span class="cstat-no" title="statement not covered" > .ticker</span>
1851
- <span class="cstat-no" title="statement not covered" > ]</span>
1479
+ <span class="cstat-no" title="statement not covered" > onStateChange={resetButtonLoader =&gt;</span>
1480
+ <span class="cstat-no" title="statement not covered" > handleToggleClick(coin.ticker, resetButtonLoader)</span>
1852
1481
  <span class="cstat-no" title="statement not covered" > }</span>
1482
+ <span class="cstat-no" title="statement not covered" > isSwitchedOn={currentlyEnabledCoins.current[coin.ticker]}</span>
1853
1483
  <span class="cstat-no" title="statement not covered" > id={index}</span>
1854
1484
  <span class="cstat-no" title="statement not covered" > /&gt;</span>
1855
1485
  <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
@@ -1862,28 +1492,15 @@
1862
1492
  <span class="cstat-no" title="statement not covered" > })}</span>
1863
1493
  <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
1864
1494
  <span class="cstat-no" title="statement not covered" ></span>
1865
- <span class="cstat-no" title="statement not covered" > {filteredCoins?.length === 0 &amp;&amp;</span>
1866
- <span class="cstat-no" title="statement not covered" > searchFieldValue !== "" ? (</span>
1867
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1868
- <span class="cstat-no" title="statement not covered" > className={</span>
1869
- <span class="cstat-no" title="statement not covered" > s[</span>
1870
- <span class="cstat-no" title="statement not covered" > "coin-picker-wrapper-content-asset-not-found"</span>
1871
- <span class="cstat-no" title="statement not covered" > ]</span>
1872
- <span class="cstat-no" title="statement not covered" > }</span>
1873
- <span class="cstat-no" title="statement not covered" > &gt;</span>
1495
+ <span class="cstat-no" title="statement not covered" > {filteredCoins?.length === 0 &amp;&amp; searchFieldValue !== "" ? (</span>
1496
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["coin-picker-wrapper-content-asset-not-found"]}&gt;</span>
1874
1497
  <span class="cstat-no" title="statement not covered" > &lt;h6&gt;{texts.noAssetsMessage}&lt;/h6&gt;</span>
1875
1498
  <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
1876
1499
  <span class="cstat-no" title="statement not covered" > ) : (</span>
1877
1500
  <span class="cstat-no" title="statement not covered" > ""</span>
1878
1501
  <span class="cstat-no" title="statement not covered" > )}</span>
1879
1502
  <span class="cstat-no" title="statement not covered" > {partialLoadingEnabled &amp;&amp; !isListFull ? (</span>
1880
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1881
- <span class="cstat-no" title="statement not covered" > className={</span>
1882
- <span class="cstat-no" title="statement not covered" > s[</span>
1883
- <span class="cstat-no" title="statement not covered" > "coin-picker-wrapper-content-load-more-button"</span>
1884
- <span class="cstat-no" title="statement not covered" > ]</span>
1885
- <span class="cstat-no" title="statement not covered" > }</span>
1886
- <span class="cstat-no" title="statement not covered" > &gt;</span>
1503
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["coin-picker-wrapper-content-load-more-button"]}&gt;</span>
1887
1504
  <span class="cstat-no" title="statement not covered" > &lt;Button</span>
1888
1505
  <span class="cstat-no" title="statement not covered" > mode="primary-transparent"</span>
1889
1506
  <span class="cstat-no" title="statement not covered" > size="sm"</span>
@@ -1897,13 +1514,7 @@
1897
1514
  <span class="cstat-no" title="statement not covered" > ""</span>
1898
1515
  <span class="cstat-no" title="statement not covered" > )}</span>
1899
1516
  <span class="cstat-no" title="statement not covered" > {searchEnabled &amp;&amp; showRequestMissingCoinsInfoMessage ? (</span>
1900
- <span class="cstat-no" title="statement not covered" > &lt;div</span>
1901
- <span class="cstat-no" title="statement not covered" > className={</span>
1902
- <span class="cstat-no" title="statement not covered" > s[</span>
1903
- <span class="cstat-no" title="statement not covered" > "coin-picker-wrapper-content-bottom-message"</span>
1904
- <span class="cstat-no" title="statement not covered" > ]</span>
1905
- <span class="cstat-no" title="statement not covered" > }</span>
1906
- <span class="cstat-no" title="statement not covered" > &gt;</span>
1517
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["coin-picker-wrapper-content-bottom-message"]}&gt;</span>
1907
1518
  <span class="cstat-no" title="statement not covered" > &lt;InformationMessage</span>
1908
1519
  <span class="cstat-no" title="statement not covered" > text={</span>
1909
1520
  <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
@@ -1912,16 +1523,9 @@
1912
1523
  <span class="cstat-no" title="statement not covered" > target="_blank"</span>
1913
1524
  <span class="cstat-no" title="statement not covered" > rel="noreferrer"</span>
1914
1525
  <span class="cstat-no" title="statement not covered" > href={supportUrl}</span>
1915
- <span class="cstat-no" title="statement not covered" > className={</span>
1916
- <span class="cstat-no" title="statement not covered" > s[</span>
1917
- <span class="cstat-no" title="statement not covered" > "coin-picker-wrapper-content-bottom-message-link"</span>
1918
- <span class="cstat-no" title="statement not covered" > ]</span>
1919
- <span class="cstat-no" title="statement not covered" > }</span>
1526
+ <span class="cstat-no" title="statement not covered" > className={s["coin-picker-wrapper-content-bottom-message-link"]}</span>
1920
1527
  <span class="cstat-no" title="statement not covered" > &gt;</span>
1921
- <span class="cstat-no" title="statement not covered" > {" " +</span>
1922
- <span class="cstat-no" title="statement not covered" > texts.assetSuggestionMessage</span>
1923
- <span class="cstat-no" title="statement not covered" > .part2 +</span>
1924
- <span class="cstat-no" title="statement not covered" > " "}</span>
1528
+ <span class="cstat-no" title="statement not covered" > {" " + texts.assetSuggestionMessage.part2 + " "}</span>
1925
1529
  <span class="cstat-no" title="statement not covered" > &lt;/a&gt;</span>
1926
1530
  <span class="cstat-no" title="statement not covered" > {texts.assetSuggestionMessage.part3}</span>
1927
1531
  <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
@@ -1941,10 +1545,7 @@
1941
1545
  <span class="cstat-no" title="statement not covered" >};</span>
1942
1546
  <span class="cstat-no" title="statement not covered" ></span>
1943
1547
  <span class="cstat-no" title="statement not covered" >CoinPicker.propTypes = {</span>
1944
- <span class="cstat-no" title="statement not covered" > mode: PropTypes.oneOf([</span>
1945
- <span class="cstat-no" title="statement not covered" > COIN_PICKER_MODES.BUTTON,</span>
1946
- <span class="cstat-no" title="statement not covered" > COIN_PICKER_MODES.CHECKBOX,</span>
1947
- <span class="cstat-no" title="statement not covered" > ]),</span>
1548
+ <span class="cstat-no" title="statement not covered" > mode: PropTypes.oneOf([COIN_PICKER_MODES.BUTTON, COIN_PICKER_MODES.CHECKBOX]),</span>
1948
1549
  <span class="cstat-no" title="statement not covered" > allCoins: PropTypes.array,</span>
1949
1550
  <span class="cstat-no" title="statement not covered" > initiallyEnabledCoinsList: PropTypes.array,</span>
1950
1551
  <span class="cstat-no" title="statement not covered" > handleClick: PropTypes.func,</span>
@@ -1973,7 +1574,7 @@
1973
1574
  <span class="cstat-no" title="statement not covered" ></span>
1974
1575
  <span class="cstat-no" title="statement not covered" >CoinPicker.defaultProps = {</span>
1975
1576
  <span class="cstat-no" title="statement not covered" > mode: COIN_PICKER_MODES.BUTTON,</span>
1976
- <span class="cstat-no" title="statement not covered" > handleClick: (ticker) =&gt; {},</span>
1577
+ <span class="cstat-no" title="statement not covered" > handleClick: ticker =&gt; {},</span>
1977
1578
  <span class="cstat-no" title="statement not covered" > search: false,</span>
1978
1579
  <span class="cstat-no" title="statement not covered" > searchAdaptive: true,</span>
1979
1580
  <span class="cstat-no" title="statement not covered" > setCoinPickerValue: () =&gt; {},</span>
@@ -1981,7 +1582,7 @@
1981
1582
  <span class="cstat-no" title="statement not covered" > loadCoinsAndContent: null,</span>
1982
1583
  <span class="cstat-no" title="statement not covered" > showRequestMissingCoinsInfoMessage: true,</span>
1983
1584
  <span class="cstat-no" title="statement not covered" > supportUrl: null,</span>
1984
- <span class="cstat-no" title="statement not covered" > coinToIconPaths: (coin) =&gt; ({</span>
1585
+ <span class="cstat-no" title="statement not covered" > coinToIconPaths: coin =&gt; ({</span>
1985
1586
  <span class="cstat-no" title="statement not covered" > assetIconSrc: undefined,</span>
1986
1587
  <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc: undefined,</span>
1987
1588
  <span class="cstat-no" title="statement not covered" > }),</span>
@@ -1996,7 +1597,7 @@
1996
1597
  <div class='footer quiet pad2 space-top1 center small'>
1997
1598
  Code coverage generated by
1998
1599
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1999
- at 2024-05-24T14:21:16.587Z
1600
+ at 2024-05-26T05:26:22.162Z
2000
1601
  </div>
2001
1602
  <script src="../../../../../prettify.js"></script>
2002
1603
  <script>