@bosonprotocol/react-kit 0.34.0-alpha.2 → 0.34.0-alpha.21

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 (249) hide show
  1. package/dist/cjs/components/config/ConfigContext.d.ts +2 -1
  2. package/dist/cjs/components/config/ConfigContext.d.ts.map +1 -1
  3. package/dist/cjs/components/config/ConfigContext.js.map +1 -1
  4. package/dist/cjs/components/config/ConfigProvider.d.ts.map +1 -1
  5. package/dist/cjs/components/config/ConfigProvider.js +4 -1
  6. package/dist/cjs/components/config/ConfigProvider.js.map +1 -1
  7. package/dist/cjs/components/connection/utils.d.ts.map +1 -1
  8. package/dist/cjs/components/connection/utils.js +0 -1
  9. package/dist/cjs/components/connection/utils.js.map +1 -1
  10. package/dist/cjs/components/currencyDisplay/CurrencyDisplay.d.ts +5 -2
  11. package/dist/cjs/components/currencyDisplay/CurrencyDisplay.d.ts.map +1 -1
  12. package/dist/cjs/components/currencyDisplay/CurrencyDisplay.js +6 -7
  13. package/dist/cjs/components/currencyDisplay/CurrencyDisplay.js.map +1 -1
  14. package/dist/cjs/components/exchangeCard/ExchangeCard.d.ts +1 -1
  15. package/dist/cjs/components/image/Image.styles.d.ts.map +1 -1
  16. package/dist/cjs/components/image/Image.styles.js +0 -2
  17. package/dist/cjs/components/image/Image.styles.js.map +1 -1
  18. package/dist/cjs/components/magicLink/MagicProvider.js +1 -1
  19. package/dist/cjs/components/magicLink/MagicProvider.js.map +1 -1
  20. package/dist/cjs/components/magicLink/UserContext.d.ts.map +1 -1
  21. package/dist/cjs/components/magicLink/UserContext.js +10 -2
  22. package/dist/cjs/components/magicLink/UserContext.js.map +1 -1
  23. package/dist/cjs/components/modal/components/Redeem/MyItems/Exchange.js +1 -1
  24. package/dist/cjs/components/modal/components/Redeem/MyItems/Exchange.js.map +1 -1
  25. package/dist/cjs/components/productCard/ProductCard.d.ts +5 -2
  26. package/dist/cjs/components/productCard/ProductCard.d.ts.map +1 -1
  27. package/dist/cjs/components/productCard/ProductCard.js +42 -34
  28. package/dist/cjs/components/productCard/ProductCard.js.map +1 -1
  29. package/dist/cjs/components/productCard/ProductCard.styles.d.ts +111 -4
  30. package/dist/cjs/components/productCard/ProductCard.styles.d.ts.map +1 -1
  31. package/dist/cjs/components/productCard/ProductCard.styles.js +51 -26
  32. package/dist/cjs/components/productCard/ProductCard.styles.js.map +1 -1
  33. package/dist/cjs/components/productCard/commonStyles.d.ts.map +1 -1
  34. package/dist/cjs/components/productCard/commonStyles.js +0 -1
  35. package/dist/cjs/components/productCard/commonStyles.js.map +1 -1
  36. package/dist/cjs/components/queryClient/withQueryClientProvider.d.ts +0 -4
  37. package/dist/cjs/components/queryClient/withQueryClientProvider.d.ts.map +1 -1
  38. package/dist/cjs/components/queryClient/withQueryClientProvider.js +3 -26
  39. package/dist/cjs/components/queryClient/withQueryClientProvider.js.map +1 -1
  40. package/dist/cjs/components/skeleton/CollectionsCardSkeleton.d.ts.map +1 -1
  41. package/dist/cjs/components/skeleton/CollectionsCardSkeleton.js +39 -17
  42. package/dist/cjs/components/skeleton/CollectionsCardSkeleton.js.map +1 -1
  43. package/dist/cjs/components/skeleton/ProductCardSkeleton.d.ts.map +1 -1
  44. package/dist/cjs/components/skeleton/ProductCardSkeleton.js +18 -19
  45. package/dist/cjs/components/skeleton/ProductCardSkeleton.js.map +1 -1
  46. package/dist/cjs/components/wallet/ConnectButton.d.ts.map +1 -1
  47. package/dist/cjs/components/wallet/ConnectButton.js +3 -2
  48. package/dist/cjs/components/wallet/ConnectButton.js.map +1 -1
  49. package/dist/cjs/components/wallet/wallet-connection.d.ts +9559 -9559
  50. package/dist/cjs/components/wallet2/accountDrawer/AuthenticatedHeader.d.ts +3 -3
  51. package/dist/cjs/components/wallet2/accountDrawer/AuthenticatedHeader.d.ts.map +1 -1
  52. package/dist/cjs/components/wallet2/accountDrawer/AuthenticatedHeader.js +2 -2
  53. package/dist/cjs/components/wallet2/accountDrawer/AuthenticatedHeader.js.map +1 -1
  54. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/index.d.ts +3 -3
  55. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/index.d.ts.map +1 -1
  56. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/index.js +2 -2
  57. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/index.js.map +1 -1
  58. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/tokens/index.d.ts +5 -2
  59. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/tokens/index.d.ts.map +1 -1
  60. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/tokens/index.js +3 -2
  61. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/tokens/index.js.map +1 -1
  62. package/dist/cjs/components/wallet2/selector/ChainSelector.d.ts +4 -1
  63. package/dist/cjs/components/wallet2/selector/ChainSelector.d.ts.map +1 -1
  64. package/dist/cjs/components/wallet2/selector/ChainSelector.js +2 -4
  65. package/dist/cjs/components/wallet2/selector/ChainSelector.js.map +1 -1
  66. package/dist/cjs/components/wallet2/walletModal/ConnectionErrorView.d.ts +6 -1
  67. package/dist/cjs/components/wallet2/walletModal/ConnectionErrorView.d.ts.map +1 -1
  68. package/dist/cjs/components/wallet2/walletModal/ConnectionErrorView.js +7 -5
  69. package/dist/cjs/components/wallet2/walletModal/ConnectionErrorView.js.map +1 -1
  70. package/dist/cjs/components/wallet2/walletModal/Option.d.ts +5 -1
  71. package/dist/cjs/components/wallet2/walletModal/Option.d.ts.map +1 -1
  72. package/dist/cjs/components/wallet2/walletModal/Option.js +5 -2
  73. package/dist/cjs/components/wallet2/walletModal/Option.js.map +1 -1
  74. package/dist/cjs/components/wallet2/walletModal/index.d.ts +12 -4
  75. package/dist/cjs/components/wallet2/walletModal/index.d.ts.map +1 -1
  76. package/dist/cjs/components/wallet2/walletModal/index.js +3 -3
  77. package/dist/cjs/components/wallet2/walletModal/index.js.map +1 -1
  78. package/dist/cjs/components/wallet2/web3Status/index.d.ts +14 -2
  79. package/dist/cjs/components/wallet2/web3Status/index.d.ts.map +1 -1
  80. package/dist/cjs/components/wallet2/web3Status/index.js +13 -5
  81. package/dist/cjs/components/wallet2/web3Status/index.js.map +1 -1
  82. package/dist/cjs/hooks/connection/connection.d.ts.map +1 -1
  83. package/dist/cjs/hooks/connection/connection.js +41 -12
  84. package/dist/cjs/hooks/connection/connection.js.map +1 -1
  85. package/dist/cjs/hooks/connection/useSyncChainQuery.js.map +1 -1
  86. package/dist/cjs/hooks/index.d.ts +5 -0
  87. package/dist/cjs/hooks/index.d.ts.map +1 -1
  88. package/dist/cjs/hooks/index.js +11 -1
  89. package/dist/cjs/hooks/index.js.map +1 -1
  90. package/dist/cjs/hooks/magic.d.ts +4 -4
  91. package/dist/cjs/hooks/magic.d.ts.map +1 -1
  92. package/dist/cjs/hooks/magic.js +9 -6
  93. package/dist/cjs/hooks/magic.js.map +1 -1
  94. package/dist/cjs/hooks/useCtaClickHandler.d.ts +1 -1
  95. package/dist/cjs/hooks/useCtaClickHandler.d.ts.map +1 -1
  96. package/dist/cjs/hooks/useCtaClickHandler.js.map +1 -1
  97. package/dist/cjs/hooks/useMetaTx.d.ts +1 -1
  98. package/dist/cjs/hooks/useMetaTx.d.ts.map +1 -1
  99. package/dist/cjs/hooks/useMetaTx.js.map +1 -1
  100. package/dist/cjs/index.d.ts +4 -0
  101. package/dist/cjs/index.d.ts.map +1 -1
  102. package/dist/cjs/index.js +4 -0
  103. package/dist/cjs/index.js.map +1 -1
  104. package/dist/cjs/lib/signer/externalSigner.d.ts.map +1 -1
  105. package/dist/cjs/lib/signer/externalSigner.js +7 -0
  106. package/dist/cjs/lib/signer/externalSigner.js.map +1 -1
  107. package/dist/esm/components/config/ConfigContext.d.ts +2 -1
  108. package/dist/esm/components/config/ConfigContext.d.ts.map +1 -1
  109. package/dist/esm/components/config/ConfigContext.js.map +1 -1
  110. package/dist/esm/components/config/ConfigProvider.d.ts.map +1 -1
  111. package/dist/esm/components/config/ConfigProvider.js +4 -1
  112. package/dist/esm/components/config/ConfigProvider.js.map +1 -1
  113. package/dist/esm/components/connection/utils.d.ts.map +1 -1
  114. package/dist/esm/components/connection/utils.js +0 -1
  115. package/dist/esm/components/connection/utils.js.map +1 -1
  116. package/dist/esm/components/currencyDisplay/CurrencyDisplay.d.ts +5 -2
  117. package/dist/esm/components/currencyDisplay/CurrencyDisplay.d.ts.map +1 -1
  118. package/dist/esm/components/currencyDisplay/CurrencyDisplay.js +6 -7
  119. package/dist/esm/components/currencyDisplay/CurrencyDisplay.js.map +1 -1
  120. package/dist/esm/components/exchangeCard/ExchangeCard.d.ts +1 -1
  121. package/dist/esm/components/image/Image.styles.d.ts.map +1 -1
  122. package/dist/esm/components/image/Image.styles.js +0 -2
  123. package/dist/esm/components/image/Image.styles.js.map +1 -1
  124. package/dist/esm/components/magicLink/MagicProvider.js +1 -1
  125. package/dist/esm/components/magicLink/MagicProvider.js.map +1 -1
  126. package/dist/esm/components/magicLink/UserContext.d.ts.map +1 -1
  127. package/dist/esm/components/magicLink/UserContext.js +10 -2
  128. package/dist/esm/components/magicLink/UserContext.js.map +1 -1
  129. package/dist/esm/components/modal/components/Redeem/MyItems/Exchange.js +1 -1
  130. package/dist/esm/components/modal/components/Redeem/MyItems/Exchange.js.map +1 -1
  131. package/dist/esm/components/productCard/ProductCard.d.ts +5 -2
  132. package/dist/esm/components/productCard/ProductCard.d.ts.map +1 -1
  133. package/dist/esm/components/productCard/ProductCard.js +20 -32
  134. package/dist/esm/components/productCard/ProductCard.js.map +1 -1
  135. package/dist/esm/components/productCard/ProductCard.styles.d.ts +111 -4
  136. package/dist/esm/components/productCard/ProductCard.styles.d.ts.map +1 -1
  137. package/dist/esm/components/productCard/ProductCard.styles.js +50 -24
  138. package/dist/esm/components/productCard/ProductCard.styles.js.map +1 -1
  139. package/dist/esm/components/productCard/commonStyles.d.ts.map +1 -1
  140. package/dist/esm/components/productCard/commonStyles.js +0 -1
  141. package/dist/esm/components/productCard/commonStyles.js.map +1 -1
  142. package/dist/esm/components/queryClient/withQueryClientProvider.d.ts +0 -4
  143. package/dist/esm/components/queryClient/withQueryClientProvider.d.ts.map +1 -1
  144. package/dist/esm/components/queryClient/withQueryClientProvider.js +1 -11
  145. package/dist/esm/components/queryClient/withQueryClientProvider.js.map +1 -1
  146. package/dist/esm/components/skeleton/CollectionsCardSkeleton.d.ts.map +1 -1
  147. package/dist/esm/components/skeleton/CollectionsCardSkeleton.js +39 -17
  148. package/dist/esm/components/skeleton/CollectionsCardSkeleton.js.map +1 -1
  149. package/dist/esm/components/skeleton/ProductCardSkeleton.d.ts.map +1 -1
  150. package/dist/esm/components/skeleton/ProductCardSkeleton.js +19 -20
  151. package/dist/esm/components/skeleton/ProductCardSkeleton.js.map +1 -1
  152. package/dist/esm/components/wallet/ConnectButton.d.ts.map +1 -1
  153. package/dist/esm/components/wallet/ConnectButton.js +4 -3
  154. package/dist/esm/components/wallet/ConnectButton.js.map +1 -1
  155. package/dist/esm/components/wallet/wallet-connection.d.ts +9559 -9559
  156. package/dist/esm/components/wallet2/accountDrawer/AuthenticatedHeader.d.ts +3 -3
  157. package/dist/esm/components/wallet2/accountDrawer/AuthenticatedHeader.d.ts.map +1 -1
  158. package/dist/esm/components/wallet2/accountDrawer/AuthenticatedHeader.js +2 -2
  159. package/dist/esm/components/wallet2/accountDrawer/AuthenticatedHeader.js.map +1 -1
  160. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/index.d.ts +3 -3
  161. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/index.d.ts.map +1 -1
  162. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/index.js +2 -2
  163. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/index.js.map +1 -1
  164. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/tokens/index.d.ts +5 -2
  165. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/tokens/index.d.ts.map +1 -1
  166. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/tokens/index.js +3 -2
  167. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/tokens/index.js.map +1 -1
  168. package/dist/esm/components/wallet2/selector/ChainSelector.d.ts +4 -1
  169. package/dist/esm/components/wallet2/selector/ChainSelector.d.ts.map +1 -1
  170. package/dist/esm/components/wallet2/selector/ChainSelector.js +3 -5
  171. package/dist/esm/components/wallet2/selector/ChainSelector.js.map +1 -1
  172. package/dist/esm/components/wallet2/walletModal/ConnectionErrorView.d.ts +6 -1
  173. package/dist/esm/components/wallet2/walletModal/ConnectionErrorView.d.ts.map +1 -1
  174. package/dist/esm/components/wallet2/walletModal/ConnectionErrorView.js +7 -5
  175. package/dist/esm/components/wallet2/walletModal/ConnectionErrorView.js.map +1 -1
  176. package/dist/esm/components/wallet2/walletModal/Option.d.ts +5 -1
  177. package/dist/esm/components/wallet2/walletModal/Option.d.ts.map +1 -1
  178. package/dist/esm/components/wallet2/walletModal/Option.js +5 -2
  179. package/dist/esm/components/wallet2/walletModal/Option.js.map +1 -1
  180. package/dist/esm/components/wallet2/walletModal/index.d.ts +12 -4
  181. package/dist/esm/components/wallet2/walletModal/index.d.ts.map +1 -1
  182. package/dist/esm/components/wallet2/walletModal/index.js +3 -3
  183. package/dist/esm/components/wallet2/walletModal/index.js.map +1 -1
  184. package/dist/esm/components/wallet2/web3Status/index.d.ts +14 -2
  185. package/dist/esm/components/wallet2/web3Status/index.d.ts.map +1 -1
  186. package/dist/esm/components/wallet2/web3Status/index.js +14 -6
  187. package/dist/esm/components/wallet2/web3Status/index.js.map +1 -1
  188. package/dist/esm/hooks/connection/connection.d.ts.map +1 -1
  189. package/dist/esm/hooks/connection/connection.js +41 -12
  190. package/dist/esm/hooks/connection/connection.js.map +1 -1
  191. package/dist/esm/hooks/connection/useSyncChainQuery.js.map +1 -1
  192. package/dist/esm/hooks/index.d.ts +5 -0
  193. package/dist/esm/hooks/index.d.ts.map +1 -1
  194. package/dist/esm/hooks/index.js +5 -0
  195. package/dist/esm/hooks/index.js.map +1 -1
  196. package/dist/esm/hooks/magic.d.ts +4 -4
  197. package/dist/esm/hooks/magic.d.ts.map +1 -1
  198. package/dist/esm/hooks/magic.js +9 -6
  199. package/dist/esm/hooks/magic.js.map +1 -1
  200. package/dist/esm/hooks/useCtaClickHandler.d.ts +1 -1
  201. package/dist/esm/hooks/useCtaClickHandler.d.ts.map +1 -1
  202. package/dist/esm/hooks/useCtaClickHandler.js.map +1 -1
  203. package/dist/esm/hooks/useMetaTx.d.ts +1 -1
  204. package/dist/esm/hooks/useMetaTx.d.ts.map +1 -1
  205. package/dist/esm/hooks/useMetaTx.js.map +1 -1
  206. package/dist/esm/index.d.ts +4 -0
  207. package/dist/esm/index.d.ts.map +1 -1
  208. package/dist/esm/index.js +4 -0
  209. package/dist/esm/index.js.map +1 -1
  210. package/dist/esm/lib/signer/externalSigner.d.ts.map +1 -1
  211. package/dist/esm/lib/signer/externalSigner.js +7 -0
  212. package/dist/esm/lib/signer/externalSigner.js.map +1 -1
  213. package/package.json +5 -5
  214. package/src/components/config/ConfigContext.ts +2 -1
  215. package/src/components/config/ConfigProvider.tsx +5 -2
  216. package/src/components/connection/utils.ts +0 -1
  217. package/src/components/currencyDisplay/CurrencyDisplay.tsx +21 -18
  218. package/src/components/exchangeCard/ExchangeCard.tsx +1 -1
  219. package/src/components/image/Image.styles.ts +0 -2
  220. package/src/components/magicLink/MagicProvider.tsx +1 -1
  221. package/src/components/magicLink/UserContext.tsx +10 -3
  222. package/src/components/modal/components/Redeem/MyItems/Exchange.tsx +1 -1
  223. package/src/components/productCard/ProductCard.styles.ts +57 -26
  224. package/src/components/productCard/ProductCard.tsx +54 -56
  225. package/src/components/productCard/commonStyles.ts +0 -1
  226. package/src/components/queryClient/withQueryClientProvider.tsx +1 -26
  227. package/src/components/skeleton/CollectionsCardSkeleton.tsx +63 -39
  228. package/src/components/skeleton/ProductCardSkeleton.tsx +24 -37
  229. package/src/components/wallet/ConnectButton.tsx +12 -9
  230. package/src/components/wallet2/accountDrawer/AuthenticatedHeader.tsx +5 -6
  231. package/src/components/wallet2/accountDrawer/miniPortfolio/index.tsx +8 -4
  232. package/src/components/wallet2/accountDrawer/miniPortfolio/tokens/index.tsx +8 -2
  233. package/src/components/wallet2/selector/ChainSelector.tsx +25 -13
  234. package/src/components/wallet2/walletModal/ConnectionErrorView.tsx +21 -6
  235. package/src/components/wallet2/walletModal/Option.tsx +9 -2
  236. package/src/components/wallet2/walletModal/index.tsx +17 -6
  237. package/src/components/wallet2/web3Status/index.tsx +43 -15
  238. package/src/hooks/connection/connection.ts +42 -12
  239. package/src/hooks/connection/useSyncChainQuery.ts +1 -1
  240. package/src/hooks/index.ts +10 -0
  241. package/src/hooks/magic.ts +9 -6
  242. package/src/hooks/useCtaClickHandler.ts +4 -1
  243. package/src/hooks/useMetaTx.ts +3 -1
  244. package/src/index.tsx +4 -0
  245. package/src/lib/signer/externalSigner.ts +7 -0
  246. package/src/stories/ConnectWallet.stories.tsx +63 -6
  247. package/src/stories/ProductCard.stories.tsx +1 -7
  248. package/src/stories/buttons/Upload.stories.tsx +1 -3
  249. package/src/stories/widgets/Commit.stories.tsx +2 -1
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import styled, { css } from "styled-components";
2
+ import styled, { css, CSSProperties } from "styled-components";
3
3
 
