@bosonprotocol/react-kit 0.33.0-alpha.2 → 0.33.0-alpha.20

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 (346) hide show
  1. package/dist/cjs/components/buttons/BaseButton.d.ts +1 -0
  2. package/dist/cjs/components/buttons/BaseButton.d.ts.map +1 -1
  3. package/dist/cjs/components/buttons/BaseButton.js +1 -0
  4. package/dist/cjs/components/buttons/BaseButton.js.map +1 -1
  5. package/dist/cjs/components/error/SimpleError.d.ts +2 -2
  6. package/dist/cjs/components/error/SimpleError.d.ts.map +1 -1
  7. package/dist/cjs/components/error/SimpleError.js.map +1 -1
  8. package/dist/cjs/components/form/BaseCheckbox.d.ts +5 -0
  9. package/dist/cjs/components/form/BaseCheckbox.d.ts.map +1 -0
  10. package/dist/cjs/components/form/BaseCheckbox.js +69 -0
  11. package/dist/cjs/components/form/BaseCheckbox.js.map +1 -0
  12. package/dist/cjs/components/form/Checkbox.d.ts +13 -2
  13. package/dist/cjs/components/form/Checkbox.d.ts.map +1 -1
  14. package/dist/cjs/components/form/Checkbox.js +18 -61
  15. package/dist/cjs/components/form/Checkbox.js.map +1 -1
  16. package/dist/cjs/components/form/CountrySelect.d.ts +26 -11
  17. package/dist/cjs/components/form/CountrySelect.d.ts.map +1 -1
  18. package/dist/cjs/components/form/CountrySelect.js +64 -31
  19. package/dist/cjs/components/form/CountrySelect.js.map +1 -1
  20. package/dist/cjs/components/form/Field.styles.d.ts +36 -2
  21. package/dist/cjs/components/form/Field.styles.d.ts.map +1 -1
  22. package/dist/cjs/components/form/Field.styles.js +83 -24
  23. package/dist/cjs/components/form/Field.styles.js.map +1 -1
  24. package/dist/cjs/components/form/FormField.d.ts +2 -1
  25. package/dist/cjs/components/form/FormField.d.ts.map +1 -1
  26. package/dist/cjs/components/form/FormField.js +14 -2
  27. package/dist/cjs/components/form/FormField.js.map +1 -1
  28. package/dist/cjs/components/form/Select.d.ts +2 -1
  29. package/dist/cjs/components/form/Select.d.ts.map +1 -1
  30. package/dist/cjs/components/form/Select.js +32 -20
  31. package/dist/cjs/components/form/Select.js.map +1 -1
  32. package/dist/cjs/components/form/Upload/BaseUpload.d.ts +71 -0
  33. package/dist/cjs/components/form/Upload/BaseUpload.d.ts.map +1 -0
  34. package/dist/cjs/components/form/Upload/BaseUpload.js +264 -0
  35. package/dist/cjs/components/form/Upload/BaseUpload.js.map +1 -0
  36. package/dist/cjs/components/form/Upload/Upload.d.ts +3 -41
  37. package/dist/cjs/components/form/Upload/Upload.d.ts.map +1 -1
  38. package/dist/cjs/components/form/Upload/Upload.js +7 -258
  39. package/dist/cjs/components/form/Upload/Upload.js.map +1 -1
  40. package/dist/cjs/components/form/Upload/UploadedFile.js +2 -2
  41. package/dist/cjs/components/form/Upload/UploadedFile.js.map +1 -1
  42. package/dist/cjs/components/form/Upload/WithUploadToIpfs.d.ts.map +1 -1
  43. package/dist/cjs/components/form/Upload/WithUploadToIpfs.js +9 -12
  44. package/dist/cjs/components/form/Upload/WithUploadToIpfs.js.map +1 -1
  45. package/dist/cjs/components/form/index.d.ts +6 -4
  46. package/dist/cjs/components/form/index.d.ts.map +1 -1
  47. package/dist/cjs/components/form/index.js +7 -3
  48. package/dist/cjs/components/form/index.js.map +1 -1
  49. package/dist/cjs/components/form/types.d.ts +31 -3
  50. package/dist/cjs/components/form/types.d.ts.map +1 -1
  51. package/dist/cjs/components/image/Image.js +2 -2
  52. package/dist/cjs/components/image/Image.js.map +1 -1
  53. package/dist/cjs/components/image/Image.styles.d.ts +2 -1
  54. package/dist/cjs/components/image/Image.styles.d.ts.map +1 -1
  55. package/dist/cjs/components/image/Image.styles.js +2 -2
  56. package/dist/cjs/components/image/Image.styles.js.map +1 -1
  57. package/dist/cjs/components/modal/components/Commit/DetailView/InnerCommitDetailView.js +3 -3
  58. package/dist/cjs/components/modal/components/Commit/DetailView/InnerCommitDetailView.js.map +1 -1
  59. package/dist/cjs/components/modal/components/Redeem/ExchangeView/RedeemSuccess.js +3 -3
  60. package/dist/cjs/components/modal/components/Redeem/ExchangeView/RedeemSuccess.js.map +1 -1
  61. package/dist/cjs/components/modal/components/common/OfferFullDescription/DigitalProductData.js +2 -2
  62. package/dist/cjs/components/modal/components/common/OfferFullDescription/DigitalProductData.js.map +1 -1
  63. package/dist/cjs/components/modal/components/common/detail/DetailSlider.js +2 -2
  64. package/dist/cjs/components/modal/components/common/detail/DetailSlider.js.map +1 -1
  65. package/dist/cjs/components/modal/components/common/detail/PhygitalProduct.js +2 -2
  66. package/dist/cjs/components/modal/components/common/detail/PhygitalProduct.js.map +1 -1
  67. package/dist/cjs/components/modal/components/common/detail/SlickSlider.js +2 -2
  68. package/dist/cjs/components/modal/components/common/detail/SlickSlider.js.map +1 -1
  69. package/dist/cjs/components/ui/CardCTA.d.ts +21 -0
  70. package/dist/cjs/components/ui/CardCTA.d.ts.map +1 -0
  71. package/dist/cjs/components/ui/CardCTA.js +77 -0
  72. package/dist/cjs/components/ui/CardCTA.js.map +1 -0
  73. package/dist/cjs/components/ui/Grid.d.ts.map +1 -1
  74. package/dist/cjs/components/ui/Grid.js +22 -21
  75. package/dist/cjs/components/ui/Grid.js.map +1 -1
  76. package/dist/cjs/components/ui/IpfsImage.d.ts +5 -4
  77. package/dist/cjs/components/ui/IpfsImage.d.ts.map +1 -1
  78. package/dist/cjs/components/ui/IpfsImage.js +4 -3
  79. package/dist/cjs/components/ui/IpfsImage.js.map +1 -1
  80. package/dist/cjs/components/ui/Typography.d.ts.map +1 -1
  81. package/dist/cjs/components/ui/Typography.js +29 -28
  82. package/dist/cjs/components/ui/Typography.js.map +1 -1
  83. package/dist/cjs/components/ui/Video.d.ts +3 -3
  84. package/dist/cjs/components/ui/Video.d.ts.map +1 -1
  85. package/dist/cjs/components/ui/Video.js +26 -14
  86. package/dist/cjs/components/ui/Video.js.map +1 -1
  87. package/dist/cjs/components/ui/common.d.ts +2 -0
  88. package/dist/cjs/components/ui/common.d.ts.map +1 -0
  89. package/dist/cjs/components/ui/common.js +6 -0
  90. package/dist/cjs/components/ui/common.js.map +1 -0
  91. package/dist/cjs/components/wallet/ConnectButton.js +2 -2
  92. package/dist/cjs/components/wallet/ConnectButton.js.map +1 -1
  93. package/dist/cjs/components/widgets/finance/convertion-rate/ConvertionRateContext.js +2 -2
  94. package/dist/cjs/components/widgets/finance/convertion-rate/ConvertionRateContext.js.map +1 -1
  95. package/dist/cjs/components/widgets/finance/convertion-rate/ConvertionRateProvider.js +2 -2
  96. package/dist/cjs/components/widgets/finance/convertion-rate/ConvertionRateProvider.js.map +1 -1
  97. package/dist/cjs/components/widgets/finance/useOffersBacked.js +1 -1
  98. package/dist/cjs/components/widgets/finance/useOffersBacked.js.map +1 -1
  99. package/dist/cjs/hooks/core-sdk/useCoreSdk.d.ts.map +1 -1
  100. package/dist/cjs/hooks/core-sdk/useCoreSdk.js +2 -2
  101. package/dist/cjs/hooks/core-sdk/useCoreSdk.js.map +1 -1
  102. package/dist/cjs/hooks/form/useForm.d.ts +55 -0
  103. package/dist/cjs/hooks/form/useForm.d.ts.map +1 -0
  104. package/dist/cjs/hooks/form/useForm.js +11 -0
  105. package/dist/cjs/hooks/form/useForm.js.map +1 -0
  106. package/dist/cjs/hooks/index.d.ts +5 -0
  107. package/dist/cjs/hooks/index.d.ts.map +1 -1
  108. package/dist/cjs/hooks/index.js +5 -0
  109. package/dist/cjs/hooks/index.js.map +1 -1
  110. package/dist/cjs/hooks/ipfs/useIpfsStorage.d.ts +2 -0
  111. package/dist/cjs/hooks/ipfs/useIpfsStorage.d.ts.map +1 -0
  112. package/dist/cjs/hooks/ipfs/useIpfsStorage.js +14 -0
  113. package/dist/cjs/hooks/ipfs/useIpfsStorage.js.map +1 -0
  114. package/dist/cjs/hooks/location/buildUseSearchParams.d.ts +12 -0
  115. package/dist/cjs/hooks/location/buildUseSearchParams.d.ts.map +1 -0
  116. package/dist/cjs/hooks/location/buildUseSearchParams.js +36 -0
  117. package/dist/cjs/hooks/location/buildUseSearchParams.js.map +1 -0
  118. package/dist/cjs/{components/widgets/finance/storage/useLocalStorage.d.ts → hooks/storage/useBosonLocalStorage.d.ts} +3 -3
  119. package/dist/cjs/hooks/storage/useBosonLocalStorage.d.ts.map +1 -0
  120. package/dist/cjs/hooks/storage/useBosonLocalStorage.js +22 -0
  121. package/dist/cjs/hooks/storage/useBosonLocalStorage.js.map +1 -0
  122. package/dist/cjs/hooks/storage/useLocalStorage.d.ts +6 -0
  123. package/dist/cjs/hooks/storage/useLocalStorage.d.ts.map +1 -0
  124. package/dist/cjs/hooks/storage/useLocalStorage.js.map +1 -0
  125. package/dist/cjs/hooks/useIpfsMetadataStorage.d.ts.map +1 -1
  126. package/dist/cjs/hooks/useIpfsMetadataStorage.js +1 -1
  127. package/dist/cjs/hooks/useIpfsMetadataStorage.js.map +1 -1
  128. package/dist/cjs/index.d.ts +6 -0
  129. package/dist/cjs/index.d.ts.map +1 -1
  130. package/dist/cjs/index.js +8 -1
  131. package/dist/cjs/index.js.map +1 -1
  132. package/dist/cjs/lib/bytes/bytesToSize.d.ts +1 -1
  133. package/dist/cjs/lib/bytes/bytesToSize.d.ts.map +1 -1
  134. package/dist/cjs/lib/bytes/bytesToSize.js +2 -1
  135. package/dist/cjs/lib/bytes/bytesToSize.js.map +1 -1
  136. package/dist/cjs/lib/const/chainInfo.d.ts.map +1 -1
  137. package/dist/cjs/lib/const/chainInfo.js +10 -0
  138. package/dist/cjs/lib/const/chainInfo.js.map +1 -1
  139. package/dist/cjs/lib/url/url.d.ts +1 -0
  140. package/dist/cjs/lib/url/url.d.ts.map +1 -1
  141. package/dist/cjs/lib/url/url.js +2 -1
  142. package/dist/cjs/lib/url/url.js.map +1 -1
  143. package/dist/cjs/types/helpers.d.ts +3 -0
  144. package/dist/cjs/types/helpers.d.ts.map +1 -1
  145. package/dist/cjs/types/helpers.js.map +1 -1
  146. package/dist/esm/components/buttons/BaseButton.d.ts +1 -0
  147. package/dist/esm/components/buttons/BaseButton.d.ts.map +1 -1
  148. package/dist/esm/components/buttons/BaseButton.js +1 -0
  149. package/dist/esm/components/buttons/BaseButton.js.map +1 -1
  150. package/dist/esm/components/error/SimpleError.d.ts +2 -2
  151. package/dist/esm/components/error/SimpleError.d.ts.map +1 -1
  152. package/dist/esm/components/error/SimpleError.js.map +1 -1
  153. package/dist/esm/components/form/BaseCheckbox.d.ts +5 -0
  154. package/dist/esm/components/form/BaseCheckbox.d.ts.map +1 -0
  155. package/dist/esm/components/form/BaseCheckbox.js +27 -0
  156. package/dist/esm/components/form/BaseCheckbox.js.map +1 -0
  157. package/dist/esm/components/form/Checkbox.d.ts +13 -2
  158. package/dist/esm/components/form/Checkbox.d.ts.map +1 -1
  159. package/dist/esm/components/form/Checkbox.js +16 -25
  160. package/dist/esm/components/form/Checkbox.js.map +1 -1
  161. package/dist/esm/components/form/CountrySelect.d.ts +26 -11
  162. package/dist/esm/components/form/CountrySelect.d.ts.map +1 -1
  163. package/dist/esm/components/form/CountrySelect.js +97 -67
  164. package/dist/esm/components/form/CountrySelect.js.map +1 -1
  165. package/dist/esm/components/form/Field.styles.d.ts +36 -2
  166. package/dist/esm/components/form/Field.styles.d.ts.map +1 -1
  167. package/dist/esm/components/form/Field.styles.js +58 -20
  168. package/dist/esm/components/form/Field.styles.js.map +1 -1
  169. package/dist/esm/components/form/FormField.d.ts +2 -1
  170. package/dist/esm/components/form/FormField.d.ts.map +1 -1
  171. package/dist/esm/components/form/FormField.js +2 -2
  172. package/dist/esm/components/form/FormField.js.map +1 -1
  173. package/dist/esm/components/form/Select.d.ts +2 -1
  174. package/dist/esm/components/form/Select.d.ts.map +1 -1
  175. package/dist/esm/components/form/Select.js +52 -30
  176. package/dist/esm/components/form/Select.js.map +1 -1
  177. package/dist/esm/components/form/Upload/BaseUpload.d.ts +71 -0
  178. package/dist/esm/components/form/Upload/BaseUpload.d.ts.map +1 -0
  179. package/dist/esm/components/form/Upload/BaseUpload.js +226 -0
  180. package/dist/esm/components/form/Upload/BaseUpload.js.map +1 -0
  181. package/dist/esm/components/form/Upload/Upload.d.ts +3 -41
  182. package/dist/esm/components/form/Upload/Upload.d.ts.map +1 -1
  183. package/dist/esm/components/form/Upload/Upload.js +5 -225
  184. package/dist/esm/components/form/Upload/Upload.js.map +1 -1
  185. package/dist/esm/components/form/Upload/UploadedFile.js +1 -1
  186. package/dist/esm/components/form/Upload/UploadedFile.js.map +1 -1
  187. package/dist/esm/components/form/Upload/WithUploadToIpfs.d.ts.map +1 -1
  188. package/dist/esm/components/form/Upload/WithUploadToIpfs.js +8 -11
  189. package/dist/esm/components/form/Upload/WithUploadToIpfs.js.map +1 -1
  190. package/dist/esm/components/form/index.d.ts +6 -4
  191. package/dist/esm/components/form/index.d.ts.map +1 -1
  192. package/dist/esm/components/form/index.js +4 -2
  193. package/dist/esm/components/form/index.js.map +1 -1
  194. package/dist/esm/components/form/types.d.ts +31 -3
  195. package/dist/esm/components/form/types.d.ts.map +1 -1
  196. package/dist/esm/components/image/Image.js +2 -2
  197. package/dist/esm/components/image/Image.js.map +1 -1
  198. package/dist/esm/components/image/Image.styles.d.ts +2 -1
  199. package/dist/esm/components/image/Image.styles.d.ts.map +1 -1
  200. package/dist/esm/components/image/Image.styles.js +2 -2
  201. package/dist/esm/components/image/Image.styles.js.map +1 -1
  202. package/dist/esm/components/modal/components/Commit/DetailView/InnerCommitDetailView.js +1 -1
  203. package/dist/esm/components/modal/components/Commit/DetailView/InnerCommitDetailView.js.map +1 -1
  204. package/dist/esm/components/modal/components/Redeem/ExchangeView/RedeemSuccess.js +1 -1
  205. package/dist/esm/components/modal/components/Redeem/ExchangeView/RedeemSuccess.js.map +1 -1
  206. package/dist/esm/components/modal/components/common/OfferFullDescription/DigitalProductData.js +1 -1
  207. package/dist/esm/components/modal/components/common/OfferFullDescription/DigitalProductData.js.map +1 -1
  208. package/dist/esm/components/modal/components/common/detail/DetailSlider.js +1 -1
  209. package/dist/esm/components/modal/components/common/detail/DetailSlider.js.map +1 -1
  210. package/dist/esm/components/modal/components/common/detail/PhygitalProduct.js +1 -1
  211. package/dist/esm/components/modal/components/common/detail/PhygitalProduct.js.map +1 -1
  212. package/dist/esm/components/modal/components/common/detail/SlickSlider.js +1 -1
  213. package/dist/esm/components/modal/components/common/detail/SlickSlider.js.map +1 -1
  214. package/dist/esm/components/ui/CardCTA.d.ts +21 -0
  215. package/dist/esm/components/ui/CardCTA.d.ts.map +1 -0
  216. package/dist/esm/components/ui/CardCTA.js +35 -0
  217. package/dist/esm/components/ui/CardCTA.js.map +1 -0
  218. package/dist/esm/components/ui/Grid.d.ts.map +1 -1
  219. package/dist/esm/components/ui/Grid.js +22 -21
  220. package/dist/esm/components/ui/Grid.js.map +1 -1
  221. package/dist/esm/components/ui/IpfsImage.d.ts +5 -4
  222. package/dist/esm/components/ui/IpfsImage.d.ts.map +1 -1
  223. package/dist/esm/components/ui/IpfsImage.js +3 -4
  224. package/dist/esm/components/ui/IpfsImage.js.map +1 -1
  225. package/dist/esm/components/ui/Typography.d.ts.map +1 -1
  226. package/dist/esm/components/ui/Typography.js +29 -28
  227. package/dist/esm/components/ui/Typography.js.map +1 -1
  228. package/dist/esm/components/ui/Video.d.ts +3 -3
  229. package/dist/esm/components/ui/Video.d.ts.map +1 -1
  230. package/dist/esm/components/ui/Video.js +24 -14
  231. package/dist/esm/components/ui/Video.js.map +1 -1
  232. package/dist/esm/components/ui/common.d.ts +2 -0
  233. package/dist/esm/components/ui/common.d.ts.map +1 -0
  234. package/dist/esm/components/ui/common.js +2 -0
  235. package/dist/esm/components/ui/common.js.map +1 -0
  236. package/dist/esm/components/wallet/ConnectButton.js +1 -1
  237. package/dist/esm/components/wallet/ConnectButton.js.map +1 -1
  238. package/dist/esm/components/widgets/finance/convertion-rate/ConvertionRateContext.js +1 -1
  239. package/dist/esm/components/widgets/finance/convertion-rate/ConvertionRateContext.js.map +1 -1
  240. package/dist/esm/components/widgets/finance/convertion-rate/ConvertionRateProvider.js +1 -1
  241. package/dist/esm/components/widgets/finance/convertion-rate/ConvertionRateProvider.js.map +1 -1
  242. package/dist/esm/components/widgets/finance/useOffersBacked.js +1 -1
  243. package/dist/esm/components/widgets/finance/useOffersBacked.js.map +1 -1
  244. package/dist/esm/hooks/core-sdk/useCoreSdk.d.ts.map +1 -1
  245. package/dist/esm/hooks/core-sdk/useCoreSdk.js +3 -3
  246. package/dist/esm/hooks/core-sdk/useCoreSdk.js.map +1 -1
  247. package/dist/esm/hooks/form/useForm.d.ts +55 -0
  248. package/dist/esm/hooks/form/useForm.d.ts.map +1 -0
  249. package/dist/esm/hooks/form/useForm.js +10 -0
  250. package/dist/esm/hooks/form/useForm.js.map +1 -0
  251. package/dist/esm/hooks/index.d.ts +5 -0
  252. package/dist/esm/hooks/index.d.ts.map +1 -1
  253. package/dist/esm/hooks/index.js +5 -0
  254. package/dist/esm/hooks/index.js.map +1 -1
  255. package/dist/esm/hooks/ipfs/useIpfsStorage.d.ts +2 -0
  256. package/dist/esm/hooks/ipfs/useIpfsStorage.d.ts.map +1 -0
  257. package/dist/esm/hooks/ipfs/useIpfsStorage.js +10 -0
  258. package/dist/esm/hooks/ipfs/useIpfsStorage.js.map +1 -0
  259. package/dist/esm/hooks/location/buildUseSearchParams.d.ts +12 -0
  260. package/dist/esm/hooks/location/buildUseSearchParams.d.ts.map +1 -0
  261. package/dist/esm/hooks/location/buildUseSearchParams.js +32 -0
  262. package/dist/esm/hooks/location/buildUseSearchParams.js.map +1 -0
  263. package/dist/esm/{components/widgets/finance/storage/useLocalStorage.d.ts → hooks/storage/useBosonLocalStorage.d.ts} +3 -3
  264. package/dist/esm/hooks/storage/useBosonLocalStorage.d.ts.map +1 -0
  265. package/dist/esm/hooks/storage/useBosonLocalStorage.js +15 -0
  266. package/dist/esm/hooks/storage/useBosonLocalStorage.js.map +1 -0
  267. package/dist/esm/hooks/storage/useLocalStorage.d.ts +6 -0
  268. package/dist/esm/hooks/storage/useLocalStorage.d.ts.map +1 -0
  269. package/dist/esm/hooks/storage/useLocalStorage.js.map +1 -0
  270. package/dist/esm/hooks/useIpfsMetadataStorage.d.ts.map +1 -1
  271. package/dist/esm/hooks/useIpfsMetadataStorage.js +2 -2
  272. package/dist/esm/hooks/useIpfsMetadataStorage.js.map +1 -1
  273. package/dist/esm/index.d.ts +6 -0
  274. package/dist/esm/index.d.ts.map +1 -1
  275. package/dist/esm/index.js +6 -0
  276. package/dist/esm/index.js.map +1 -1
  277. package/dist/esm/lib/bytes/bytesToSize.d.ts +1 -1
  278. package/dist/esm/lib/bytes/bytesToSize.d.ts.map +1 -1
  279. package/dist/esm/lib/bytes/bytesToSize.js +1 -1
  280. package/dist/esm/lib/bytes/bytesToSize.js.map +1 -1
  281. package/dist/esm/lib/const/chainInfo.d.ts.map +1 -1
  282. package/dist/esm/lib/const/chainInfo.js +10 -0
  283. package/dist/esm/lib/const/chainInfo.js.map +1 -1
  284. package/dist/esm/lib/url/url.d.ts +1 -0
  285. package/dist/esm/lib/url/url.d.ts.map +1 -1
  286. package/dist/esm/lib/url/url.js +1 -0
  287. package/dist/esm/lib/url/url.js.map +1 -1
  288. package/dist/esm/types/helpers.d.ts +3 -0
  289. package/dist/esm/types/helpers.d.ts.map +1 -1
  290. package/dist/esm/types/helpers.js.map +1 -1
  291. package/package.json +5 -5
  292. package/src/components/buttons/BaseButton.tsx +4 -0
  293. package/src/components/error/SimpleError.tsx +2 -2
  294. package/src/components/form/BaseCheckbox.tsx +50 -0
  295. package/src/components/form/Checkbox.tsx +17 -40
  296. package/src/components/form/CountrySelect.tsx +178 -130
  297. package/src/components/form/Field.styles.ts +113 -24
  298. package/src/components/form/FormField.tsx +4 -1
  299. package/src/components/form/Select.tsx +65 -34
  300. package/src/components/form/Upload/BaseUpload.tsx +367 -0
  301. package/src/components/form/Upload/Upload.tsx +8 -360
  302. package/src/components/form/Upload/UploadedFile.tsx +1 -1
  303. package/src/components/form/Upload/WithUploadToIpfs.tsx +8 -11
  304. package/src/components/form/index.ts +6 -4
  305. package/src/components/form/types.ts +31 -3
  306. package/src/components/image/Image.styles.ts +7 -5
  307. package/src/components/image/Image.tsx +2 -2
  308. package/src/components/modal/components/Commit/DetailView/InnerCommitDetailView.tsx +1 -1
  309. package/src/components/modal/components/Redeem/ExchangeView/RedeemSuccess.tsx +1 -1
  310. package/src/components/modal/components/common/OfferFullDescription/DigitalProductData.tsx +1 -1
  311. package/src/components/modal/components/common/detail/DetailSlider.tsx +1 -1
  312. package/src/components/modal/components/common/detail/PhygitalProduct.tsx +1 -1
  313. package/src/components/modal/components/common/detail/SlickSlider.tsx +1 -1
  314. package/src/components/ui/CardCTA.tsx +77 -0
  315. package/src/components/ui/Grid.tsx +33 -21
  316. package/src/components/ui/IpfsImage.tsx +14 -7
  317. package/src/components/ui/Typography.tsx +39 -29
  318. package/src/components/ui/Video.tsx +32 -18
  319. package/src/components/ui/common.ts +2 -0
  320. package/src/components/wallet/ConnectButton.tsx +1 -1
  321. package/src/components/widgets/finance/convertion-rate/ConvertionRateContext.tsx +1 -1
  322. package/src/components/widgets/finance/convertion-rate/ConvertionRateProvider.tsx +1 -1
  323. package/src/components/widgets/finance/useOffersBacked.ts +1 -1
  324. package/src/hooks/core-sdk/useCoreSdk.tsx +4 -3
  325. package/src/hooks/form/useForm.ts +12 -0
  326. package/src/hooks/index.ts +5 -0
  327. package/src/hooks/ipfs/useIpfsStorage.ts +16 -0
  328. package/src/hooks/location/buildUseSearchParams.tsx +45 -0
  329. package/src/hooks/storage/useBosonLocalStorage.ts +40 -0
  330. package/src/{components/widgets/finance → hooks}/storage/useLocalStorage.ts +5 -17
  331. package/src/hooks/useIpfsMetadataStorage.tsx +6 -2
  332. package/src/index.tsx +6 -0
  333. package/src/lib/bytes/bytesToSize.ts +1 -1
  334. package/src/lib/const/chainInfo.ts +10 -1
  335. package/src/lib/url/url.ts +3 -0
  336. package/src/stories/buttons/Upload.stories.tsx +8 -0
  337. package/src/stories/form/BaseCheckbox.stories.tsx +113 -0
  338. package/src/stories/selects/CountrySelect.stories.tsx +49 -11
  339. package/src/stories/selects/Select.stories.tsx +117 -0
  340. package/src/types/helpers.ts +4 -0
  341. package/dist/cjs/components/widgets/finance/storage/useLocalStorage.d.ts.map +0 -1
  342. package/dist/cjs/components/widgets/finance/storage/useLocalStorage.js.map +0 -1
  343. package/dist/esm/components/widgets/finance/storage/useLocalStorage.d.ts.map +0 -1
  344. package/dist/esm/components/widgets/finance/storage/useLocalStorage.js.map +0 -1
  345. /package/dist/cjs/{components/widgets/finance → hooks}/storage/useLocalStorage.js +0 -0
  346. /package/dist/esm/{components/widgets/finance → hooks}/storage/useLocalStorage.js +0 -0
