@bosonprotocol/react-kit 0.34.0-alpha.2 → 0.34.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 (199) hide show
  1. package/dist/cjs/components/connection/utils.d.ts.map +1 -1
  2. package/dist/cjs/components/connection/utils.js +0 -1
  3. package/dist/cjs/components/connection/utils.js.map +1 -1
  4. package/dist/cjs/components/currencyDisplay/CurrencyDisplay.d.ts +5 -2
  5. package/dist/cjs/components/currencyDisplay/CurrencyDisplay.d.ts.map +1 -1
  6. package/dist/cjs/components/currencyDisplay/CurrencyDisplay.js +6 -7
  7. package/dist/cjs/components/currencyDisplay/CurrencyDisplay.js.map +1 -1
  8. package/dist/cjs/components/exchangeCard/ExchangeCard.d.ts +1 -1
  9. package/dist/cjs/components/image/Image.styles.d.ts.map +1 -1
  10. package/dist/cjs/components/image/Image.styles.js +0 -2
  11. package/dist/cjs/components/image/Image.styles.js.map +1 -1
  12. package/dist/cjs/components/modal/components/Redeem/MyItems/Exchange.js +1 -1
  13. package/dist/cjs/components/modal/components/Redeem/MyItems/Exchange.js.map +1 -1
  14. package/dist/cjs/components/productCard/ProductCard.d.ts +5 -2
  15. package/dist/cjs/components/productCard/ProductCard.d.ts.map +1 -1
  16. package/dist/cjs/components/productCard/ProductCard.js +42 -34
  17. package/dist/cjs/components/productCard/ProductCard.js.map +1 -1
  18. package/dist/cjs/components/productCard/ProductCard.styles.d.ts +111 -4
  19. package/dist/cjs/components/productCard/ProductCard.styles.d.ts.map +1 -1
  20. package/dist/cjs/components/productCard/ProductCard.styles.js +51 -26
  21. package/dist/cjs/components/productCard/ProductCard.styles.js.map +1 -1
  22. package/dist/cjs/components/productCard/commonStyles.d.ts.map +1 -1
  23. package/dist/cjs/components/productCard/commonStyles.js +0 -1
  24. package/dist/cjs/components/productCard/commonStyles.js.map +1 -1
  25. package/dist/cjs/components/queryClient/withQueryClientProvider.d.ts +0 -4
  26. package/dist/cjs/components/queryClient/withQueryClientProvider.d.ts.map +1 -1
  27. package/dist/cjs/components/queryClient/withQueryClientProvider.js +3 -26
  28. package/dist/cjs/components/queryClient/withQueryClientProvider.js.map +1 -1
  29. package/dist/cjs/components/skeleton/CollectionsCardSkeleton.d.ts.map +1 -1
  30. package/dist/cjs/components/skeleton/CollectionsCardSkeleton.js +39 -17
  31. package/dist/cjs/components/skeleton/CollectionsCardSkeleton.js.map +1 -1
  32. package/dist/cjs/components/skeleton/ProductCardSkeleton.d.ts.map +1 -1
  33. package/dist/cjs/components/skeleton/ProductCardSkeleton.js +18 -19
  34. package/dist/cjs/components/skeleton/ProductCardSkeleton.js.map +1 -1
  35. package/dist/cjs/components/wallet/wallet-connection.d.ts +9559 -9559
  36. package/dist/cjs/components/wallet2/accountDrawer/AuthenticatedHeader.d.ts +3 -3
  37. package/dist/cjs/components/wallet2/accountDrawer/AuthenticatedHeader.d.ts.map +1 -1
  38. package/dist/cjs/components/wallet2/accountDrawer/AuthenticatedHeader.js +2 -2
  39. package/dist/cjs/components/wallet2/accountDrawer/AuthenticatedHeader.js.map +1 -1
  40. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/index.d.ts +3 -3
  41. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/index.d.ts.map +1 -1
  42. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/index.js +2 -2
  43. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/index.js.map +1 -1
  44. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/tokens/index.d.ts +5 -2
  45. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/tokens/index.d.ts.map +1 -1
  46. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/tokens/index.js +3 -2
  47. package/dist/cjs/components/wallet2/accountDrawer/miniPortfolio/tokens/index.js.map +1 -1
  48. package/dist/cjs/components/wallet2/selector/ChainSelector.d.ts +4 -1
  49. package/dist/cjs/components/wallet2/selector/ChainSelector.d.ts.map +1 -1
  50. package/dist/cjs/components/wallet2/selector/ChainSelector.js +2 -4
  51. package/dist/cjs/components/wallet2/selector/ChainSelector.js.map +1 -1
  52. package/dist/cjs/components/wallet2/walletModal/ConnectionErrorView.d.ts +6 -1
  53. package/dist/cjs/components/wallet2/walletModal/ConnectionErrorView.d.ts.map +1 -1
  54. package/dist/cjs/components/wallet2/walletModal/ConnectionErrorView.js +7 -5
  55. package/dist/cjs/components/wallet2/walletModal/ConnectionErrorView.js.map +1 -1
  56. package/dist/cjs/components/wallet2/walletModal/Option.d.ts +5 -1
  57. package/dist/cjs/components/wallet2/walletModal/Option.d.ts.map +1 -1
  58. package/dist/cjs/components/wallet2/walletModal/Option.js +5 -2
  59. package/dist/cjs/components/wallet2/walletModal/Option.js.map +1 -1
  60. package/dist/cjs/components/wallet2/walletModal/index.d.ts +5 -2
  61. package/dist/cjs/components/wallet2/walletModal/index.d.ts.map +1 -1
  62. package/dist/cjs/components/wallet2/walletModal/index.js +3 -3
  63. package/dist/cjs/components/wallet2/walletModal/index.js.map +1 -1
  64. package/dist/cjs/components/wallet2/web3Status/index.d.ts +14 -2
  65. package/dist/cjs/components/wallet2/web3Status/index.d.ts.map +1 -1
  66. package/dist/cjs/components/wallet2/web3Status/index.js +13 -5
  67. package/dist/cjs/components/wallet2/web3Status/index.js.map +1 -1
  68. package/dist/cjs/hooks/connection/useSyncChainQuery.js.map +1 -1
  69. package/dist/cjs/hooks/index.d.ts +5 -0
  70. package/dist/cjs/hooks/index.d.ts.map +1 -1
  71. package/dist/cjs/hooks/index.js +11 -1
  72. package/dist/cjs/hooks/index.js.map +1 -1
  73. package/dist/cjs/hooks/useCtaClickHandler.d.ts +1 -1
  74. package/dist/cjs/hooks/useCtaClickHandler.d.ts.map +1 -1
  75. package/dist/cjs/hooks/useCtaClickHandler.js.map +1 -1
  76. package/dist/cjs/hooks/useMetaTx.d.ts +1 -1
  77. package/dist/cjs/hooks/useMetaTx.d.ts.map +1 -1
  78. package/dist/cjs/hooks/useMetaTx.js.map +1 -1
  79. package/dist/cjs/index.d.ts +4 -0
  80. package/dist/cjs/index.d.ts.map +1 -1
  81. package/dist/cjs/index.js +4 -0
  82. package/dist/cjs/index.js.map +1 -1
  83. package/dist/cjs/lib/signer/externalSigner.d.ts.map +1 -1
  84. package/dist/cjs/lib/signer/externalSigner.js +7 -0
  85. package/dist/cjs/lib/signer/externalSigner.js.map +1 -1
  86. package/dist/esm/components/connection/utils.d.ts.map +1 -1
  87. package/dist/esm/components/connection/utils.js +0 -1
  88. package/dist/esm/components/connection/utils.js.map +1 -1
  89. package/dist/esm/components/currencyDisplay/CurrencyDisplay.d.ts +5 -2
  90. package/dist/esm/components/currencyDisplay/CurrencyDisplay.d.ts.map +1 -1
  91. package/dist/esm/components/currencyDisplay/CurrencyDisplay.js +6 -7
  92. package/dist/esm/components/currencyDisplay/CurrencyDisplay.js.map +1 -1
  93. package/dist/esm/components/exchangeCard/ExchangeCard.d.ts +1 -1
  94. package/dist/esm/components/image/Image.styles.d.ts.map +1 -1
  95. package/dist/esm/components/image/Image.styles.js +0 -2
  96. package/dist/esm/components/image/Image.styles.js.map +1 -1
  97. package/dist/esm/components/modal/components/Redeem/MyItems/Exchange.js +1 -1
  98. package/dist/esm/components/modal/components/Redeem/MyItems/Exchange.js.map +1 -1
  99. package/dist/esm/components/productCard/ProductCard.d.ts +5 -2
  100. package/dist/esm/components/productCard/ProductCard.d.ts.map +1 -1
  101. package/dist/esm/components/productCard/ProductCard.js +20 -32
  102. package/dist/esm/components/productCard/ProductCard.js.map +1 -1
  103. package/dist/esm/components/productCard/ProductCard.styles.d.ts +111 -4
  104. package/dist/esm/components/productCard/ProductCard.styles.d.ts.map +1 -1
  105. package/dist/esm/components/productCard/ProductCard.styles.js +50 -24
  106. package/dist/esm/components/productCard/ProductCard.styles.js.map +1 -1
  107. package/dist/esm/components/productCard/commonStyles.d.ts.map +1 -1
  108. package/dist/esm/components/productCard/commonStyles.js +0 -1
  109. package/dist/esm/components/productCard/commonStyles.js.map +1 -1
  110. package/dist/esm/components/queryClient/withQueryClientProvider.d.ts +0 -4
  111. package/dist/esm/components/queryClient/withQueryClientProvider.d.ts.map +1 -1
  112. package/dist/esm/components/queryClient/withQueryClientProvider.js +1 -11
  113. package/dist/esm/components/queryClient/withQueryClientProvider.js.map +1 -1
  114. package/dist/esm/components/skeleton/CollectionsCardSkeleton.d.ts.map +1 -1
  115. package/dist/esm/components/skeleton/CollectionsCardSkeleton.js +39 -17
  116. package/dist/esm/components/skeleton/CollectionsCardSkeleton.js.map +1 -1
  117. package/dist/esm/components/skeleton/ProductCardSkeleton.d.ts.map +1 -1
  118. package/dist/esm/components/skeleton/ProductCardSkeleton.js +19 -20
  119. package/dist/esm/components/skeleton/ProductCardSkeleton.js.map +1 -1
  120. package/dist/esm/components/wallet/wallet-connection.d.ts +9559 -9559
  121. package/dist/esm/components/wallet2/accountDrawer/AuthenticatedHeader.d.ts +3 -3
  122. package/dist/esm/components/wallet2/accountDrawer/AuthenticatedHeader.d.ts.map +1 -1
  123. package/dist/esm/components/wallet2/accountDrawer/AuthenticatedHeader.js +2 -2
  124. package/dist/esm/components/wallet2/accountDrawer/AuthenticatedHeader.js.map +1 -1
  125. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/index.d.ts +3 -3
  126. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/index.d.ts.map +1 -1
  127. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/index.js +2 -2
  128. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/index.js.map +1 -1
  129. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/tokens/index.d.ts +5 -2
  130. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/tokens/index.d.ts.map +1 -1
  131. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/tokens/index.js +3 -2
  132. package/dist/esm/components/wallet2/accountDrawer/miniPortfolio/tokens/index.js.map +1 -1
  133. package/dist/esm/components/wallet2/selector/ChainSelector.d.ts +4 -1
  134. package/dist/esm/components/wallet2/selector/ChainSelector.d.ts.map +1 -1
  135. package/dist/esm/components/wallet2/selector/ChainSelector.js +3 -5
  136. package/dist/esm/components/wallet2/selector/ChainSelector.js.map +1 -1
  137. package/dist/esm/components/wallet2/walletModal/ConnectionErrorView.d.ts +6 -1
  138. package/dist/esm/components/wallet2/walletModal/ConnectionErrorView.d.ts.map +1 -1
  139. package/dist/esm/components/wallet2/walletModal/ConnectionErrorView.js +7 -5
  140. package/dist/esm/components/wallet2/walletModal/ConnectionErrorView.js.map +1 -1
  141. package/dist/esm/components/wallet2/walletModal/Option.d.ts +5 -1
  142. package/dist/esm/components/wallet2/walletModal/Option.d.ts.map +1 -1
  143. package/dist/esm/components/wallet2/walletModal/Option.js +5 -2
  144. package/dist/esm/components/wallet2/walletModal/Option.js.map +1 -1
  145. package/dist/esm/components/wallet2/walletModal/index.d.ts +5 -2
  146. package/dist/esm/components/wallet2/walletModal/index.d.ts.map +1 -1
  147. package/dist/esm/components/wallet2/walletModal/index.js +3 -3
  148. package/dist/esm/components/wallet2/walletModal/index.js.map +1 -1
  149. package/dist/esm/components/wallet2/web3Status/index.d.ts +14 -2
  150. package/dist/esm/components/wallet2/web3Status/index.d.ts.map +1 -1
  151. package/dist/esm/components/wallet2/web3Status/index.js +14 -6
  152. package/dist/esm/components/wallet2/web3Status/index.js.map +1 -1
  153. package/dist/esm/hooks/connection/useSyncChainQuery.js.map +1 -1
  154. package/dist/esm/hooks/index.d.ts +5 -0
  155. package/dist/esm/hooks/index.d.ts.map +1 -1
  156. package/dist/esm/hooks/index.js +5 -0
  157. package/dist/esm/hooks/index.js.map +1 -1
  158. package/dist/esm/hooks/useCtaClickHandler.d.ts +1 -1
  159. package/dist/esm/hooks/useCtaClickHandler.d.ts.map +1 -1
  160. package/dist/esm/hooks/useCtaClickHandler.js.map +1 -1
  161. package/dist/esm/hooks/useMetaTx.d.ts +1 -1
  162. package/dist/esm/hooks/useMetaTx.d.ts.map +1 -1
  163. package/dist/esm/hooks/useMetaTx.js.map +1 -1
  164. package/dist/esm/index.d.ts +4 -0
  165. package/dist/esm/index.d.ts.map +1 -1
  166. package/dist/esm/index.js +4 -0
  167. package/dist/esm/index.js.map +1 -1
  168. package/dist/esm/lib/signer/externalSigner.d.ts.map +1 -1
  169. package/dist/esm/lib/signer/externalSigner.js +7 -0
  170. package/dist/esm/lib/signer/externalSigner.js.map +1 -1
  171. package/package.json +5 -5
  172. package/src/components/connection/utils.ts +0 -1
  173. package/src/components/currencyDisplay/CurrencyDisplay.tsx +21 -18
  174. package/src/components/exchangeCard/ExchangeCard.tsx +1 -1
  175. package/src/components/image/Image.styles.ts +0 -2
  176. package/src/components/modal/components/Redeem/MyItems/Exchange.tsx +1 -1
  177. package/src/components/productCard/ProductCard.styles.ts +57 -26
  178. package/src/components/productCard/ProductCard.tsx +54 -56
  179. package/src/components/productCard/commonStyles.ts +0 -1
  180. package/src/components/queryClient/withQueryClientProvider.tsx +1 -26
  181. package/src/components/skeleton/CollectionsCardSkeleton.tsx +63 -39
  182. package/src/components/skeleton/ProductCardSkeleton.tsx +24 -37
  183. package/src/components/wallet2/accountDrawer/AuthenticatedHeader.tsx +5 -6
  184. package/src/components/wallet2/accountDrawer/miniPortfolio/index.tsx +8 -4
  185. package/src/components/wallet2/accountDrawer/miniPortfolio/tokens/index.tsx +8 -2
  186. package/src/components/wallet2/selector/ChainSelector.tsx +25 -13
  187. package/src/components/wallet2/walletModal/ConnectionErrorView.tsx +21 -6
  188. package/src/components/wallet2/walletModal/Option.tsx +9 -2
  189. package/src/components/wallet2/walletModal/index.tsx +11 -4
  190. package/src/components/wallet2/web3Status/index.tsx +43 -15
  191. package/src/hooks/connection/useSyncChainQuery.ts +1 -1
  192. package/src/hooks/index.ts +10 -0
  193. package/src/hooks/useCtaClickHandler.ts +4 -1
  194. package/src/hooks/useMetaTx.ts +3 -1
  195. package/src/index.tsx +4 -0
  196. package/src/lib/signer/externalSigner.ts +7 -0
  197. package/src/stories/ConnectWallet.stories.tsx +63 -6
  198. package/src/stories/ProductCard.stories.tsx +1 -7
  199. package/src/stories/buttons/Upload.stories.tsx +1 -3