4
4
  import {
5
5
  Bitcoin,
@@ -24,10 +24,14 @@ export enum Currencies {
24
24
  USDC = "USDC",
25
25
  WETH = "WETH"
26
26
  }
27
+
27
28
  interface CurrencyDisplayProps {
28
- value?: number | string;
29
+ value?: string;
29
30
  currency: Currencies;
30
31
  height?: number;
32
+ fontSize?: number | string;
33
+ iconSize?: number;
34
+ gap?: number | string;
31
35
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
36
  [x: string]: any;
33
37
  }
@@ -36,6 +40,9 @@ export const CurrencyDisplay = ({
36
40
  value,
37
41
  currency,
38
42
  height = 25,
43
+ fontSize,
44
+ iconSize,
45
+ gap,
39
46
  ...rest
40
47
  }: CurrencyDisplayProps) => {
41
48
  return (
@@ -43,9 +50,11 @@ export const CurrencyDisplay = ({
43
50
  style={{ height: `${height}px`, width: "100%" }}
44
51
  {...rest}
45
52
  >
46
- <CurrencyLogo currency={currency} size={height} />
53
+ <CurrencyLogo currency={currency} size={iconSize || height} />
47
54
  {value && (
48
- <CurrencyDisplayValue $height={height}>{value}</CurrencyDisplayValue>
55
+ <CurrencyDisplayValue $height={height} $fontSize={fontSize} $gap={gap}>
56
+ {value}
57
+ </CurrencyDisplayValue>
49
58
  )}
50
59
  </CurrencyDisplayValueWrapper>
51
60
  );
@@ -57,17 +66,20 @@ const CurrencyDisplayValueWrapper = styled.div`
57
66
  align-items: center;
58
67
  `;
59
68
 
60
- const CurrencyDisplayValue = styled.span<{ $height: number }>`
61
- ${({ $height }) => css`
69
+ const CurrencyDisplayValue = styled.span<{
70
+ $height: CSSProperties["height"];
71
+ $fontSize?: CSSProperties["fontSize"];
72
+ $gap?: CSSProperties["gap"];
73
+ }>`
74
+ ${({ $height, $fontSize, $gap }) => css`
62
75
  line-height: ${$height}px;
63
- font-size: ${($height - 5) / 16}rem;
76
+ font-size: ${$fontSize ? $fontSize : `${(Number($height) - 5) / 16}rem`};
77
+ padding-left: ${$gap !== undefined ? $gap : "1rem"};
64
78
  `}
65
-
66
79
  color: #09182c;
67
80
  display: flex;
68
81
  text-align: right;
69
82
  align-items: center;
70
- padding-left: 1rem;
71
83
  `;
72
84
 
73
85
  export const CurrencyLogo = ({
@@ -80,31 +92,22 @@ export const CurrencyLogo = ({
80
92
  switch (currency) {
81
93
  case Currencies.ETH:
82
94
  return <Ether size={size} />;
83
-
84
95
  case Currencies.BTC:
85
96
  return <Bitcoin size={size} />;
86
-
87
97
  case Currencies.POLYGON:
88
98
  return <Polygon size={size} />;
89
-
90
99
  case Currencies.SOLANA:
91
100
  return <Solana size={size} />;
92
-
93
101
  case Currencies.TETHER:
94
102
  return <Tether size={size} />;
95
-
96
103
  case Currencies.DAI:
97
104
  return <Dai size={size} />;
98
-
99
105
  case Currencies.WETH:
100
106
  return <Weth size={size} />;
101
-
102
107
  case Currencies.BOSON:
103
108
  return <Boson size={size} />;
104
-
105
109
  case Currencies.USDC:
106
110
  return <Usdc size={size} />;
107
-
108
111
  default:
109
112
  return <div>{currency}</div>;
110
113
  }
@@ -34,7 +34,7 @@ export type { ExchangeCardStatus } from "./types";
34
34
  interface Base {
35
35
  id: string;
36
36
  title: string;
37
- price: number;
37
+ price: string;
38
38
  currency: Currencies;
39
39
  avatar: string;
40
40
  avatarName: JSX.Element | string;
@@ -15,8 +15,6 @@ export const ImageContainer = styled.img`
15
15
  width: 100%;
16
16
  height: 100%;
17
17
  object-fit: contain;
18
- object-position: top;
19
- padding: 1rem;
20
18
  `;
21
19
 
22
20
  const buttonText = css`
@@ -13,7 +13,7 @@ export const MagicProvider = ({ children }: { children: ReactNode }) => {
13
13
  return (
14
14
  <InnerMagicProvider
15
15
  chainId={chainId}
16
- magicLinkKey={magicLinkKey}
16
+ magicLinkKey={magicLinkKey ?? ""}
17
17
  rpcUrls={CONFIG.rpcUrls}
18
18
  >
19
19
  {children}
@@ -1,14 +1,21 @@
1
1
  import React, { useContext } from "react";
2
+ import { useConfigContext } from "../config/ConfigContext";
2
3
 
3
4
  export const UserContext = React.createContext<{
4
5
  user: string | undefined;
5
6
  setUser: React.Dispatch<React.SetStateAction<string | undefined>>;
6
7
  } | null>(null);
7
-
8
+ const emptyUserContext = {
9
+ user: "",
10
+ setUser: () => {
11
+ //
12
+ }
13
+ };
8
14
  export const useUser = () => {
15
+ const { withMagicLink } = useConfigContext();
9
16
  const value = useContext(UserContext);
10
- if (!value) {
17
+ if (!value && withMagicLink) {
11
18
  throw new Error(`useUser must be used under a UserProvider`);
12
19
  }
13
- return value;
20
+ return value || emptyUserContext;
14
21
  };
@@ -173,7 +173,7 @@ export default function Exchange({
173
173
  }
174
174
  }}
175
175
  onAvatarNameClick={handleOnAvatarClick}
176
- price={Number(price)}
176
+ price={price}
177
177
  currency={offer.exchangeToken.symbol as Currencies}
178
178
  {...createSpecificCardConfig()}
179
179
  />
@@ -1,13 +1,14 @@
1
1
  import styled, { css } from "styled-components";
2
2
  import { theme } from "../../theme";
3
3
  import { cardWrapperStyles } from "./commonStyles";
4
+ import { Typography } from "../ui/Typography";
5
+ import { zIndex } from "../ui/zIndex";
4
6
 
5
7
  export const ProductCardLabelWrapper = styled.div`
6
8
  position: absolute;
7
9
  top: 0.5rem;
8
10
  left: 0.5rem;
9
11
  background: white;
10
- padding: 0.25rem 0.5rem 0.25rem 0.5rem;
11
12
  font-weight: 600;
12
13
  color: ${({ theme }) => theme?.colors?.light.darkGrey};
13
14
  z-index: 1;
@@ -73,29 +74,34 @@ export const ProductCardCreatorAvatar = styled.div`
73
74
 
74
75
  export const ProductCardCreatorName = styled.div`
75
76
  font-weight: 600;
76
- font-size: 0.75rem;
77
+ font-size: 0.625rem;
77
78
  line-height: 150%;
78
- min-height: 3em;
79
- color: ${({ theme }) => theme?.colors?.light.accent};
79
+ color: ${({ theme }) => theme?.colors?.light.darkGrey};
80
80
  flex: none;
81
81
  order: 1;
82
82
  flex-grow: 0;
83
- justify-self: flex-end;
84
- margin-bottom: 0.25rem;
83
+ justify-self: flex-start;
84
+ margin-right: auto;
85
+ > span {
86
+ font-weight: 600;
87
+ font-size: 0.625rem;
88
+ color: ${({ theme }) => theme?.colors?.light.darkGrey};
89
+ }
85
90
  `;
86
91
 
87
- export const ProductCardTitle = styled.div.attrs({ className: "title" })`
88
- font-weight: 600;
89
- font-size: 1.25rem;
92
+ export const ProductCardTitle = styled(Typography).attrs({
93
+ className: "title"
94
+ })`
90
95
  color: ${({ theme }) => theme?.colors?.light.black};
91
96
  word-break: break-word;
92
97
  overflow: hidden;
93
- text-overflow: ellipsis;
94
98
  display: -webkit-box;
95
99
  -webkit-box-orient: vertical;
96
100
  -webkit-line-clamp: 2;
97
101
  line-height: 1.5em;
98
102
  max-height: calc(1.5em * 2);
103
+ white-space: nowrap;
104
+ text-overflow: ellipsis;
99
105
  `;
100
106
 
101
107
  export const ProductCardPriceWrapper = styled.div`
@@ -117,37 +123,34 @@ export const ProductCardPrice = styled.div`
117
123
  color: ${({ theme }) => theme?.colors?.light.darkGrey};
118
124
  `;
119
125
 
120
- export const ProductCardData = styled.div`
121
- display: flex;
122
- flex-direction: column;
123
- `;
124
-
125
126
  export const ProductCardBottom = styled.div.attrs({ className: "bottom" })`
126
127
  width: 100%;
127
- background: ${theme?.colors?.light.white};
128
128
  height: 12rem;
129
129
  display: flex;
130
130
  flex-direction: column;
131
- justify-content: space-between;
131
+ justify-content: flex-end;
132
+ z-index: ${zIndex.ChatSeparator};
133
+ flex: 0;
132
134
  `;
133
135
  export const ProductCardBottomContent = styled.div`
134
136
  display: flex;
135
137
  justify-content: space-between;
138
+ flex-direction: column;
136
139
  width: 100%;
137
- padding: 1rem 1.5rem 0.5rem 1.5rem;
138
140
  box-sizing: border-box;
139
141
  align-items: flex-start;
140
142
  column-gap: 0.25rem;
141
- border-top: 2px solid ${theme.colors.light.border};
142
143
  `;
143
144
 
144
145
  export const ProductCardTitleWrapper = styled.div`
145
146
  width: 100%;
146
- padding: 0 1.5rem 0.5rem 1.5rem;
147
147
  box-sizing: border-box;
148
148
  `;
149
149
 
150
- export const ProductCardWrapper = styled.div<{ $isHoverDisabled: boolean }>`
150
+ export const ProductCardWrapper = styled.div<{
151
+ $isHoverDisabled: boolean;
152
+ $isImageFitCover?: boolean;
153
+ }>`
151
154
  ${cardWrapperStyles}
152
155
  overflow: hidden;
153
156
  position: relative;
@@ -156,6 +159,9 @@ export const ProductCardWrapper = styled.div<{ $isHoverDisabled: boolean }>`
156
159
  justify-content: space-between;
157
160
  flex-direction: column;
158
161
  cursor: pointer;
162
+ min-height: 286px;
163
+ height: 286px;
164
+ padding: 0 1rem 1rem 1rem;
159
165
  [data-image-wrapper] {
160
166
  position: static;
161
167
  padding-top: 0;
@@ -163,6 +169,15 @@ export const ProductCardWrapper = styled.div<{ $isHoverDisabled: boolean }>`
163
169
  display: flex;
164
170
  justify-content: center;
165
171
  align-items: center;
172
+ ${({ $isImageFitCover }) =>
173
+ $isImageFitCover
174
+ ? css`
175
+ width: 100%;
176
+ img {
177
+ object-fit: cover;
178
+ }
179
+ `
180
+ : ""}
166
181
  }
167
182
  ${({ $isHoverDisabled }) =>
168
183
  !$isHoverDisabled
@@ -176,8 +191,10 @@ export const ProductCardWrapper = styled.div<{ $isHoverDisabled: boolean }>`
176
191
  16px 16px 16px rgba(0, 0, 0, 0.05);
177
192
 
178
193
  [data-image-wrapper] {
194
+ width: 110%;
179
195
  img {
180
- transform: scale(1.05);
196
+ transform: scale(1.5);
197
+ object-position: center;
181
198
  transition: all 300ms ease-in-out;
182
199
  }
183
200
  }
@@ -192,7 +209,7 @@ export const ProductCardTop = styled.div<{ $isNotImageLoaded: boolean }>`
192
209
  overflow: hidden;
193
210
  width: 100%;
194
211
  align-self: stretch;
195
- z-index: 0;
212
+ z-index: ${zIndex.Default};
196
213
  `;
197
214
 
198
215
  export const BottomText = styled.p`
@@ -200,14 +217,28 @@ export const BottomText = styled.p`
200
217
  font-weight: 600;
201
218
  line-height: 0.975rem;
202
219
  margin: 0;
203
- padding: 0 1.5rem 1rem 1.5rem;
204
220
  letter-spacing: 0.5px;
205
221
  color: ${theme.colors.light.darkGrey};
206
222
  `;
207
223
 
208
224
  export const ProductCardImageWrapper = styled.div`
209
225
  width: 100%;
210
- min-height: 0;
211
- height: auto;
226
+ height: 13.125rem;
227
+ display: flex;
228
+ justify-content: center;
229
+ align-items: center;
230
+ padding-top: 0.9375rem;
231
+ padding-bottom: 0.9375rem;
212
232
  flex: 1;
213
233
  `;
234
+
235
+ export const ProductCardImageAndCTAContainer = styled.div`
236
+ position: relative;
237
+ `;
238
+
239
+ export const CTAOnHoverContainer = styled.div<{ $isHovered: boolean }>`
240
+ position: absolute;
241
+ z-index: ${zIndex.OfferCard};
242
+ bottom: ${({ $isHovered }) => ($isHovered ? "95px" : "1.875rem")};
243
+ transition: all 300ms ease-in-out;
244
+ `;
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import React, { ReactNode, useState } from "react";
2
2
  import {
3
3
  Currencies,
4
4
  CurrencyDisplay
@@ -6,23 +6,20 @@ import {
6
6
  import { IBaseImage, Image } from "../image/Image";
7
7
  import { Tooltip, TooltipProps } from "../tooltip/Tooltip";
8
8
  import {
9
- BottomText,
10
9
  ProductCardBottom,
11
10
  ProductCardBottomContent,
12
- ProductCardCreator,
13
- ProductCardCreatorAvatar,
14
11
  TopLeftRibbon,
15
12
  ProductCardCreatorName,
16
- ProductCardData,
17
13
  ProductCardImageWrapper,
18
- ProductCardPrice,
19
- ProductCardPriceWrapper,
20
14
  ProductCardTitle,
21
15
  ProductCardTitleWrapper,
22
- ProductCardWrapper
16
+ ProductCardWrapper,
17
+ CTAOnHoverContainer
23
18
  } from "./ProductCard.styles";
24
19
 
25
20
  import { ProductType } from "./const";
21
+ import { Grid } from "../ui/Grid";
22
+
26
23
  interface IProductCard {
27
24
  asterisk?: boolean;
28
25
  avatar: string;
@@ -36,12 +33,15 @@ interface IProductCard {
36
33
  isHoverDisabled?: boolean;
37
34
  onAvatarNameClick?: () => void;
38
35
  onCardClick?: (id: string | number) => void;
39
- price: number;
36
+ price: string;
40
37
  productId: string;
41
38
  productType?: ProductType;
42
39
  title: string;
43
40
  tooltip?: string;
44
41
  tooltipProps?: Omit<TooltipProps, "content">;
42
+ CTAOnHover?: ReactNode;
43
+ hideCreatorName?: boolean;
44
+ isImageFitCover?: boolean;
45
45
  }
46
46
 
47
47
  const Wrapper = ({
@@ -62,85 +62,83 @@ const Wrapper = ({
62
62
  }
63
63
  return <>{children}</>;
64
64
  };
65
+
65
66
  export const PhygitalLabel = ({ ...rest }) => {
66
67
  return <TopLeftRibbon {...rest} data-text="Phygital" />;
67
68
  };
69
+
68
70
  export const ProductCard = (props: IProductCard) => {
69
71
  const {
70
- asterisk = false,
71
- avatar,
72
- onAvatarError,
73
72
  avatarName,
74
- bottomText,
75
73
  currency,
76
74
  dataCard = "product-card",
77
75
  dataTestId = "offer",
78
76
  imageProps,
79
77
  isHoverDisabled = false,
80
- onAvatarNameClick,
81
78
  onCardClick,
82
79
  price,
83
80
  productId,
84
81
  title,
85
82
  tooltip = "",
86
83
  tooltipProps = {},
87
- productType
84
+ CTAOnHover,
85
+ hideCreatorName = false,
86
+ isImageFitCover = false
88
87
  } = props;
89
- const isPhygital = productType === ProductType.phygital;
88
+
89
+ const [isHovered, setIsHovered] = useState(false);
90
+
90
91
  return (
91
92
  <ProductCardWrapper
92
93
  data-card={dataCard}
93
94
  $isHoverDisabled={isHoverDisabled}
94
95
  data-testid={dataTestId}
96
+ $isImageFitCover={isImageFitCover}
95
97
  onClick={(e) => {
96
98
  e.preventDefault();
97
99
  onCardClick?.(productId);
98
100
  }}
101
+ onMouseEnter={() => setIsHovered(true)}
102
+ onMouseLeave={() => setIsHovered(false)}
99
103
  >
100
104
  <ProductCardImageWrapper>
101
- {isPhygital && <PhygitalLabel />}
102
105
  <Image {...imageProps} />
103
106
  </ProductCardImageWrapper>
107
+ {CTAOnHover && (
108
+ <CTAOnHoverContainer $isHovered={isHovered}>
109
+ {CTAOnHover}
110
+ </CTAOnHoverContainer>
111
+ )}
104
112
  <ProductCardBottom>
105
- <div>
106
- <ProductCardBottomContent>
107
- <ProductCardData>
108
- <ProductCardCreator
109
- onClick={(e) => {
110
- e.stopPropagation();
111
- onAvatarNameClick?.();
112
- }}
113
- >
114
- <ProductCardCreatorAvatar>
115
- <img src={avatar} alt="avatar" onError={onAvatarError} />
116
- </ProductCardCreatorAvatar>
117
- <ProductCardCreatorName data-avatarname="product-card">
118
- {avatarName}
119
- </ProductCardCreatorName>
120
- </ProductCardCreator>
121
- </ProductCardData>
122
- <ProductCardPriceWrapper>
123
- <Wrapper tooltip={tooltip} tooltipProps={tooltipProps}>
124
- <>
125
- <ProductCardPrice>Price {asterisk && "*"}</ProductCardPrice>
126
- <CurrencyDisplay
127
- value={price}
128
- currency={currency}
129
- style={{
130
- wordBreak: "break-all",
131
- alignItems: "flex-start",
132
- justifyContent: "flex-end"
133
- }}
134
- />
135
- </>
136
- </Wrapper>
137
- </ProductCardPriceWrapper>
138
- </ProductCardBottomContent>
139
- <ProductCardTitleWrapper>
140
- <ProductCardTitle>{title}</ProductCardTitle>
141
- </ProductCardTitleWrapper>
142
- </div>
143
- {bottomText && <BottomText>{bottomText}</BottomText>}
113
+ <ProductCardBottomContent>
114
+ <Grid flexDirection="column">
115
+ <ProductCardTitleWrapper>
116
+ <ProductCardTitle fontSize={"0.75rem"} fontWeight={"600"}>
117
+ {title}
118
+ </ProductCardTitle>
119
+ </ProductCardTitleWrapper>
120
+ {!hideCreatorName && (
121
+ <ProductCardCreatorName data-avatarname="product-card">
122
+ {avatarName}
123
+ </ProductCardCreatorName>
124
+ )}
125
+ </Grid>
126
+ <Wrapper tooltip={tooltip} tooltipProps={tooltipProps}>
127
+ <CurrencyDisplay
128
+ value={price}
129
+ currency={currency}
130
+ fontSize={"0.875rem"}
131
+ iconSize={16}
132
+ gap={"0.3125rem"}
133
+ style={{
134
+ wordBreak: "break-all",
135
+ alignItems: "center",
136
+ justifyContent: "center",
137
+ paddingTop: "0.25rem"
138
+ }}
139
+ />
140
+ </Wrapper>
141
+ </ProductCardBottomContent>
144
142
  </ProductCardBottom>
145
143
  </ProductCardWrapper>
146
144
  );
@@ -5,7 +5,6 @@ export const cardWrapperStyles = css`
5
5
  padding: 0px;
6
6
  isolation: isolate;
7
7
  width: 100%;
8
- min-height: 31.25rem;
9
8
  box-shadow: 0px 4.31783px 107.946px rgba(21, 30, 52, 0.1);
10
9
  background: ${theme.colors.light.white};
11
10
  `;
@@ -1,30 +1,5 @@
1
- import {
2
- QueryClient,
3
- QueryClientProvider,
4
- QueryClientProviderProps
5
- } from "react-query";
6
-
7
1
  import React from "react";
8
-
9
- const queryClient = new QueryClient({
10
- defaultOptions: {
11
- queries: {
12
- refetchOnWindowFocus: false
13
- }
14
- }
15
- });
16
-
17
- type QueryClientProviderCustomProps = Partial<QueryClientProviderProps>;
18
-
19
- export const QueryClientProviderCustom: React.FC<
20
- QueryClientProviderCustomProps
21
- > = ({ ...props }) => {
22
- return (
23
- <QueryClientProvider client={queryClient} {...props}>
24
- {props.children}
25
- </QueryClientProvider>
26
- );
27
- };
2
+ import { QueryClientProviderCustom } from "./QueryClientProviderCustom";
28
3
 
29
4
  export const withQueryClientProvider = <P extends object>(
30
5
  WrappedComponent: React.ComponentType<P>