@bosonprotocol/react-kit 0.33.0-alpha.9 → 0.33.1-alpha.0

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 (196) 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/buttons/CommitButtonView.d.ts.map +1 -1
  6. package/dist/cjs/components/buttons/CommitButtonView.js +4 -0
  7. package/dist/cjs/components/buttons/CommitButtonView.js.map +1 -1
  8. package/dist/cjs/components/datepicker/DatePicker.style.d.ts +2 -2
  9. package/dist/cjs/components/error/SimpleError.d.ts +2 -2
  10. package/dist/cjs/components/error/SimpleError.d.ts.map +1 -1
  11. package/dist/cjs/components/error/SimpleError.js.map +1 -1
  12. package/dist/cjs/components/form/BaseCheckbox.d.ts +5 -0
  13. package/dist/cjs/components/form/BaseCheckbox.d.ts.map +1 -0
  14. package/dist/cjs/components/form/BaseCheckbox.js +69 -0
  15. package/dist/cjs/components/form/BaseCheckbox.js.map +1 -0
  16. package/dist/cjs/components/form/Checkbox.d.ts +13 -2
  17. package/dist/cjs/components/form/Checkbox.d.ts.map +1 -1
  18. package/dist/cjs/components/form/Checkbox.js +18 -61
  19. package/dist/cjs/components/form/Checkbox.js.map +1 -1
  20. package/dist/cjs/components/form/CountrySelect.d.ts +26 -11
  21. package/dist/cjs/components/form/CountrySelect.d.ts.map +1 -1
  22. package/dist/cjs/components/form/CountrySelect.js +64 -31
  23. package/dist/cjs/components/form/CountrySelect.js.map +1 -1
  24. package/dist/cjs/components/form/Field.styles.d.ts +36 -2
  25. package/dist/cjs/components/form/Field.styles.d.ts.map +1 -1
  26. package/dist/cjs/components/form/Field.styles.js +83 -24
  27. package/dist/cjs/components/form/Field.styles.js.map +1 -1
  28. package/dist/cjs/components/form/FormField.d.ts +2 -1
  29. package/dist/cjs/components/form/FormField.d.ts.map +1 -1
  30. package/dist/cjs/components/form/FormField.js +14 -2
  31. package/dist/cjs/components/form/FormField.js.map +1 -1
  32. package/dist/cjs/components/form/Select.d.ts +2 -1
  33. package/dist/cjs/components/form/Select.d.ts.map +1 -1
  34. package/dist/cjs/components/form/Select.js +32 -20
  35. package/dist/cjs/components/form/Select.js.map +1 -1
  36. package/dist/cjs/components/form/Upload/BaseUpload.d.ts +71 -0
  37. package/dist/cjs/components/form/Upload/BaseUpload.d.ts.map +1 -0
  38. package/dist/cjs/components/form/Upload/BaseUpload.js +264 -0
  39. package/dist/cjs/components/form/Upload/BaseUpload.js.map +1 -0
  40. package/dist/cjs/components/form/Upload/Upload.d.ts +3 -41
  41. package/dist/cjs/components/form/Upload/Upload.d.ts.map +1 -1
  42. package/dist/cjs/components/form/Upload/Upload.js +7 -258
  43. package/dist/cjs/components/form/Upload/Upload.js.map +1 -1
  44. package/dist/cjs/components/form/Upload/UploadedFile.js +2 -2
  45. package/dist/cjs/components/form/Upload/UploadedFile.js.map +1 -1
  46. package/dist/cjs/components/form/Upload/WithUploadToIpfs.d.ts.map +1 -1
  47. package/dist/cjs/components/form/Upload/WithUploadToIpfs.js +9 -12
  48. package/dist/cjs/components/form/Upload/WithUploadToIpfs.js.map +1 -1
  49. package/dist/cjs/components/form/index.d.ts +6 -4
  50. package/dist/cjs/components/form/index.d.ts.map +1 -1
  51. package/dist/cjs/components/form/index.js +7 -3
  52. package/dist/cjs/components/form/index.js.map +1 -1
  53. package/dist/cjs/components/form/types.d.ts +31 -3
  54. package/dist/cjs/components/form/types.d.ts.map +1 -1
  55. package/dist/cjs/components/ui/IpfsImage.d.ts +4 -3
  56. package/dist/cjs/components/ui/IpfsImage.d.ts.map +1 -1
  57. package/dist/cjs/components/ui/IpfsImage.js +2 -2
  58. package/dist/cjs/components/ui/IpfsImage.js.map +1 -1
  59. package/dist/cjs/components/ui/Video.d.ts +3 -3
  60. package/dist/cjs/components/ui/Video.d.ts.map +1 -1
  61. package/dist/cjs/components/ui/Video.js +7 -3
  62. package/dist/cjs/components/ui/Video.js.map +1 -1
  63. package/dist/cjs/hooks/ipfs/useIpfsStorage.d.ts.map +1 -1
  64. package/dist/cjs/hooks/ipfs/useIpfsStorage.js +2 -1
  65. package/dist/cjs/hooks/ipfs/useIpfsStorage.js.map +1 -1
  66. package/dist/cjs/hooks/transactions/usePendingTransactionsWithContext.d.ts +1 -1
  67. package/dist/cjs/hooks/useIpfsMetadataStorage.d.ts +2 -2
  68. package/dist/cjs/hooks/useIpfsMetadataStorage.d.ts.map +1 -1
  69. package/dist/cjs/hooks/useIpfsMetadataStorage.js +6 -6
  70. package/dist/cjs/hooks/useIpfsMetadataStorage.js.map +1 -1
  71. package/dist/cjs/hooks/useIpfsStorage.d.ts.map +1 -1
  72. package/dist/cjs/hooks/useIpfsStorage.js +2 -1
  73. package/dist/cjs/hooks/useIpfsStorage.js.map +1 -1
  74. package/dist/cjs/index.d.ts +63 -60
  75. package/dist/cjs/index.d.ts.map +1 -1
  76. package/dist/cjs/index.js +70 -66
  77. package/dist/cjs/index.js.map +1 -1
  78. package/dist/cjs/lib/bytes/bytesToSize.d.ts +1 -1
  79. package/dist/cjs/lib/bytes/bytesToSize.d.ts.map +1 -1
  80. package/dist/cjs/lib/bytes/bytesToSize.js +2 -1
  81. package/dist/cjs/lib/bytes/bytesToSize.js.map +1 -1
  82. package/dist/cjs/lib/const/chainInfo.d.ts.map +1 -1
  83. package/dist/cjs/lib/const/chainInfo.js +10 -0
  84. package/dist/cjs/lib/const/chainInfo.js.map +1 -1
  85. package/dist/esm/components/buttons/BaseButton.d.ts +1 -0
  86. package/dist/esm/components/buttons/BaseButton.d.ts.map +1 -1
  87. package/dist/esm/components/buttons/BaseButton.js +1 -0
  88. package/dist/esm/components/buttons/BaseButton.js.map +1 -1
  89. package/dist/esm/components/buttons/CommitButtonView.d.ts.map +1 -1
  90. package/dist/esm/components/buttons/CommitButtonView.js +4 -0
  91. package/dist/esm/components/buttons/CommitButtonView.js.map +1 -1
  92. package/dist/esm/components/datepicker/DatePicker.style.d.ts +2 -2
  93. package/dist/esm/components/error/SimpleError.d.ts +2 -2
  94. package/dist/esm/components/error/SimpleError.d.ts.map +1 -1
  95. package/dist/esm/components/error/SimpleError.js.map +1 -1
  96. package/dist/esm/components/form/BaseCheckbox.d.ts +5 -0
  97. package/dist/esm/components/form/BaseCheckbox.d.ts.map +1 -0
  98. package/dist/esm/components/form/BaseCheckbox.js +27 -0
  99. package/dist/esm/components/form/BaseCheckbox.js.map +1 -0
  100. package/dist/esm/components/form/Checkbox.d.ts +13 -2
  101. package/dist/esm/components/form/Checkbox.d.ts.map +1 -1
  102. package/dist/esm/components/form/Checkbox.js +16 -25
  103. package/dist/esm/components/form/Checkbox.js.map +1 -1
  104. package/dist/esm/components/form/CountrySelect.d.ts +26 -11
  105. package/dist/esm/components/form/CountrySelect.d.ts.map +1 -1
  106. package/dist/esm/components/form/CountrySelect.js +97 -67
  107. package/dist/esm/components/form/CountrySelect.js.map +1 -1
  108. package/dist/esm/components/form/Field.styles.d.ts +36 -2
  109. package/dist/esm/components/form/Field.styles.d.ts.map +1 -1
  110. package/dist/esm/components/form/Field.styles.js +58 -20
  111. package/dist/esm/components/form/Field.styles.js.map +1 -1
  112. package/dist/esm/components/form/FormField.d.ts +2 -1
  113. package/dist/esm/components/form/FormField.d.ts.map +1 -1
  114. package/dist/esm/components/form/FormField.js +2 -2
  115. package/dist/esm/components/form/FormField.js.map +1 -1
  116. package/dist/esm/components/form/Select.d.ts +2 -1
  117. package/dist/esm/components/form/Select.d.ts.map +1 -1
  118. package/dist/esm/components/form/Select.js +52 -30
  119. package/dist/esm/components/form/Select.js.map +1 -1
  120. package/dist/esm/components/form/Upload/BaseUpload.d.ts +71 -0
  121. package/dist/esm/components/form/Upload/BaseUpload.d.ts.map +1 -0
  122. package/dist/esm/components/form/Upload/BaseUpload.js +226 -0
  123. package/dist/esm/components/form/Upload/BaseUpload.js.map +1 -0
  124. package/dist/esm/components/form/Upload/Upload.d.ts +3 -41
  125. package/dist/esm/components/form/Upload/Upload.d.ts.map +1 -1
  126. package/dist/esm/components/form/Upload/Upload.js +5 -225
  127. package/dist/esm/components/form/Upload/Upload.js.map +1 -1
  128. package/dist/esm/components/form/Upload/UploadedFile.js +1 -1
  129. package/dist/esm/components/form/Upload/UploadedFile.js.map +1 -1
  130. package/dist/esm/components/form/Upload/WithUploadToIpfs.d.ts.map +1 -1
  131. package/dist/esm/components/form/Upload/WithUploadToIpfs.js +8 -11
  132. package/dist/esm/components/form/Upload/WithUploadToIpfs.js.map +1 -1
  133. package/dist/esm/components/form/index.d.ts +6 -4
  134. package/dist/esm/components/form/index.d.ts.map +1 -1
  135. package/dist/esm/components/form/index.js +4 -2
  136. package/dist/esm/components/form/index.js.map +1 -1
  137. package/dist/esm/components/form/types.d.ts +31 -3
  138. package/dist/esm/components/form/types.d.ts.map +1 -1
  139. package/dist/esm/components/ui/IpfsImage.d.ts +4 -3
  140. package/dist/esm/components/ui/IpfsImage.d.ts.map +1 -1
  141. package/dist/esm/components/ui/IpfsImage.js +2 -2
  142. package/dist/esm/components/ui/IpfsImage.js.map +1 -1
  143. package/dist/esm/components/ui/Video.d.ts +3 -3
  144. package/dist/esm/components/ui/Video.d.ts.map +1 -1
  145. package/dist/esm/components/ui/Video.js +5 -3
  146. package/dist/esm/components/ui/Video.js.map +1 -1
  147. package/dist/esm/hooks/ipfs/useIpfsStorage.d.ts.map +1 -1
  148. package/dist/esm/hooks/ipfs/useIpfsStorage.js +2 -1
  149. package/dist/esm/hooks/ipfs/useIpfsStorage.js.map +1 -1
  150. package/dist/esm/hooks/transactions/usePendingTransactionsWithContext.d.ts +1 -1
  151. package/dist/esm/hooks/useIpfsMetadataStorage.d.ts +2 -2
  152. package/dist/esm/hooks/useIpfsMetadataStorage.d.ts.map +1 -1
  153. package/dist/esm/hooks/useIpfsMetadataStorage.js +6 -6
  154. package/dist/esm/hooks/useIpfsMetadataStorage.js.map +1 -1
  155. package/dist/esm/hooks/useIpfsStorage.d.ts.map +1 -1
  156. package/dist/esm/hooks/useIpfsStorage.js +2 -1
  157. package/dist/esm/hooks/useIpfsStorage.js.map +1 -1
  158. package/dist/esm/index.d.ts +63 -60
  159. package/dist/esm/index.d.ts.map +1 -1
  160. package/dist/esm/index.js +63 -60
  161. package/dist/esm/index.js.map +1 -1
  162. package/dist/esm/lib/bytes/bytesToSize.d.ts +1 -1
  163. package/dist/esm/lib/bytes/bytesToSize.d.ts.map +1 -1
  164. package/dist/esm/lib/bytes/bytesToSize.js +1 -1
  165. package/dist/esm/lib/bytes/bytesToSize.js.map +1 -1
  166. package/dist/esm/lib/const/chainInfo.d.ts.map +1 -1
  167. package/dist/esm/lib/const/chainInfo.js +10 -0
  168. package/dist/esm/lib/const/chainInfo.js.map +1 -1
  169. package/package.json +5 -5
  170. package/src/components/buttons/BaseButton.tsx +4 -0
  171. package/src/components/buttons/CommitButtonView.tsx +4 -0
  172. package/src/components/error/SimpleError.tsx +2 -2
  173. package/src/components/form/BaseCheckbox.tsx +50 -0
  174. package/src/components/form/Checkbox.tsx +17 -40
  175. package/src/components/form/CountrySelect.tsx +178 -130
  176. package/src/components/form/Field.styles.ts +113 -24
  177. package/src/components/form/FormField.tsx +4 -1
  178. package/src/components/form/Select.tsx +65 -34
  179. package/src/components/form/Upload/BaseUpload.tsx +367 -0
  180. package/src/components/form/Upload/Upload.tsx +8 -360
  181. package/src/components/form/Upload/UploadedFile.tsx +1 -1
  182. package/src/components/form/Upload/WithUploadToIpfs.tsx +8 -11
  183. package/src/components/form/index.ts +6 -4
  184. package/src/components/form/types.ts +31 -3
  185. package/src/components/ui/IpfsImage.tsx +14 -7
  186. package/src/components/ui/Video.tsx +7 -5
  187. package/src/hooks/ipfs/useIpfsStorage.ts +2 -0
  188. package/src/hooks/useIpfsMetadataStorage.tsx +6 -4
  189. package/src/hooks/useIpfsStorage.ts +2 -0
  190. package/src/index.tsx +67 -64
  191. package/src/lib/bytes/bytesToSize.ts +1 -1
  192. package/src/lib/const/chainInfo.ts +10 -1
  193. package/src/stories/buttons/Upload.stories.tsx +8 -0
  194. package/src/stories/form/BaseCheckbox.stories.tsx +113 -0
  195. package/src/stories/selects/CountrySelect.stories.tsx +49 -11
  196. package/src/stories/selects/Select.stories.tsx +117 -0