@@ -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>
@@ -3,27 +3,45 @@ import styled from "styled-components";
3
3
  import { theme } from "../../theme";
4
4
  import { cardWrapperStyles } from "../productCard/commonStyles";
5
5
  import { LoadingBubble } from "./common";
6
-
6
+ import { Grid } from "../ui/Grid";
7
+ const colors = theme.colors.light;
7
8
  const Container = styled.div`
8
- display: grid;
9
- grid-template-columns: 1fr;
10
- grid-template-rows: repeat(2, min-content);
9
+ display: flex;
10
+ flex-direction: column;
11
11
  ${cardWrapperStyles}
12
+ /* REMs gives bad height here on smaller views */
13
+ height: 279px;
14
+ min-width: 265px;
12
15
  `;
13
16
 
14
17
  const ImagesContainer = styled.div`
15
18
  width: 100%;
16
- display: grid;
17
- grid-template-columns: repeat(2, 1fr);
18
- grid-template-rows: repeat(2, 1fr);
19
- grid-column-gap: 1px;
20
- grid-row-gap: 1px;
19
+ position: relative;
20
+ /* REMs gives bad height here on smaller views */
21
+ height: 208px;
22
+ background-color: ${colors.lightGrey};
21
23
  `;
22
24
 
23
25
  const BottomCard = styled.div`
24
- padding: 1rem 1.5rem 1rem 1.5rem;
26
+ padding: 1rem 1.5rem 1rem 0.3125rem;
25
27
  `;