@@ -0,0 +1,77 @@
1
+ import React, { ReactElement } from "react";
2
+ import styled, { CSSProperties, css } from "styled-components";
3
+ import { Grid, GridProps } from "./Grid";
4
+ import { Typography, TypographyProps } from "./Typography";
5
+
6
+ export type CardCTAProps = GridProps & {
7
+ title: string;
8
+ text: string;
9
+ icon: ReactElement;
10
+ cta: ReactElement;
11
+ titleProps?: TypographyProps;
12
+ textProps?: TypographyProps;
13
+ theme: {
14
+ background: CSSProperties["background"];
15
+ color: CSSProperties["color"];
16
+ padding: CSSProperties["padding"];
17
+ border: CSSProperties["border"];
18
+ borderRadius: CSSProperties["borderRadius"];
19
+ };
20
+ };
21
+
22
+ const StyledGrid = styled(Grid)<{ theme: CardCTAProps["theme"] }>`
23
+ ${(props) => {
24
+ return css`
25
+ background: ${props.theme.background};
26
+ color: ${props.theme.color};
27
+ padding: ${props.theme.padding};
28
+ border: ${props.theme.border};
29
+ border-radius: ${props.theme.borderRadius};
30
+ `;
31
+ }}
32
+ `;
33
+
34
+ const IconContainer = styled(Grid)`
35
+ top: 0.5rem;
36
+ right: 0;
37
+ margin-bottom: 1rem;
38
+ svg {
39
+ > * {
40
+ stroke-width: 14px;
41
+ }
42
+ }
43
+ `;
44
+
45
+ export const CardCTA: React.FC<CardCTAProps> = ({
46
+ title,
47
+ text,
48
+ icon,
49
+ cta,
50
+ theme,
51
+ titleProps,
52
+ textProps,
53
+ ...rest
54
+ }) => {
55
+ return (
56
+ <StyledGrid
57
+ flexDirection="column"
58
+ alignItems="flex-start"
59
+ padding="1.5rem"
60
+ theme={theme}
61
+ {...rest}
62
+ >
63
+ <>
64
+ <div>
65
+ <IconContainer>{icon}</IconContainer>
66
+ <Typography fontWeight="600" fontSize="1.25rem" {...titleProps}>
67
+ {title}
68
+ </Typography>
69
+ </div>
70
+ <Typography tag="p" {...textProps}>
71
+ {text}
72
+ </Typography>
73
+ {cta}
74
+ </>
75
+ </StyledGrid>
76
+ );
77
+ };
@@ -1,6 +1,7 @@
1
1
  import React, { ElementRef, HTMLAttributes, forwardRef } from "react";