@@ -1 +1 @@
1
- {"version":3,"file":"chainInfo.d.ts","sourceRoot":"","sources":["../../../../src/lib/const/chainInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAO5C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAElE,eAAO,MAAM,qBAAqB,QAAY,CAAC;AAE/C,oBAAY,WAAW;IACrB,EAAE,IAAA;IACF,EAAE,IAAA;CACH;AACD,UAAU,aAAa;IACrB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,UAAU,WAAY,SAAQ,aAAa;IACzC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,UAAU,WAAY,SAAQ,aAAa;IACzC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAwED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,kBAAkB,EAC3B,YAAY,CAAC,EAAE,MAAM,CACnB,OAAO,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,EAC1D,OAAO,CACR,GACA,WAAW,CAAC;AACf,wBAAgB,YAAY,CAC1B,OAAO,EAAE,kBAAkB,EAC3B,YAAY,CAAC,EAAE,MAAM,CACnB,OAAO,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,EAC1D,OAAO,CACR,GACA,WAAW,CAAC;AACf,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CACnB,OAAO,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,EAC1D,OAAO,CACR,GACA,WAAW,GAAG,WAAW,CAAC;AAC7B,wBAAgB,YAAY,CAC1B,OAAO,EACH,OAAO,GACP,kBAAkB,GAClB,kBAAkB,GAClB,MAAM,GACN,SAAS,EACb,YAAY,CAAC,EAAE,MAAM,CACnB,OAAO,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,EAC1D,OAAO,CACR,GACA,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"chainInfo.d.ts","sourceRoot":"","sources":["../../../../src/lib/const/chainInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAO5C,OAAO,EAAgB,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEhF,eAAO,MAAM,qBAAqB,QAAY,CAAC;AAE/C,oBAAY,WAAW;IACrB,EAAE,IAAA;IACF,EAAE,IAAA;CACH;AACD,UAAU,aAAa;IACrB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,UAAU,WAAY,SAAQ,aAAa;IACzC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,UAAU,WAAY,SAAQ,aAAa;IACzC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAiFD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,kBAAkB,EAC3B,YAAY,CAAC,EAAE,MAAM,CACnB,OAAO,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,EAC1D,OAAO,CACR,GACA,WAAW,CAAC;AACf,wBAAgB,YAAY,CAC1B,OAAO,EAAE,kBAAkB,EAC3B,YAAY,CAAC,EAAE,MAAM,CACnB,OAAO,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,EAC1D,OAAO,CACR,GACA,WAAW,CAAC;AACf,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CACnB,OAAO,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,EAC1D,OAAO,CACR,GACA,WAAW,GAAG,WAAW,CAAC;AAC7B,wBAAgB,YAAY,CAC1B,OAAO,EACH,OAAO,GACP,kBAAkB,GAClB,kBAAkB,GAClB,MAAM,GACN,SAAS,EACb,YAAY,CAAC,EAAE,MAAM,CACnB,OAAO,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,EAC1D,OAAO,CACR,GACA,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC"}
@@ -4,6 +4,7 @@ import polygonCircleLogoUrl from "../../assets/polygonCircle.png";
4
4
  import polygonMaticLogo from "../../assets/svg/polygon-matic-logo.svg";
5
5
  import polygonSquareLogoUrl from "../../assets/svg/polygon_square_logo.svg";
6
6
  import ms from "ms";
7
+ import { LocalChainId } from "./chains";
7
8
  export const AVERAGE_L1_BLOCK_TIME = ms(`12s`);
8
9
  export var NetworkType;
9
10
  (function (NetworkType) {
@@ -71,6 +72,15 @@ const CHAIN_INFO = {
71
72
  symbol: "aMATIC",
72
73
  decimals: 18
73
74
  }
75
+ },
76
+ [LocalChainId]: {
77
+ networkType: NetworkType.L1,
78
+ docs: "https://docs.uniswap.org/",
79
+ explorer: "https://etherscan.io/",
80
+ infoLink: "https://info.uniswap.org/#/",
81
+ label: "Local",
82
+ logoUrl: ethereumLogoUrl,
83
+ nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }
74
84
  }
75
85
  };
76
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"chainInfo.js","sourceRoot":"","sources":["../../../../src/lib/const/chainInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chainInfo.js","sourceRoot":"","sources":["../../../../src/lib/const/chainInfo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bosonprotocol/react-kit",
3
3
  "description": "React toolkit with smart components and hooks for building on top of the Boson Protocol.",
4
- "version": "0.33.0-alpha.9",
4
+ "version": "0.33.1-alpha.0",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
7
7
  "types": "./dist/cjs/index.d.ts",
@@ -15,9 +15,9 @@
15
15
  "license": "Apache-2.0",
16
16
  "dependencies": {
17
17
  "@bosonprotocol/chat-sdk": "^1.3.1-alpha.9",
18
- "@bosonprotocol/core-sdk": "^1.40.5-alpha.8",
19
- "@bosonprotocol/ethers-sdk": "^1.14.5-alpha.8",
20
- "@bosonprotocol/ipfs-storage": "^1.11.4-alpha.3",
18
+ "@bosonprotocol/core-sdk": "^1.40.5",
19
+ "@bosonprotocol/ethers-sdk": "^1.14.5",
20
+ "@bosonprotocol/ipfs-storage": "^1.11.4",
21
21
  "@davatar/react": "1.11.1",
22
22
  "@ethersproject/units": "5.6.0",
23
23
  "@glidejs/glide": "3.6.0",
@@ -188,5 +188,5 @@
188
188
  "overrides": {
189
189
  "typescript": "^5.1.6"
190
190
  },
191
- "gitHead": "5216b979eadca6b29a51ca4ede8a4e3cd1664a7f"
191
+ "gitHead": "f584204fef7d4089c9f7e8b1aadccd2a74569472"
192
192
  }
@@ -19,6 +19,7 @@ const colors = theme.colors.light;
19
19
  const ButtonWithThemeProps = styled.button<{
20
20
  size: ButtonSizeProp;
21
21
  fill: boolean | undefined;
22
+ theme: BaseButtonTheme;
22
23
  }>`
23
24
  ${() => Styles.button};
24
25
  ${(props) => Styles[props.size as keyof typeof Styles]}
@@ -26,6 +27,8 @@ const ButtonWithThemeProps = styled.button<{
26
27
  border-color: ${(props) => props.theme?.borderColor || "transparent"};
27
28
  border-width: ${(props) => props.theme?.borderWidth || 0}px;
28
29
  border-radius: ${(props) => props.theme?.borderRadius || 0}px;
30
+ ${(props) =>
31
+ props.theme?.boxShadow ? `box-shadow: ${props.theme.boxShadow}` : ""};
29
32
  color: ${(props) => props.theme?.color || "#000000"};
30
33
  background-color: ${(props) => props.theme?.background || "transparent"};
31
34
  svg {
@@ -110,6 +113,7 @@ export type BaseButtonTheme = {
110
113
  borderColor?: CSSProperties["borderColor"];
111
114
  borderRadius?: CSSProperties["borderRadius"];
112
115
  borderWidth?: CSSProperties["borderWidth"];
116
+ boxShadow?: CSSProperties["boxShadow"];
113
117
  color?: CSSProperties["color"];
114
118
  padding?: CSSProperties["padding"];
115
119
  gap?: CSSProperties["gap"];
@@ -56,6 +56,10 @@ const Wrapper = styled.div`
56
56
 
57
57
  ${StyledButton} {
58
58
  transition: background 150ms ease-in-out;
59
+ padding: 0.75rem 0.625rem;
60
+ svg {
61
+ max-width: 100%;
62
+ }
59
63
  }
60
64
  `;
61
65
 
@@ -13,7 +13,7 @@ const StyledGrid = styled(Grid)<{
13
13
  background-color: ${({ $background }) => $background};
14
14
  `;
15
15
 
16
- export type SimpleProps = GridProps & {
16
+ export type SimpleErrorProps = GridProps & {
17
17
  errorMessage?: string;
18
18
  children?: ReactNode;
19
19
  backgroundColor?: CSSProperties["backgroundColor"];
@@ -26,7 +26,7 @@ export function SimpleError({
26
26
  backgroundColor = colors.lightGrey,
27
27
  warningColor = colors.darkOrange,
28
28
  ...rest
29
- }: SimpleProps) {
29
+ }: SimpleErrorProps) {
30
30
  return (
31
31
  <StyledGrid
32
32
  justifyContent="flex-start"
@@ -0,0 +1,50 @@
1
+ import { useField } from "formik";
2
+ import { Check } from "phosphor-react";
3
+ import React, { useEffect, useRef } from "react";
4
+
5
+ import Error from "./Error";
6
+ import { CheckboxWrapper } from "./Field.styles";
7
+ import type { CheckboxProps } from "./types";
8
+
9
+ export type BaseCheckboxProps = CheckboxProps;
10
+ export function BaseCheckbox({
11
+ name,
12
+ text,
13
+ theme,
14
+ hideError,
15
+ ...props
16
+ }: BaseCheckboxProps) {
17
+ const [field, meta, helpers] = useField(name);
18
+ const ref = useRef(field.value);
19
+ const errorMessage = meta.error && meta.touched ? meta.error : "";
20
+ const displayError = typeof errorMessage === "string" && errorMessage !== "";
21
+ const checkboxId = `checkbox-${name}`;
22
+
23
+ useEffect(() => {
24
+ if (ref.current !== field.value) {
25
+ if (!meta.touched) {
26
+ helpers.setTouched(true);
27
+ }
28
+ }
29
+ }, [field.value]); // eslint-disable-line
30
+
31
+ return (
32
+ <>
33
+ <CheckboxWrapper htmlFor={checkboxId} $error={errorMessage} theme={theme}>
34
+ <input
35
+ hidden
36
+ id={checkboxId}
37
+ type="checkbox"
38
+ {...props}
39
+ {...field}
40
+ checked={field.value}
41
+ />
42
+ <div>
43
+ <Check size={16} />
44
+ </div>
45
+ <b>{text}</b>
46
+ </CheckboxWrapper>
47
+ <Error display={!hideError && displayError} message={errorMessage} />
48
+ </>
49
+ );
50
+ }
@@ -1,43 +1,20 @@
1
- import { useField } from "formik";
2
- import { Check } from "phosphor-react";
3
- import React, { useEffect, useRef } from "react";
1
+ import React from "react";
4
2
 
5
- import Error from "./Error";
6
- import { CheckboxWrapper } from "./Field.styles";
7
- import type { CheckboxProps } from "./types";
3
+ import { theme } from "../../theme";
4
+ import { BaseCheckbox, BaseCheckboxProps } from "./BaseCheckbox";
8
5
 
9
- export default function Checkbox({ name, text, ...props }: CheckboxProps) {
10
- const [field, meta, helpers] = useField(name);
11
- const ref = useRef(field.value);
12
- const errorMessage = meta.error && meta.touched ? meta.error : "";
13
- const displayError = typeof errorMessage === "string" && errorMessage !== "";
14
- const checkboxId = `checkbox-${name}`;
15
-
16
- useEffect(() => {
17
- if (ref.current !== field.value) {
18
- if (!meta.touched) {
19
- helpers.setTouched(true);
20
- }
21
- }
22
- }, [field.value]); // eslint-disable-line
23
-
24
- return (
25
- <>
26
- <CheckboxWrapper htmlFor={checkboxId} error={errorMessage}>
27
- <input
28
- hidden
29
- id={checkboxId}
30
- type="checkbox"
31
- {...props}
32
- {...field}
33
- checked={field.value}
34
- />
35
- <div>
36
- <Check size={16} />
37
- </div>
38
- <b>{text || "Checkbox"}</b>
39
- </CheckboxWrapper>
40
- <Error display={displayError} message={errorMessage} />
41
- </>
42
- );
6
+ const colors = theme.colors.light;
7
+ export const bosonCheckboxTheme = {
8
+ backgroundColor: colors.lightGrey,
9
+ borderColor: colors.border,
10
+ hover: {
11
+ borderColor: colors.secondary
12
+ },
13
+ error: {
14
+ borderColor: colors.orange
15
+ }
16
+ } satisfies BaseCheckboxProps["theme"];
17
+ export type CheckboxProps = Omit<BaseCheckboxProps, "theme">;
18
+ export function Checkbox(props: CheckboxProps) {
19
+ return <BaseCheckbox {...props} theme={bosonCheckboxTheme} />;
43
20
  }
@@ -4,18 +4,31 @@ import { GlobeHemisphereWest } from "phosphor-react";
4
4
  import React, { forwardRef, useState, useEffect } from "react";
5
5
  import type { Country as CountryCode } from "react-phone-number-input";
6
6
  import PhoneInput from "react-phone-number-input";
7
- import Select, { GroupBase, StylesConfig, components } from "react-select";
7
+ import Select, {
8
+ CSSObjectWithLabel,
9
+ GroupBase,
10
+ StylesConfig,
11
+ components
12
+ } from "react-select";
8
13
  import styled, { CSSProperties } from "styled-components";
9
14
  import { zIndex } from "../ui/zIndex";
10
15
  import Error from "./Error";
11
16
  import type { InputProps } from "./types";
12
17
  import { SelectDataProps } from "./types";
13
18
  import { theme as importedTheme } from "../../theme";
19
+ import { checkIfValueIsEmpty } from "../../lib/object/checkIfValueIsEmpty";
14
20
  export type { Country as CountryCode } from "react-phone-number-input";
15
21
 
16
22
  const colors = importedTheme.colors.light;
17
- const customStyles = {
18
- control: (provided: any, state: any) => {
23
+ const customStyles = (
24
+ error: unknown,
25
+ customTheme: CountrySelectProps["theme"]
26
+ ): StylesConfig<
27
+ SelectDataProps<string>,
28
+ false,
29
+ GroupBase<SelectDataProps<string>>
30
+ > => ({
31
+ control: (provided, state: any) => {
19
32
  const before = state.selectProps.label
20
33
  ? {
21
34
  ":before": {
@@ -25,26 +38,27 @@ const customStyles = {
25
38
  }
26
39
  }
27
40
  : null;
28
- const { theme } = state;
29
41
  return {
30
42
  ...provided,
31
- borderRadius: theme.borderRadius,
32
- height: theme.controlHeight,
33
43
  alignContent: "center",
34
44
  padding: "0.4rem 1rem",
35
45
  boxShadow: "none",
46
+ background: colors.lightGrey,
47
+ ...customTheme?.control,
48
+ border: state.isFocused
49
+ ? customTheme?.control?.focus?.border ?? `1px solid ${colors.secondary}`
50
+ : !checkIfValueIsEmpty(error)
51
+ ? customTheme?.control?.error?.border ?? `1px solid ${colors.orange}`
52
+ : customTheme?.control?.border ?? `1px solid ${colors.border}`,
36
53
  ":hover": {
37
- borderColor: theme.colors.controlHoverBorderColor,
38
- borderWidth: "1px"
54
+ borderColor: colors.secondary,
55
+ borderWidth: "1px",
56
+ ...customTheme?.control?.hover
39
57
  },
40
- background: theme.colors.controlBackground,
41
- border: state.isFocused
42
- ? `1px solid ${theme.colors.controlFocusBorderColor}`
43
- : `1px solid ${theme.colors.controlUnfocusedBorderColor}`,
44
58
  ...before
45
59
  };
46
60
  },
47
- container: (provided: any, state: any) => {
61
+ container: (provided, state) => {
48
62
  return {
49
63
  ...provided,
50
64
  zIndex: state.isFocused ? zIndex.Select + 1 : zIndex.Select,
@@ -52,34 +66,56 @@ const customStyles = {
52
66
  width: "100%"
53
67
  };
54
68
  },
55
- option: (provided: any, state: any) => {
56
- const { theme } = state;
69
+ option: (provided, state: any) => {
57
70
  return {
58
71
  ...provided,
72
+ ...customTheme?.option,
59
73
  cursor: state.isDisabled ? "not-allowed" : "pointer",
60
- opacity: state.isDisabled ? "0.5" : "1",
74
+ opacity: state.isDisabled
75
+ ? customTheme?.option?.disabled?.opacity ?? "0.5"
76
+ : customTheme?.option?.opacity ?? "1",
61
77
  background:
62
78
  state.isOptionSelected || state.isSelected || state.isFocused
63
- ? theme.colors.selectedOptionBackground
64
- : theme.colors.unselectedOptionBackground,
79
+ ? customTheme?.option?.selected?.background ?? colors.lightGrey
80
+ : customTheme?.option?.background ?? colors.white,
65
81
  color:
66
82
  state.isOptionSelected || state.isSelected
67
- ? theme.colors.selectedOptionColor
68
- : theme.colors.unselectedOptionColor
83
+ ? customTheme?.option?.selected?.color ?? colors.secondary
84
+ : customTheme?.option?.color ?? colors.black,
85
+ ...(state.isDisabled && customTheme?.option?.disabled),
86
+ ...((state.isOptionSelected || state.isSelected) &&
87
+ customTheme?.option?.selected),
88
+ ...(state.isFocused && customTheme?.option?.focus),
89
+ ...(!checkIfValueIsEmpty(error) && customTheme?.option?.error)
90
+ };
91
+ },
92
+ menu: (provided) => {
93
+ return {
94
+ ...provided,
95
+ overflow: "hidden",
96
+ ...customTheme?.menu,
97
+ ...(!checkIfValueIsEmpty(error) && customTheme?.menu?.error)
69
98
  };
70
99
  },
71
- menu: (provided) => ({
72
- ...provided,
73
- overflow: "hidden"
74
- }),
75
100
  indicatorSeparator: () => ({
76
101
  display: "none"
102
+ }),
103
+ placeholder: (provided) => ({
104
+ ...provided,
105
+ ...customTheme?.placeholder,
106
+ ...(!checkIfValueIsEmpty(error) && customTheme?.placeholder?.error)
107
+ }),
108
+ input: (provided) => ({
109
+ ...provided,
110
+ ...customTheme?.input,
111
+ ...(!checkIfValueIsEmpty(error) && customTheme?.input?.error)
112
+ }),
113
+ singleValue: (provided) => ({
114
+ ...provided,
115
+ ...customTheme?.singleValue,
116
+ ...(!checkIfValueIsEmpty(error) && customTheme?.singleValue?.error)
77
117
  })
78
- } satisfies StylesConfig<
79
- SelectDataProps<string>,
80
- false,
81
- GroupBase<SelectDataProps<string>>
82
- >;
118
+ });
83
119
 
84
120
  const ControlGrid = styled.div`
85
121
  display: flex;
@@ -88,6 +124,7 @@ const ControlGrid = styled.div`
88
124
  align-items: center;
89
125
  justify-content: space-between;
90
126
  .PhoneInputCountryIcon {
127
+ max-width: fit-content;
91
128
  min-width: 40px;
92
129
  display: inline;
93
130
  height: 27px;
@@ -95,6 +132,9 @@ const ControlGrid = styled.div`
95
132
  max-width: 40px;
96
133
  }
97
134
  }
135
+ svg {
136
+ max-width: 40px;
137
+ }
98
138
  `;
99
139
  const OptionGrid = styled.div`
100
140
  display: grid;
@@ -122,38 +162,57 @@ const PhoneWrapper = styled.div`
122
162
 
123
163
  export type CountrySelectProps = InputProps & {
124
164
  countries?: CountryCode[];
165
+ fieldValueIsCountryCode?: boolean; // if true, the field.value will be the countryCodeOrName, otherwise the country name
125
166
  theme?: Partial<{
126
- controlHeight: CSSProperties["height"];
127
- borderRadius: CSSProperties["borderRadius"];
128
- controlHoverBorderColor: CSSProperties["borderColor"];
129
- controlBackground: CSSProperties["background"];
130
- controlFocusBorderColor: CSSProperties["borderColor"];
131
- controlUnfocusedBorderColor: CSSProperties["borderColor"];
132
- selectedOptionBackground: CSSProperties["background"];
133
- unselectedOptionBackground: CSSProperties["background"];
134
- selectedOptionColor: CSSProperties["color"];
135
- unselectedOptionColor: CSSProperties["color"];
167
+ control: Partial<CSSProperties> &
168
+ Partial<{
169
+ hover: Partial<CSSProperties>;
170
+ focus: Partial<CSSProperties>;
171
+ error: Partial<CSSProperties>;
172
+ }>;
173
+ option: Partial<CSSProperties> &
174
+ Partial<{
175
+ selected: Partial<CSSProperties>;
176
+ disabled: Partial<CSSProperties>;
177
+ focus: Partial<CSSProperties>;
178
+ error: CSSProperties;
179
+ }>;
180
+ placeholder: Partial<CSSProperties> &
181
+ Partial<{ error: CSSObjectWithLabel }>;
182
+ input: Partial<CSSProperties> & Partial<{ error: CSSObjectWithLabel }>;
183
+ singleValue: Partial<CSSProperties> &
184
+ Partial<{ error: CSSObjectWithLabel }>;
185
+ menu: Partial<CSSProperties> & Partial<{ error: CSSObjectWithLabel }>;
136
186
  }>;
137
187
  };
138
-
188
+ type CountryName = string;
139
189
  export function CountrySelect({
140
190
  name,
141
191
  countries,
142
192
  theme: selectTheme,
193
+ fieldValueIsCountryCode,
143
194
  ...rest
144
195
  }: CountrySelectProps) {
145
196
  const { status } = useFormikContext();
146
197
  const [initialized, setInitialized] = useState<boolean>(false);
147
198
  const [field, meta, helpers] = useField(name);
148
- const errorText = meta.error || status?.[name];
149
- const errorMessage = errorText && meta.touched ? errorText : "";
150
- const displayError = typeof errorMessage === "string" && errorMessage !== "";
199
+ const errorMessage = meta.error || status?.[name];
200
+ const displayErrorMessage =
201
+ meta.error && meta.touched && !errorMessage
202
+ ? meta.error
203
+ : meta.error && meta.touched && errorMessage
204
+ ? errorMessage
205
+ : "";
206
+ const displayError =
207
+ typeof displayErrorMessage === "string" && displayErrorMessage !== "";
151
208
  const [phone, setPhone] = useState<string | undefined>(undefined);
152
- const [countryCode, setCountryCode] = useState<CountryCode | undefined>();
209
+ const [countryCodeOrName, setCountryCodeOrName] = useState<
210
+ CountryCode | CountryName | undefined
211
+ >();
153
212
 
154
213
  useEffect(() => {
155
214
  if (!initialized && field.value) {
156
- setCountryCode(field.value as CountryCode);
215
+ setCountryCodeOrName(field.value);
157
216
  setInitialized(true);
158
217
  }
159
218
  }, [field.value, initialized]); // eslint-disable-line
@@ -167,94 +226,83 @@ export function CountrySelect({
167
226
  <div></div>
168
227
  ))}
169
228
  addInternationalOption={false}
170
- country={countryCode}
229
+ country={countryCodeOrName}
171
230
  value={phone}
172
231
  onChange={(value) => setPhone((value || "").replace(/\+/g, ""))}
173
232
  countries={countries}
174
- countrySelectComponent={({ iconComponent: Icon, ...props }) => (
175
- <>
176
- <div>
177
- <Select
178
- {...rest}
179
- {...props}
180
- isDisabled={rest.disabled}
181
- theme={(theme) => ({
182
- ...theme,
183
- controlHeight: selectTheme?.controlHeight,
184
- borderRadius: selectTheme?.borderRadius || 0,
185
- colors: {
186
- ...theme.colors,
187
- controlHoverBorderColor:
188
- selectTheme?.controlHoverBorderColor ||
189
- colors.secondary,
190
- controlBackground:
191
- selectTheme?.controlBackground || colors.lightGrey,
192
- controlFocusBorderColor:
193
- selectTheme?.controlFocusBorderColor ||
194
- colors.secondary,
195
- controlUnfocusedBorderColor:
196
- selectTheme?.controlUnfocusedBorderColor ||
197
- colors.border,
198
- selectedOptionBackground:
199
- selectTheme?.selectedOptionBackground ||
200
- colors.lightGrey,
201
- unselectedOptionBackground:
202
- selectTheme?.unselectedOptionBackground || colors.white,
203
- selectedOptionColor:
204
- selectTheme?.selectedOptionColor || colors.secondary,
205
- unselectedOptionColor:
206
- selectTheme?.unselectedOptionColor || colors.black
207
- }
208
- })}
209
- styles={customStyles}
210
- name="countrySelect"
211
- value={(props?.options || []).find(
212
- (o: SelectDataProps) => o.value === countryCode
213
- )}
214
- onChange={(o: SelectDataProps) => {
215
- setCountryCode(o.value as CountryCode);
216
- helpers.setValue(o.label);
217
- }}
218
- components={{
219
- Control: (props) => {
220
- const country =
221
- (props?.getValue()[0] as any)?.value || null;
222
- return (
223
- <components.Control {...props}>
224
- <ControlGrid>
225
- {country ? (
226
- <Icon country={country as CountryCode} label="" />
227
- ) : (
228
- <GlobeHemisphereWest />
229
- )}
230
- {props.children as any}
231
- </ControlGrid>
232
- </components.Control>
233
- );
234
- },
235
- Option: (props) => {
236
- const country = (props?.data as any)?.value || null;
237
- return (
238
- <components.Option {...props}>
239
- <OptionGrid>
240
- {country ? (
241
- <Icon
242
- country={country as CountryCode}
243
- label={props.label}
244
- />
245
- ) : (
246
- <GlobeHemisphereWest />
247
- )}
248
- {props.label}
249
- </OptionGrid>
250
- </components.Option>
251
- );
252
- }
253
- }}
254
- />
255
- </div>
256
- </>
257
- )}
233
+ countrySelectComponent={({ iconComponent: Icon, ...props }) => {
234
+ const value = (props?.options || []).find((o: SelectDataProps) =>
235
+ fieldValueIsCountryCode
236
+ ? o.value === countryCodeOrName
237
+ : o.label === countryCodeOrName
238
+ );
239
+ return (
240
+ <>
241
+ <div>
242
+ <Select
243
+ {...rest}
244
+ {...props}
245
+ isDisabled={rest.disabled}
246
+ styles={customStyles(displayErrorMessage, selectTheme)}
247
+ name="countrySelect"
248
+ value={value}
249
+ onChange={(o: SelectDataProps) => {
250
+ if (!meta.touched) {
251
+ helpers.setTouched(true);
252
+ }
253
+ const value = fieldValueIsCountryCode ? o.value : o.label;
254
+ setCountryCodeOrName(value);
255
+ helpers.setValue(value);
256
+ }}
257
+ onBlur={() => {
258
+ if (!meta.touched) {
259
+ helpers.setTouched(true);
260
+ }
261
+ }}
262
+ components={{
263
+ Control: (props) => {
264
+ const country =
265
+ (props?.getValue()[0] as any)?.value || null;
266
+ return (
267
+ <components.Control {...props}>
268
+ <ControlGrid>
269
+ {country ? (
270
+ <Icon
271
+ country={country as CountryCode}
272
+ label=""
273
+ />
274
+ ) : (
275
+ <GlobeHemisphereWest />
276
+ )}
277
+ {props.children as any}
278
+ </ControlGrid>
279
+ </components.Control>
280
+ );
281
+ },
282
+ Option: (props) => {
283
+ const country = (props?.data as any)?.value || null;
284
+ return (
285
+ <components.Option {...props}>
286
+ <OptionGrid>
287
+ {country ? (
288
+ <Icon
289
+ country={country as CountryCode}
290
+ label={props.label}
291
+ />
292
+ ) : (
293
+ <GlobeHemisphereWest />
294
+ )}
295
+ {props.label}
296
+ </OptionGrid>
297
+ </components.Option>
298
+ );
299
+ }
300
+ }}
301
+ />
302
+ </div>
303
+ </>
304
+ );
305
+ }}
258
306
  />
259
307
  </PhoneWrapper>
260
308
  <Error display={!rest.hideError && displayError} message={errorMessage} />