26
28
 
29
+ const ImageOne = styled.div`
30
+ position: absolute;
31
+ top: 50%;
32
+ left: 10%;
33
+ transform: translateY(-50%);
34
+ `;
35
+ const ImageTwo = styled.div`
36
+ position: absolute;
37
+ right: 10%;
38
+ top: 5%;
39
+ `;
40
+ const ImageThree = styled.div`
41
+ position: absolute;
42
+ right: 10%;
43
+ bottom: 5%;
44
+ `;
27
45
  type SkeletonCardProps = ButtonHTMLAttributes<HTMLDivElement> & {
28
46
  withBottomText?: boolean;
29
47
  };
@@ -31,36 +49,42 @@ export const CollectionsCardSkeleton = (props: SkeletonCardProps) => {
31
49
  return (
32
50
  <Container>
33
51
  <ImagesContainer>
34
- <LoadingBubble
35
- $width="100%"
36
- $height="170px"
37
- $borderRadius="0px"
38
- $backgroundColor={theme.colors.light.darkGrey}
39
- />
40
- <LoadingBubble
41
- $width="100%"
42
- $height="170px"
43
- $borderRadius="0px"
44
- $backgroundColor={theme.colors.light.darkGrey}
45
- />
46
- <LoadingBubble
47
- $width="100%"
48
- $height="170px"
49
- $borderRadius="0px"
50
- $backgroundColor={theme.colors.light.darkGrey}
51
- />
52
- <LoadingBubble
53
- $width="100%"
54
- $height="170px"
55
- $borderRadius="0px"
56
- $backgroundColor={theme.colors.light.darkGrey}
57
- />
52
+ <ImageOne>
53
+ <LoadingBubble
54
+ $width="140px"
55
+ $height="102px"
56
+ $borderRadius="0px"
57
+ $backgroundColor={theme.colors.light.darkGrey}
58
+ />
59
+ </ImageOne>
60
+ <ImageTwo>
61
+ <LoadingBubble
62
+ $width="60px"
63
+ $height="50px"
64
+ $borderRadius="0px"
65
+ $backgroundColor={theme.colors.light.darkGrey}
66
+ />
67
+ </ImageTwo>
68
+ <ImageThree>
69
+ <LoadingBubble
70
+ $width="60px"
71
+ $height="50px"
72
+ $borderRadius="0px"
73
+ $backgroundColor={theme.colors.light.darkGrey}
74
+ />
75
+ </ImageThree>
58
76
  </ImagesContainer>
59
- <BottomCard>
60
- <LoadingBubble $width="50%" $height="26px" $margin="0 0 8.75px 0" />
61
- <LoadingBubble $width="52px" $height="18px" $margin="0 0 4.375px 0" />
62
- <LoadingBubble $width="30px" $height="30px" />
63
- </BottomCard>
77
+ <Grid
78
+ justifyContent="flex-start"
79
+ align-items="center"
80
+ marginLeft={"1.5rem"}
81
+ >
82
+ <LoadingBubble $width="43px" $height="43px" $borderRadius={"100%"} />
83
+ <BottomCard>
84
+ <LoadingBubble $width="52px" $height="18px" $margin="0 0 4.375px 0" />
85
+ <LoadingBubble $width="30px" $height="25px" />
86
+ </BottomCard>
87
+ </Grid>
64
88
  </Container>
65
89
  );
66
90
  };