2
2
  import styled, { CSSProperties } from "styled-components";
3
3
  import { getTransientCustomProps } from "./getTransientCustomProps";
4
+ import { isDefined } from "./common";
4
5
  const pickedProps = {
5
6
  alignItems: true,
6
7
  flexBasis: true,
@@ -29,31 +30,42 @@ type IGrid = Pick<CSSProperties, keyof typeof pickedProps>;
29
30
  type InnerGridProps = Record<`$${keyof IGrid}`, IGrid[keyof IGrid]>;
30
31
 
31
32
  const Container = styled.div<InnerGridProps>`
32
- width: ${({ $width }) => $width || "100%"};
33
- height: ${({ $height }) => $height || "initial"};
33
+ ${({ $width }) => (isDefined($width) ? `width:${$width};` : "width: 100%;")}
34
+ height: ${({ $height }) => (isDefined($height) ? $height : "initial")};
34
35
  display: flex;
35
- align-items: ${({ $alignItems }) => $alignItems || "center"};
36
- flex-basis: ${({ $flexBasis }) => $flexBasis || "auto"};
37
- flex-direction: ${({ $flexDirection }) => $flexDirection || "row"};
38
- flex-grow: ${({ $flexGrow }) => $flexGrow || "initial"};
39
- flex-shrink: ${({ $flexShrink }) => $flexShrink || "initial"};
36
+ align-items: ${({ $alignItems }) =>
37
+ isDefined($alignItems) ? $alignItems : "center"};
38
+ flex-basis: ${({ $flexBasis }) =>
39
+ isDefined($flexBasis) ? $flexBasis : "auto"};
40
+ flex-direction: ${({ $flexDirection }) =>
41
+ isDefined($flexDirection) ? $flexDirection : "row"};
42
+ flex-grow: ${({ $flexGrow }) =>
43
+ isDefined($flexGrow) ? $flexGrow : "initial"};
44
+ flex-shrink: ${({ $flexShrink }) =>
45
+ isDefined($flexShrink) ? $flexShrink : "initial"};
40
46
  justify-content: ${({ $justifyContent }) =>
41
- $justifyContent || "space-between"};
47
+ isDefined($justifyContent) ? $justifyContent : "space-between"};
42
48
 
43
- ${({ $flexWrap }) => ($flexWrap ? `flex-wrap:${$flexWrap};` : "")}
44
- ${({ $rowGap }) => ($rowGap ? `row-gap:${$rowGap};` : "")}
45
- ${({ $columnGap }) => ($columnGap ? `column-gap:${$columnGap};` : "")}
46
- ${({ $gap }) => ($gap ? `gap:${$gap};` : "")}
47
- ${({ $flex }) => ($flex ? `> * { flex: ${$flex}; }` : "")}
48
- ${({ $padding }) => ($padding ? `padding:${$padding};` : "")}
49
- ${({ $margin }) => ($margin ? `margin:${$margin};` : "")}
50
- ${({ $marginTop }) => ($marginTop ? `margin-top:${$marginTop};` : "")}
51
- ${({ $marginRight }) => ($marginRight ? `margin-right:${$marginRight};` : "")}
49
+ ${({ $flexWrap }) => (isDefined($flexWrap) ? `flex-wrap:${$flexWrap};` : "")}
50
+ ${({ $rowGap }) => (isDefined($rowGap) ? `row-gap:${$rowGap};` : "")}
51
+ ${({ $columnGap }) =>
52
+ isDefined($columnGap) ? `column-gap:${$columnGap};` : ""}
53
+ ${({ $gap }) => (isDefined($gap) ? `gap:${$gap};` : "")}
54
+ ${({ $flex }) => (isDefined($flex) ? `> * { flex: ${$flex}; }` : "")}
55
+ ${({ $padding }) => (isDefined($padding) ? `padding:${$padding};` : "")}
56
+ ${({ $margin }) => (isDefined($margin) ? `margin:${$margin};` : "")}
57
+ ${({ $marginTop }) =>
58
+ isDefined($marginTop) ? `margin-top:${$marginTop};` : ""}
59
+ ${({ $marginRight }) =>
60
+ isDefined($marginRight) ? `margin-right:${$marginRight};` : ""}
52
61
  ${({ $marginBottom }) =>
53
- $marginBottom ? `margin-bottom:${$marginBottom};` : ""}
54
- ${({ $marginLeft }) => ($marginLeft ? `margin-left:${$marginLeft};` : "")}
55
- ${({ $alignSelf }) => ($alignSelf ? `align-self:${$alignSelf};` : "")}
56
- ${({ $justifySelf }) => ($justifySelf ? `justify-self:${$justifySelf};` : "")}
62
+ isDefined($marginBottom) ? `margin-bottom:${$marginBottom};` : ""}
63
+ ${({ $marginLeft }) =>
64
+ isDefined($marginLeft) ? `margin-left:${$marginLeft};` : ""}
65
+ ${({ $alignSelf }) =>
66
+ isDefined($alignSelf) ? `align-self:${$alignSelf};` : ""}
67
+ ${({ $justifySelf }) =>
68
+ isDefined($justifySelf) ? `justify-self:${$justifySelf};` : ""}
57
69
  `;
58
70
  export type GridProps = {
59
71
  children?: React.ReactNode;
@@ -73,7 +73,7 @@ const ImagePlaceholder = styled.div`
73
73
  }
74
74
  `;
75
75
 
76
- interface IImage {
76
+ export type IpfsImageProps = React.HTMLAttributes<HTMLDivElement> & {
77
77
  src: string;
78
78
  children?: React.ReactNode;
79
79
  dataTestId?: string;
@@ -85,8 +85,9 @@ interface IImage {
85
85
  overrides?: {
86
86
  ipfsGateway?: string;
87
87
  };
88
- }
89
- const IpfsImage: React.FC<IImage & React.HTMLAttributes<HTMLDivElement>> = ({
88
+ className?: string;
89
+ };
90
+ export const IpfsImage: React.FC<IpfsImageProps> = ({
90
91
  src,
91
92
  children,
92
93
  dataTestId = "image",
@@ -128,7 +129,11 @@ const IpfsImage: React.FC<IImage & React.HTMLAttributes<HTMLDivElement>> = ({
128
129
 
129
130
  return (
130
131
  <>
131
- <ImageWrapper {...rest} $hide={!isLoading} className="loading-container">
132
+ <ImageWrapper
133
+ {...rest}
134
+ $hide={!isLoading}
135
+ className={"loading-container " + rest.className}
136
+ >
132
137
  <ImagePlaceholder>
133
138
  <Typography tag="div">
134
139
  <Loading />
@@ -147,7 +152,11 @@ const IpfsImage: React.FC<IImage & React.HTMLAttributes<HTMLDivElement>> = ({
147
152
  )}
148
153
  </ImagePlaceholder>
149
154
  </ImageWrapper>
150
- <ImageWrapper {...rest} $hide={!isSuccess} className="image-container">
155
+ <ImageWrapper
156
+ {...rest}
157
+ $hide={!isSuccess}
158
+ className={"image-container " + rest.className}
159
+ >
151
160
  {children || ""}
152
161
  <ImageContainer
153
162
  data-testid={dataTestId}
@@ -179,5 +188,3 @@ const IpfsImage: React.FC<IImage & React.HTMLAttributes<HTMLDivElement>> = ({
179
188
  </>
180
189
  );
181
190
  };
182
-
183
- export default IpfsImage;
@@ -1,6 +1,7 @@
1
1
  import React, { HTMLAttributes, forwardRef } from "react";
2
2
  import styled, { CSSProperties } from "styled-components";
3
3
  import { getTransientCustomProps } from "./getTransientCustomProps";
4
+ import { isDefined } from "./common";
4
5
 
5
6
  const pickedProps = {
6
7
  alignItems: true,
@@ -38,43 +39,52 @@ type InnerTypographyProps = Record<
38
39
  `$${keyof WrapperProps}`,
39
40
  WrapperProps[keyof WrapperProps]
40
41
  >;
41
-
42
42
  const Wrapper = styled.div<InnerTypographyProps>`
43
43
  display: flex;
44
- ${({ $display }) => ($display ? `display:${$display};` : "")}
45
- ${({ $alignItems }) => $alignItems && `align-items: ${$alignItems}`};
46
- ${({ $flexBasis }) => $flexBasis && `flex-basis: ${$flexBasis}`};
44
+ ${({ $display }) => (isDefined($display) ? `display:${$display};` : "")}
45
+ ${({ $alignItems }) =>
46
+ isDefined($alignItems) && `align-items: ${$alignItems}`};
47
+ ${({ $flexBasis }) => isDefined($flexBasis) && `flex-basis: ${$flexBasis}`};
47
48
  ${({ $flexDirection }) =>
48
- $flexDirection && `flex-direction: ${$flexDirection}`};
49
- ${({ $flexGrow }) => $flexGrow && `flex-grow: ${$flexGrow}`};
50
- ${({ $flexShrink }) => $flexShrink && `flex-shrink: ${$flexShrink}`};
49
+ isDefined($flexDirection) && `flex-direction: ${$flexDirection}`};
50
+ ${({ $flexGrow }) => isDefined($flexGrow) && `flex-grow: ${$flexGrow}`};
51
+ ${({ $flexShrink }) =>
52
+ isDefined($flexShrink) && `flex-shrink: ${$flexShrink}`};
51
53
  ${({ $justifyContent }) =>
52
- $justifyContent && `justify-content: ${$justifyContent}`};
53
- ${({ $flexWrap }) => ($flexWrap ? `flex-wrap:${$flexWrap};` : "")}
54
- ${({ $rowGap }) => ($rowGap ? `row-gap:${$rowGap};` : "")}
55
- ${({ $columnGap }) => ($columnGap ? `column-gap:${$columnGap};` : "")}
56
- ${({ $gap }) => ($gap ? `gap:${$gap};` : "")}
57
- ${({ $flex }) => ($flex ? `> * { flex: ${$flex}; }` : "")}
58
- ${({ $padding }) => ($padding ? `padding:${$padding};` : "")}
59
- ${({ $margin }) => ($margin ? `margin:${$margin};` : "")}
60
- ${({ $marginTop }) => ($marginTop ? `margin-top:${$marginTop};` : "")}
61
- ${({ $marginRight }) => ($marginRight ? `margin-right:${$marginRight};` : "")}
54
+ isDefined($justifyContent) && `justify-content: ${$justifyContent}`};
55
+ ${({ $flexWrap }) => (isDefined($flexWrap) ? `flex-wrap:${$flexWrap};` : "")}
56
+ ${({ $rowGap }) => (isDefined($rowGap) ? `row-gap:${$rowGap};` : "")}
57
+ ${({ $columnGap }) =>
58
+ isDefined($columnGap) ? `column-gap:${$columnGap};` : ""}
59
+ ${({ $gap }) => (isDefined($gap) ? `gap:${$gap};` : "")}
60
+ ${({ $flex }) => (isDefined($flex) ? `> * { flex: ${$flex}; }` : "")}
61
+ ${({ $padding }) => (isDefined($padding) ? `padding:${$padding};` : "")}
62
+ ${({ $margin }) => (isDefined($margin) ? `margin:${$margin};` : "")}
63
+ ${({ $marginTop }) =>
64
+ isDefined($marginTop) ? `margin-top:${$marginTop};` : ""}
65
+ ${({ $marginRight }) =>
66
+ isDefined($marginRight) ? `margin-right:${$marginRight};` : ""}
62
67
  ${({ $marginBottom }) =>
63
- $marginBottom ? `margin-bottom:${$marginBottom};` : ""}
64
- ${({ $marginLeft }) => ($marginLeft ? `margin-left:${$marginLeft};` : "")}
68
+ isDefined($marginBottom) ? `margin-bottom:${$marginBottom};` : ""}
69
+ ${({ $marginLeft }) =>
70
+ isDefined($marginLeft) ? `margin-left:${$marginLeft};` : ""}
65
71
 
66
72
 
67
- ${({ $fontSize }) => ($fontSize ? `font-size:${$fontSize};` : "")}
68
- ${({ $fontWeight }) => ($fontWeight ? `font-weight:${$fontWeight};` : "")}
69
- ${({ $lineHeight }) => ($lineHeight ? `line-height:${$lineHeight};` : "")}
70
- ${({ $color }) => ($color ? `color:${$color};` : "")}
71
- ${({ $background }) => ($background ? `background:${$background};` : "")}
72
- ${({ $cursor }) => ($cursor ? `cursor:${$cursor};` : "")}
73
+ ${({ $fontSize }) => (isDefined($fontSize) ? `font-size:${$fontSize};` : "")}
74
+ ${({ $fontWeight }) =>
75
+ isDefined($fontWeight) ? `font-weight:${$fontWeight};` : ""}
76
+ ${({ $lineHeight }) =>
77
+ isDefined($lineHeight) ? `line-height:${$lineHeight};` : ""}
78
+ ${({ $color }) => (isDefined($color) ? `color:${$color};` : "")}
79
+ ${({ $background }) =>
80
+ isDefined($background) ? `background:${$background};` : ""}
81
+ ${({ $cursor }) => (isDefined($cursor) ? `cursor:${$cursor};` : "")}
73
82
  ${({ $letterSpacing }) =>
74
- $letterSpacing ? `letter-spacing:${$letterSpacing};` : ""}
75
- ${({ $textAlign }) => ($textAlign ? `text-align:${$textAlign};` : "")}
76
- ${({ $opacity }) => ($opacity ? `opacity:${$opacity};` : "")}
77
- ${({ $width }) => ($width ? `width:${$width};` : "")}
83
+ isDefined($letterSpacing) ? `letter-spacing:${$letterSpacing};` : ""}
84
+ ${({ $textAlign }) =>
85
+ isDefined($textAlign) ? `text-align:${$textAlign};` : ""}
86
+ ${({ $opacity }) => (isDefined($opacity) ? `opacity:${$opacity};` : "")}
87
+ ${({ $width }) => (isDefined($width) ? `width:${$width};` : "")}
78
88
  `;
79
89
 
80
90
  export type TypographyProps = WrapperProps &
@@ -9,7 +9,7 @@ import React, {
9
9
  useRef,
10
10
  useState
11
11
  } from "react";
12
- import styled, { css } from "styled-components";
12
+ import styled, { CSSProperties, css } from "styled-components";
13
13
  import { useIpfsStorage } from "../../hooks/useIpfsStorage";
14
14
  import { fetchIpfsBase64Media } from "../../lib/base64/base64";
15
15
  import { theme } from "../../theme";
@@ -24,6 +24,7 @@ const StyledMuteButton = styled(MuteButton)`
24
24
  position: absolute;
25
25
  top: 1rem;
26
26
  right: 1rem;
27
+ z-index: 1;
27
28
  `;
28
29
  const VideoWrapper = styled.div<{ $hasOnClick?: boolean }>`
29
30
  overflow: hidden;
@@ -68,8 +69,15 @@ const VideoHtml = styled.video`
68
69
  object-fit: contain;
69
70
  `;
70
71
 
71
- const VideoPlaceholder = styled.div`
72
- position: absolute;
72
+ const VideoPlaceholder = styled.div<{ $position?: CSSProperties["position"] }>`
73
+ ${({ $position }) =>
74
+ $position
75
+ ? css`
76
+ position: ${$position};
77
+ `
78
+ : css`
79
+ position: absolute;
80
+ `}
73
81
  top: 0;
74
82
  height: 100%;
75
83
  width: 100%;
@@ -89,7 +97,7 @@ const VideoPlaceholder = styled.div`
89
97
  }
90
98
  `;
91
99
 
92
- interface IVideo {
100
+ export type VideoProps = React.HTMLAttributes<HTMLDivElement> & {
93
101
  src: string;
94
102
  children?: ReactNode;
95
103
  dataTestId?: string;
@@ -98,8 +106,8 @@ interface IVideo {
98
106
  videoProps?: VideoHTMLAttributes<HTMLElement>;
99
107
  withMuteButton?: boolean;
100
108
  componentWhileLoading?: () => ReactElement;
101
- }
102
- const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
109
+ };
110
+ export const Video: React.FC<VideoProps> = ({
103
111
  src,
104
112
  children,
105
113
  dataTestId = "video",
@@ -125,6 +133,8 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
125
133
  ipfsMetadataStorage
126
134
  );
127
135
  setVideoSrc(base64str as string);
136
+ setIsLoaded(true);
137
+ setIsError(false);
128
138
  } catch (error) {
129
139
  console.error("error in Video", error);
130
140
  setIsLoaded(true);
@@ -136,9 +146,14 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
136
146
  }
137
147
  }
138
148
  if (!isLoaded && videoSrc === null) {
139
- if (src?.includes("ipfs://")) {
140
- const newString = src.split("//");
141
- const CID = newString[newString.length - 1];
149
+ if (
150
+ src?.startsWith("ipfs://") ||
151
+ src?.startsWith("https://bosonprotocol.infura-ipfs.io/ipfs/")
152
+ ) {
153
+ const split = src?.startsWith("ipfs://")
154
+ ? src.split("//")
155
+ : src.split("https://bosonprotocol.infura-ipfs.io/ipfs/");
156
+ const CID = split[split.length - 1];
142
157
  fetchData(`ipfs://${CID}`);
143
158
  } else if (src?.startsWith("undefined") && src?.length > 9) {
144
159
  const CID = src.replace("undefined", "");
@@ -149,12 +164,6 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
149
164
  }
150
165
  }, []); // eslint-disable-line
151
166
 
152
- useEffect(() => {
153
- if (videoSrc !== null) {
154
- setTimeout(() => setIsLoaded(true), 100);
155
- }
156
- }, [videoSrc]);
157
-
158
167
  const mp4Src = useMemo(() => {
159
168
  const octetSrc =
160
169
  videoSrc?.startsWith("data:application/octet-stream;base64,") || false;
@@ -183,13 +192,14 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
183
192
  videoRef.current.play();
184
193
  }
185
194
  }, [muted]);
195
+
186
196
  if (!isLoaded && !isError) {
187
197
  if (ComponentWhileLoading) {
188
198
  return <ComponentWhileLoading />;
189
199
  }
190
200
  return (
191
201
  <VideoWrapper {...rest}>
192
- <VideoPlaceholder>
202
+ <VideoPlaceholder $position="static">
193
203
  <Typography tag="div">
194
204
  <Loading />
195
205
  </Typography>
@@ -200,8 +210,8 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
200
210
 
201
211
  if (isLoaded && isError) {
202
212
  return (
203
- <VideoWrapper {...rest}>
204
- <VideoPlaceholder data-video-placeholder>
213
+ <VideoWrapper {...rest} className="video-container">
214
+ <VideoPlaceholder data-video-placeholder $position="static">
205
215
  {showPlaceholderText ? (
206
216
  <VideoIcon size={50} color={colors.white} />
207
217
  ) : (
@@ -235,6 +245,10 @@ const Video: React.FC<IVideo & React.HTMLAttributes<HTMLDivElement>> = ({
235
245
  data-testid={dataTestId}
236
246
  {...videoProps}
237
247
  src={mp4Src || ""}
248
+ onError={() => {
249
+ setIsLoaded(true);
250
+ setIsError(true);
251
+ }}
238
252
  />
239
253
  </>
240
254
  )}
@@ -0,0 +1,2 @@
1
+ export const isDefined = (value: unknown) =>
2
+ value !== null && value !== undefined;
@@ -8,7 +8,7 @@ import FallbackAvatar from "../avatar/fallback-avatar";
8
8
  import { Button } from "../buttons/Button";
9
9
  import ThemedButton, { bosonButtonThemes } from "../ui/ThemedButton";
10
10
  import { useBreakpoints } from "../../hooks/useBreakpoints";
11
- import { saveItemInStorage } from "../widgets/finance/storage/useLocalStorage";
11
+ import { saveItemInStorage } from "../../hooks/storage/useBosonLocalStorage";
12
12
  import { SignOut, Wallet } from "phosphor-react";
13
13
  import { useIsMagicLoggedIn } from "../../hooks";
14
14
  import { useAccount, useChainId } from "../../hooks/connection/connection";
@@ -1,7 +1,7 @@
1
1
  /* eslint @typescript-eslint/no-empty-function: "off" */
2
2
  /* eslint @typescript-eslint/no-explicit-any: "off" */
3
3
  import { createContext } from "react";
4
- import { getItemFromStorage } from "../storage/useLocalStorage";
4
+ import { getItemFromStorage } from "../../../../hooks/storage/useBosonLocalStorage";
5
5
 
6
6
  export type Token = {
7
7
  symbol: string;
@@ -1,7 +1,7 @@
1
1
  import React, { useCallback, useEffect, useMemo, useState } from "react";
2
2
 
3
3
  import { useTokens } from "../exchange-tokens/useTokens";
4
- import { saveItemInStorage } from "../storage/useLocalStorage";
4
+ import { saveItemInStorage } from "../../../../hooks/storage/useBosonLocalStorage";
5
5
  import ConvertionRateContext, {
6
6
  ConvertionRateContextType,
7
7
  initalState,
@@ -5,7 +5,7 @@ import groupBy from "lodash/groupBy";
5
5
  import { useCallback, useMemo } from "react";
6
6
 
7
7
  import { Props } from "./Finance";
8
- import { saveItemInStorage } from "./storage/useLocalStorage";
8
+ import { saveItemInStorage } from "../../../hooks/storage/useLocalStorage";
9
9
  import { SellerExchangeProps } from "./useSellerDeposit";
10
10
  import { subgraph } from "@bosonprotocol/core-sdk";
11
11
  import { Offer } from "../../../types/offer";
@@ -4,7 +4,8 @@ import {
4
4
  getEnvConfigById,
5
5
  ConfigId,
6
6
  EnvironmentType,
7
- MetaTxConfig
7
+ MetaTxConfig,
8
+ validateMetadata
8
9
  } from "@bosonprotocol/core-sdk";
9
10
  import { EthersAdapter, Provider } from "@bosonprotocol/ethers-sdk";
10
11
  import { IpfsMetadataStorage } from "@bosonprotocol/ipfs-storage";
@@ -108,7 +109,7 @@ function initCoreSdk(config: CoreSdkConfig, overrides?: CoreSdkOverrides) {
108
109
  protocolDiamond:
109
110
  config.protocolDiamond || defaultConfig.contracts.protocolDiamond,
110
111
  subgraphUrl: config.subgraphUrl || defaultConfig.subgraphUrl,
111
- theGraphStorage: new IpfsMetadataStorage({
112
+ theGraphStorage: new IpfsMetadataStorage(validateMetadata, {
112
113
  url: theGraphStorageUrl,
113
114
  headers:
114
115
  config.theGraphIpfsStorageHeaders ||
@@ -116,7 +117,7 @@ function initCoreSdk(config: CoreSdkConfig, overrides?: CoreSdkOverrides) {
116
117
  ? config.ipfsMetadataStorageHeaders
117
118
  : undefined
118
119
  }),
119
- metadataStorage: new IpfsMetadataStorage({
120
+ metadataStorage: new IpfsMetadataStorage(validateMetadata, {
120
121
  url: metadataStorageUrl,
121
122
  headers: config.ipfsMetadataStorageHeaders
122
123
  }),
@@ -0,0 +1,12 @@
1
+ import { useFormikContext } from "formik";
2
+
3
+ export function useForm<T>() {
4
+ const context = useFormikContext<T>();
5
+
6
+ const nextIsDisabled = !context.isValid && context.submitCount > 0;
7
+
8
+ return {
9
+ ...context,
10
+ nextIsDisabled
11
+ };
12
+ }
@@ -20,3 +20,8 @@ export * from "./contracts/erc1155/useErc1155Uris";
20
20
  export * from "./uniswap/useIsWindowVisible";
21
21
  export * from "./connection/connection";
22
22
  export { useConfigContext } from "../components/config/ConfigContext";
23
+ export * from "./storage/useLocalStorage";
24
+ export * from "./ipfs/useIpfsStorage";
25
+ export * from "./location/buildUseSearchParams";
26
+ export * from "./form/useForm";
27
+ export * from "./useBreakpoints";
@@ -0,0 +1,16 @@
1
+ import { useConfigContext } from "../../components/config/ConfigContext";
2
+ import { useIpfsContext } from "../../components/ipfs/IpfsContext";
3
+ import { useIpfsMetadataStorage } from "../useIpfsMetadataStorage";
4
+
5
+ export function useIpfsStorage() {
6
+ const { config } = useConfigContext();
7
+ const { ipfsMetadataStorageHeaders, ipfsMetadataStorageUrl } =
8
+ useIpfsContext();
9
+ const storage = useIpfsMetadataStorage(
10
+ config.envName,
11
+ config.configId,
12
+ ipfsMetadataStorageUrl,
13
+ ipfsMetadataStorageHeaders
14
+ );
15
+ return storage;
16
+ }
@@ -0,0 +1,45 @@
1
+ import qs from "query-string";
2
+ import { useCallback, useEffect, useState } from "react";
3
+ import { useLocation } from "react-router-dom";
4
+
5
+ export type BuildUseSearchParamsProps = {
6
+ useNavigate: () => (arg0: { pathname: string; search: string }) => unknown;
7
+ };
8
+ export function buildUseSearchParams({
9
+ useNavigate
10
+ }: BuildUseSearchParamsProps) {
11
+ return () => {
12
+ const navigate = useNavigate();
13
+ const location = useLocation();
14
+ const [params, setParams] = useState(qs.parse(location.search));
15
+
16
+ const handleChange = useCallback(
17
+ (name: string, value: string) => {
18
+ const oldParams = qs.parse(location.search);
19
+
20
+ const newParams = {
21
+ ...oldParams,
22
+ [name]: value
23
+ };
24
+ setParams(newParams);
25
+ },
26
+ [location.search]
27
+ );
28
+
29
+ useEffect(() => {
30
+ navigate({
31
+ pathname: location.pathname,
32
+ search: qs.stringify(params)
33
+ });
34
+ }, [params]); // eslint-disable-line
35
+
36
+ useEffect(() => {
37
+ setParams(qs.parse(location.search));
38
+ }, [location.search]); // eslint-disable-line
39
+
40
+ return {
41
+ params,
42
+ handleChange
43
+ };
44
+ };
45
+ }
@@ -0,0 +1,40 @@
1
+ import {
2
+ getItemFromStorage as baseGetItemFromStorage,
3
+ saveItemInStorage as baseSaveItemInStorage,
4
+ removeItemInStorage as baseRemoveItemInStorage,
5
+ clearLocalStorage as baseClearLocalStorage,
6
+ useLocalStorage as useBaseLocalStorage
7
+ } from "./useLocalStorage";
8
+
9
+ export type GetItemFromStorageKey =
10
+ | "wagmi.store"
11
+ | "isChainUnsupported"
12
+ | "tracing-url"
13
+ | "isConnectWalletFromCommit"
14
+ | "convertionRates"
15
+ | "google-jwt"
16
+ | "showCookies";
17
+
18
+ export function getItemFromStorage<T>(
19
+ key: GetItemFromStorageKey,
20
+ initialValue: T
21
+ ) {
22
+ return baseGetItemFromStorage(key, initialValue);
23
+ }
24
+
25
+ export function saveItemInStorage<T>(key: GetItemFromStorageKey, value: T) {
26
+ return baseSaveItemInStorage(key, value);
27
+ }
28
+
29
+ export function removeItemInStorage(key: GetItemFromStorageKey) {
30
+ return baseRemoveItemInStorage(key);
31
+ }
32
+
33
+ export const clearLocalStorage = baseClearLocalStorage;
34
+
35
+ export function useLocalStorage<T>(
36
+ key: GetItemFromStorageKey,
37
+ initialValue: T
38
+ ) {
39
+ return useBaseLocalStorage(key, initialValue);
40
+ }