@@ -2,72 +2,59 @@ import React, { ButtonHTMLAttributes } from "react";
2
2
  import {
3
3
  BottomText,
4
4
  ProductCardBottom,
5
- ProductCardBottomContent,
6
- ProductCardCreator,
7
- ProductCardCreatorAvatar,
8
- ProductCardCreatorName,
9
- ProductCardData,
10
5
  ProductCardImageWrapper,
11
- ProductCardPrice,
12
- ProductCardPriceWrapper,
13
6
  ProductCardTitle,
14
7
  ProductCardTitleWrapper,
15
8
  ProductCardWrapper
16
9
  } from "../productCard/ProductCard.styles";
17
- import { Grid } from "../ui/Grid";
18
10
  import { theme } from "../../theme";
19
11
  import { LoadingBubble } from "./common";
12
+ import styled from "styled-components";
20
13
 
21
14
  type SkeletonCardProps = ButtonHTMLAttributes<HTMLDivElement> & {
22
15
  withBottomText?: boolean;
23
16
  };
17
+
18
+ const ProductCardImageWrapperStyled = styled(ProductCardImageWrapper)`
19
+ overflow: hidden;
20
+ width: 100%;
21
+ /* REMs gives bad height here on smaller views */
22
+ max-height: 210px;
23
+ min-height: 11.25rem;
24
+ `;
25
+
26
+ const ProductCardTitleWrapperStyled = styled(ProductCardTitleWrapper)`
27
+ margin-bottom: 5px;
28
+ `;
24
29
  export const ProductCardSkeleton = (props: SkeletonCardProps) => {
25
30
  const { withBottomText } = props;
26
31
 
27
32
  return (
28
33
  <ProductCardWrapper {...props} $isHoverDisabled={true}>
29
- <ProductCardImageWrapper>
34
+ <ProductCardImageWrapperStyled>
30
35
  <LoadingBubble
31
36
  $width="100%"
32
37
  $height="340px"
33
38
  $borderRadius="0px"
34
39
  $backgroundColor={theme.colors.light.darkGrey}
35
40
  />
36
- </ProductCardImageWrapper>
41
+ </ProductCardImageWrapperStyled>
37
42
  <ProductCardBottom>
38
43
  <div>
39
- <ProductCardBottomContent>
40
- <ProductCardData>
41
- <ProductCardCreator>
42
- <ProductCardCreatorAvatar>
43
- <LoadingBubble $width="16px" $height="16px" />
44
- </ProductCardCreatorAvatar>
45
- <ProductCardCreatorName data-avatarname="product-card">
46
- <LoadingBubble $width="50px" $height="12.5px" />
47
- </ProductCardCreatorName>
48
- </ProductCardCreator>
49
- </ProductCardData>
50
- <ProductCardPriceWrapper>
51
- <ProductCardPrice>
52
- <Grid justifyContent="flex-end">
53
- <LoadingBubble $width="30px" $height="10px" />
54
- </Grid>
55
- </ProductCardPrice>
56
- <Grid justifyContent="flex-end" gap="8px">
57
- <LoadingBubble $width="24px" $height="24px" />
58
- <LoadingBubble $width="calc(100% - 24px - 8px)" />
59
- </Grid>
60
- </ProductCardPriceWrapper>
61
- </ProductCardBottomContent>
62
- <ProductCardTitleWrapper>
44
+ <ProductCardTitleWrapperStyled>
45
+ <ProductCardTitle>
46
+ <LoadingBubble $width="50%" $height="12px" />
47
+ </ProductCardTitle>
48
+ </ProductCardTitleWrapperStyled>
49
+ <ProductCardTitleWrapperStyled>
63
50
  <ProductCardTitle>
64
- <LoadingBubble $width="100%" $height="30px" />
51
+ <LoadingBubble $width="20%" $height="8px" />
65
52
  </ProductCardTitle>
66
- </ProductCardTitleWrapper>
53
+ </ProductCardTitleWrapperStyled>
67
54
  </div>
68
55
  {withBottomText && (
69
56
  <BottomText>
70
- <LoadingBubble $width="100%" $height="15.5px" />
57
+ <LoadingBubble $width="15%" $height="13px" />
71
58
  </BottomText>
72
59
  )}
73
60
  </ProductCardBottom>
@@ -9,13 +9,12 @@ import {
9
9
  } from "phosphor-react";
10
10
  import React, { useCallback, useState } from "react";
11
11
  import styled, { CSSProperties } from "styled-components";
12
-
13
12
  import { Typography } from "../../ui/Typography";
14
13
  import StatusIcon from "../identicon/StatusIcon";
15
14
  import { FiatLink, useFiatLinkContext } from "./fiatOnrampModal/FiatLink";
16
15
  // import FiatOnrampModal from "./fiatOnrampModal";
17
16
  import { IconWithConfirmTextButton } from "./IconButton";
18
- import MiniPortfolio from "./miniPortfolio";
17
+ import MiniPortfolio, { MiniPortfolioProps } from "./miniPortfolio";
19
18
  import { Column } from "../../ui/column";
20
19
  import { theme } from "../../../theme";
21
20
  import { useENSName } from "../../../hooks/ens/useENSName";
@@ -131,8 +130,7 @@ export function PortfolioArrow({
131
130
  <ArrowUpRight size={20} {...rest} />
132
131
  );
133
132
  }
134
- export type AuthenticatedHeaderProps = {
135
- account: string;
133
+ export type AuthenticatedHeaderProps = MiniPortfolioProps & {
136
134
  onUserDisconnect?: () => unknown;
137
135
  disconnectColor: CSSProperties["color"];
138
136
  disconnectBackgroundColor: CSSProperties["backgroundColor"];
@@ -145,7 +143,8 @@ export function AuthenticatedHeader({
145
143
  disconnectColor,
146
144
  disconnectBackgroundColor,
147
145
  disconnectBorderRadius,
148
- buyCryptoTheme
146
+ buyCryptoTheme,
147
+ defaultTokens
149
148
  }: AuthenticatedHeaderProps) {
150
149
  const { connector } = useWeb3React();
151
150
  const { ENSName } = useENSName(account);
@@ -292,7 +291,7 @@ export function AuthenticatedHeader({
292
291
  </Tooltip>
293
292
  </FiatOnrampNotAvailableText>
294
293
  )}
295
- <MiniPortfolio account={account} />
294
+ <MiniPortfolio account={account} defaultTokens={defaultTokens} />
296
295
  </PortfolioDrawerContainer>
297
296
  </AuthenticatedHeaderWrapper>
298
297
  );
@@ -3,7 +3,7 @@ import styled from "styled-components";
3
3
 
4
4
  import { Grid } from "../../../ui/Grid";
5
5
  import { Typography } from "../../../ui/Typography";
6
- import Tokens from "./tokens";
6
+ import Tokens, { TokensProps } from "./tokens";
7
7
  import { breakpointNumbers } from "../../../../lib/ui/breakpoint";
8
8
  import { Column } from "../../../ui/column";
9
9
 
@@ -41,7 +41,7 @@ const PageWrapper = styled.div`
41
41
  interface Page {
42
42
  title: React.ReactNode;
43
43
  key: string;
44
- component: ({ account }: { account: string }) => JSX.Element;
44
+ component: ({ account }: MiniPortfolioProps) => JSX.Element;
45
45
  }
46
46
 
47
47
  const Pages: Array<Page> = [
@@ -52,7 +52,11 @@ const Pages: Array<Page> = [
52
52
  }
53
53
  ];
54
54
 
55
- export default function MiniPortfolio({ account }: { account: string }) {
55
+ export type MiniPortfolioProps = TokensProps;
56
+ export default function MiniPortfolio({
57
+ account,
58
+ defaultTokens
59
+ }: MiniPortfolioProps) {
56
60
  const [currentPage, setCurrentPage] = useState(0);
57
61
 
58
62
  const { component: Page } = Pages[currentPage];
@@ -72,7 +76,7 @@ export default function MiniPortfolio({ account }: { account: string }) {
72
76
  })}
73
77
  </Nav>
74
78
  <PageWrapper data-testid="mini-portfolio-page">
75
- <Page account={account} />
79
+ <Page account={account} defaultTokens={defaultTokens} />
76
80
  </PageWrapper>
77
81
  </Wrapper>
78
82
  );
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import { Token as TokenType } from "@bosonprotocol/common";
2
3
  import { Token } from "@uniswap/sdk-core";
3
4
  import { ethers } from "ethers";
4
5
  import styled from "styled-components";
@@ -20,11 +21,16 @@ import {
20
21
  import { nativeOnChain } from "../../../../../lib/const/tokens";
21
22
  import { PortfolioLogo } from "../../../../logo/PortfolioLogo";
22
23
 
23
- export default function Tokens({ account }: { account: string }) {
24
+ export type TokensProps = {
25
+ account: string;
26
+ defaultTokens?: TokenType[];
27
+ };
28
+ export default function Tokens({ account, defaultTokens }: TokensProps) {
24
29
  const chainId = useChainId();
25
30
  const { data: tokenBalances, isLoading } = useTokenBalances({
26
31
  address: account,
27
- chainId
32
+ chainId,
33
+ tokens: defaultTokens
28
34
  });
29
35
 
30
36
  if (!chainId || isLoading) {
@@ -28,10 +28,13 @@ import {
28
28
  UniWalletSupportedChains,
29
29
  getChainPriority
30
30
  } from "../../../lib/const/chains";
31
- import { useConfigContext } from "../../config/ConfigContext";
32
- import { getEnvConfigsFilteredByEnv } from "../../../lib/config/getConfigsByChainId";
31
+ import { getEnvConfigsFilteredByEnv as importedGetEnvConfigsFilteredByEnv } from "../../../lib/config/getConfigsByChainId";
33
32
  import { useSelectChain } from "../../../hooks/connection/useSelectChain";
34
- import { ConfigId, ProtocolConfig } from "@bosonprotocol/core-sdk";
33
+ import {
34
+ ConfigId,
35
+ EnvironmentType,
36
+ CoreProtocolConfig
37
+ } from "@bosonprotocol/core-sdk";
35
38
  import { SvgImage } from "../../ui/SvgImage";
36
39
 
37
40
  const IconAndChevron = styled.div<{
@@ -57,11 +60,6 @@ const IconAndChevron = styled.div<{
57
60
  }
58
61
  `;
59
62
 
60
- export interface ChainSelectorProps {
61
- leftAlign?: boolean;
62
- backgroundColor: CSSProperties["backgroundColor"];
63
- }
64
-
65
63
  function useWalletSupportedChains({
66
64
  NETWORK_SELECTOR_CHAINS_IDS
67
65
  }: {
@@ -88,14 +86,25 @@ const chevronProps = {
88
86
  height: 20,
89
87
  width: 20
90
88
  };
89
+
90
+ export interface ChainSelectorProps {
91
+ leftAlign?: boolean;
92
+ backgroundColor: CSSProperties["backgroundColor"];
93
+ config: CoreProtocolConfig;
94
+ getEnvConfigsFilteredByEnv?: (
95
+ envName: EnvironmentType
96
+ ) => CoreProtocolConfig[];
97
+ }
98
+
91
99
  export const ChainSelector = ({
92
100
  leftAlign,
93
- backgroundColor
101
+ backgroundColor,
102
+ config,
103
+ getEnvConfigsFilteredByEnv = importedGetEnvConfigsFilteredByEnv
94
104
  }: ChainSelectorProps) => {
95
- const { config } = useConfigContext();
96
105
  const NETWORK_SELECTOR_CHAINS = useMemo(
97
106
  () => getEnvConfigsFilteredByEnv(config.envName),
98
- [config.envName]
107
+ [config.envName, getEnvConfigsFilteredByEnv]
99
108
  );
100
109
  const NETWORK_SELECTOR_CHAINS_IDS = NETWORK_SELECTOR_CHAINS.map(
101
110
  (config) => config.chainId as ChainId
@@ -128,7 +137,10 @@ export const ChainSelector = ({
128
137
  }
129
138
  return acc;
130
139
  },
131
- { supported: [], unsupported: [] } as Record<string, ProtocolConfig[]>
140
+ { supported: [], unsupported: [] } as Record<
141
+ string,
142
+ CoreProtocolConfig[]
143
+ >
132
144
  );
133
145
  return [supported, unsupported];
134
146
  }, [NETWORK_SELECTOR_CHAINS, walletSupportsChain]);
@@ -148,7 +160,7 @@ export const ChainSelector = ({
148
160
 
149
161
  const [pendingConfigId, setPendingConfigId] = useState<ConfigId>();
150
162
  const onSelectChain = useCallback(
151
- async (config: ProtocolConfig) => {
163
+ async (config: CoreProtocolConfig) => {
152
164
  try {
153
165
  setPendingConfigId(config.configId);
154
166
  await selectChain(config.configId);