@bosonprotocol/react-kit 0.30.0-alpha.3 → 0.30.0-alpha.4

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 (147) hide show
  1. package/dist/cjs/components/modal/components/Commit/OfferVariantView.d.ts.map +1 -1
  2. package/dist/cjs/components/modal/components/Commit/OfferVariantView.js +3 -0
  3. package/dist/cjs/components/modal/components/Commit/OfferVariantView.js.map +1 -1
  4. package/dist/cjs/components/modal/components/common/OfferFullDescription/DigitalProductData.d.ts.map +1 -1
  5. package/dist/cjs/components/modal/components/common/OfferFullDescription/DigitalProductData.js +33 -12
  6. package/dist/cjs/components/modal/components/common/OfferFullDescription/DigitalProductData.js.map +1 -1
  7. package/dist/cjs/components/modal/components/common/detail/PhygitalProduct.d.ts.map +1 -1
  8. package/dist/cjs/components/modal/components/common/detail/PhygitalProduct.js +9 -23
  9. package/dist/cjs/components/modal/components/common/detail/PhygitalProduct.js.map +1 -1
  10. package/dist/cjs/components/modal/components/common/detail/TokenGatedItem.d.ts.map +1 -1
  11. package/dist/cjs/components/modal/components/common/detail/TokenGatedItem.js +28 -16
  12. package/dist/cjs/components/modal/components/common/detail/TokenGatedItem.js.map +1 -1
  13. package/dist/cjs/components/productCard/ProductCard.d.ts.map +1 -1
  14. package/dist/cjs/components/productCard/ProductCard.js +1 -1
  15. package/dist/cjs/components/productCard/ProductCard.js.map +1 -1
  16. package/dist/cjs/components/productCard/ProductCard.styles.d.ts +1 -0
  17. package/dist/cjs/components/productCard/ProductCard.styles.d.ts.map +1 -1
  18. package/dist/cjs/components/productCard/ProductCard.styles.js +43 -3
  19. package/dist/cjs/components/productCard/ProductCard.styles.js.map +1 -1
  20. package/dist/cjs/components/ui/IpfsImage.d.ts +3 -0
  21. package/dist/cjs/components/ui/IpfsImage.d.ts.map +1 -1
  22. package/dist/cjs/components/ui/IpfsImage.js +12 -2
  23. package/dist/cjs/components/ui/IpfsImage.js.map +1 -1
  24. package/dist/cjs/hooks/bundles/useBundleItemsImages.d.ts +10 -0
  25. package/dist/cjs/hooks/bundles/useBundleItemsImages.d.ts.map +1 -0
  26. package/dist/cjs/hooks/bundles/useBundleItemsImages.js +56 -0
  27. package/dist/cjs/hooks/bundles/useBundleItemsImages.js.map +1 -0
  28. package/dist/cjs/hooks/contracts/erc1155/useErc1155Uris.d.ts +11 -0
  29. package/dist/cjs/hooks/contracts/erc1155/useErc1155Uris.d.ts.map +1 -0
  30. package/dist/cjs/hooks/contracts/erc1155/useErc1155Uris.js +37 -0
  31. package/dist/cjs/hooks/contracts/erc1155/useErc1155Uris.js.map +1 -0
  32. package/dist/cjs/hooks/contracts/erc721/useErc721TokenUris.d.ts +11 -0
  33. package/dist/cjs/hooks/contracts/erc721/useErc721TokenUris.d.ts.map +1 -0
  34. package/dist/cjs/hooks/contracts/erc721/useErc721TokenUris.js +37 -0
  35. package/dist/cjs/hooks/contracts/erc721/useErc721TokenUris.js.map +1 -0
  36. package/dist/cjs/hooks/contracts/useGetTokenUriImages.d.ts +10 -0
  37. package/dist/cjs/hooks/contracts/useGetTokenUriImages.d.ts.map +1 -0
  38. package/dist/cjs/hooks/contracts/useGetTokenUriImages.js +103 -0
  39. package/dist/cjs/hooks/contracts/useGetTokenUriImages.js.map +1 -0
  40. package/dist/cjs/hooks/index.d.ts +3 -3
  41. package/dist/cjs/hooks/index.d.ts.map +1 -1
  42. package/dist/cjs/hooks/index.js +3 -3
  43. package/dist/cjs/hooks/index.js.map +1 -1
  44. package/dist/cjs/lib/ipfs/ipfs.d.ts.map +1 -1
  45. package/dist/cjs/lib/ipfs/ipfs.js +9 -4
  46. package/dist/cjs/lib/ipfs/ipfs.js.map +1 -1
  47. package/dist/cjs/lib/offer/getOfferDetails.js.map +1 -1
  48. package/dist/esm/components/modal/components/Commit/OfferVariantView.d.ts.map +1 -1
  49. package/dist/esm/components/modal/components/Commit/OfferVariantView.js +3 -0
  50. package/dist/esm/components/modal/components/Commit/OfferVariantView.js.map +1 -1
  51. package/dist/esm/components/modal/components/common/OfferFullDescription/DigitalProductData.d.ts.map +1 -1
  52. package/dist/esm/components/modal/components/common/OfferFullDescription/DigitalProductData.js +34 -8
  53. package/dist/esm/components/modal/components/common/OfferFullDescription/DigitalProductData.js.map +1 -1
  54. package/dist/esm/components/modal/components/common/detail/PhygitalProduct.d.ts.map +1 -1
  55. package/dist/esm/components/modal/components/common/detail/PhygitalProduct.js +9 -24
  56. package/dist/esm/components/modal/components/common/detail/PhygitalProduct.js.map +1 -1
  57. package/dist/esm/components/modal/components/common/detail/TokenGatedItem.d.ts.map +1 -1
  58. package/dist/esm/components/modal/components/common/detail/TokenGatedItem.js +28 -16
  59. package/dist/esm/components/modal/components/common/detail/TokenGatedItem.js.map +1 -1
  60. package/dist/esm/components/productCard/ProductCard.d.ts.map +1 -1
  61. package/dist/esm/components/productCard/ProductCard.js +2 -2
  62. package/dist/esm/components/productCard/ProductCard.js.map +1 -1
  63. package/dist/esm/components/productCard/ProductCard.styles.d.ts +1 -0
  64. package/dist/esm/components/productCard/ProductCard.styles.d.ts.map +1 -1
  65. package/dist/esm/components/productCard/ProductCard.styles.js +42 -2
  66. package/dist/esm/components/productCard/ProductCard.styles.js.map +1 -1
  67. package/dist/esm/components/ui/IpfsImage.d.ts +3 -0
  68. package/dist/esm/components/ui/IpfsImage.d.ts.map +1 -1
  69. package/dist/esm/components/ui/IpfsImage.js +13 -3
  70. package/dist/esm/components/ui/IpfsImage.js.map +1 -1
  71. package/dist/esm/hooks/bundles/useBundleItemsImages.d.ts +10 -0
  72. package/dist/esm/hooks/bundles/useBundleItemsImages.d.ts.map +1 -0
  73. package/dist/esm/hooks/bundles/useBundleItemsImages.js +48 -0
  74. package/dist/esm/hooks/bundles/useBundleItemsImages.js.map +1 -0
  75. package/dist/esm/hooks/contracts/erc1155/useErc1155Uris.d.ts +11 -0
  76. package/dist/esm/hooks/contracts/erc1155/useErc1155Uris.d.ts.map +1 -0
  77. package/dist/esm/hooks/contracts/erc1155/useErc1155Uris.js +22 -0
  78. package/dist/esm/hooks/contracts/erc1155/useErc1155Uris.js.map +1 -0
  79. package/dist/esm/hooks/contracts/erc721/useErc721TokenUris.d.ts +11 -0
  80. package/dist/esm/hooks/contracts/erc721/useErc721TokenUris.d.ts.map +1 -0
  81. package/dist/esm/hooks/contracts/erc721/useErc721TokenUris.js +22 -0
  82. package/dist/esm/hooks/contracts/erc721/useErc721TokenUris.js.map +1 -0
  83. package/dist/esm/hooks/contracts/useGetTokenUriImages.d.ts +10 -0
  84. package/dist/esm/hooks/contracts/useGetTokenUriImages.d.ts.map +1 -0
  85. package/dist/esm/hooks/contracts/useGetTokenUriImages.js +90 -0
  86. package/dist/esm/hooks/contracts/useGetTokenUriImages.js.map +1 -0
  87. package/dist/esm/hooks/index.d.ts +3 -3
  88. package/dist/esm/hooks/index.d.ts.map +1 -1
  89. package/dist/esm/hooks/index.js +3 -3
  90. package/dist/esm/hooks/index.js.map +1 -1
  91. package/dist/esm/lib/ipfs/ipfs.d.ts.map +1 -1
  92. package/dist/esm/lib/ipfs/ipfs.js +9 -4
  93. package/dist/esm/lib/ipfs/ipfs.js.map +1 -1
  94. package/dist/esm/lib/offer/getOfferDetails.js.map +1 -1
  95. package/package.json +4 -4
  96. package/src/components/modal/components/Commit/OfferVariantView.tsx +3 -0
  97. package/src/components/modal/components/common/OfferFullDescription/DigitalProductData.tsx +157 -113
  98. package/src/components/modal/components/common/detail/PhygitalProduct.tsx +13 -30
  99. package/src/components/modal/components/common/detail/TokenGatedItem.tsx +27 -15
  100. package/src/components/productCard/ProductCard.styles.ts +43 -2
  101. package/src/components/productCard/ProductCard.tsx +2 -1
  102. package/src/components/ui/IpfsImage.tsx +18 -3
  103. package/src/components/widgets/commit/CommitWidget.tsx +1 -1
  104. package/src/hooks/bundles/useBundleItemsImages.ts +71 -0
  105. package/src/hooks/contracts/erc1155/useErc1155Uris.ts +52 -0
  106. package/src/hooks/contracts/erc721/useErc721TokenUris.ts +52 -0
  107. package/src/hooks/contracts/useGetTokenUriImages.ts +126 -0
  108. package/src/hooks/index.ts +3 -3
  109. package/src/lib/ipfs/ipfs.ts +15 -5
  110. package/src/lib/offer/getOfferDetails.ts +4 -4
  111. package/src/stories/widgets/Commit.stories.tsx +3 -3
  112. package/dist/cjs/components/nftItem/NftItemIcon.d.ts +0 -8
  113. package/dist/cjs/components/nftItem/NftItemIcon.d.ts.map +0 -1
  114. package/dist/cjs/components/nftItem/NftItemIcon.js +0 -14
  115. package/dist/cjs/components/nftItem/NftItemIcon.js.map +0 -1
  116. package/dist/cjs/hooks/contracts/erc1155/useErc1155Uri.d.ts +0 -9
  117. package/dist/cjs/hooks/contracts/erc1155/useErc1155Uri.d.ts.map +0 -1
  118. package/dist/cjs/hooks/contracts/erc1155/useErc1155Uri.js +0 -29
  119. package/dist/cjs/hooks/contracts/erc1155/useErc1155Uri.js.map +0 -1
  120. package/dist/cjs/hooks/contracts/erc721/useErc721TokenUri.d.ts +0 -9
  121. package/dist/cjs/hooks/contracts/erc721/useErc721TokenUri.d.ts.map +0 -1
  122. package/dist/cjs/hooks/contracts/erc721/useErc721TokenUri.js +0 -29
  123. package/dist/cjs/hooks/contracts/erc721/useErc721TokenUri.js.map +0 -1
  124. package/dist/cjs/hooks/contracts/useGetTokenUriImage.d.ts +0 -8
  125. package/dist/cjs/hooks/contracts/useGetTokenUriImage.d.ts.map +0 -1
  126. package/dist/cjs/hooks/contracts/useGetTokenUriImage.js +0 -93
  127. package/dist/cjs/hooks/contracts/useGetTokenUriImage.js.map +0 -1
  128. package/dist/esm/components/nftItem/NftItemIcon.d.ts +0 -8
  129. package/dist/esm/components/nftItem/NftItemIcon.d.ts.map +0 -1
  130. package/dist/esm/components/nftItem/NftItemIcon.js +0 -7
  131. package/dist/esm/components/nftItem/NftItemIcon.js.map +0 -1
  132. package/dist/esm/hooks/contracts/erc1155/useErc1155Uri.d.ts +0 -9
  133. package/dist/esm/hooks/contracts/erc1155/useErc1155Uri.d.ts.map +0 -1
  134. package/dist/esm/hooks/contracts/erc1155/useErc1155Uri.js +0 -16
  135. package/dist/esm/hooks/contracts/erc1155/useErc1155Uri.js.map +0 -1
  136. package/dist/esm/hooks/contracts/erc721/useErc721TokenUri.d.ts +0 -9
  137. package/dist/esm/hooks/contracts/erc721/useErc721TokenUri.d.ts.map +0 -1
  138. package/dist/esm/hooks/contracts/erc721/useErc721TokenUri.js +0 -16
  139. package/dist/esm/hooks/contracts/erc721/useErc721TokenUri.js.map +0 -1
  140. package/dist/esm/hooks/contracts/useGetTokenUriImage.d.ts +0 -8
  141. package/dist/esm/hooks/contracts/useGetTokenUriImage.d.ts.map +0 -1
  142. package/dist/esm/hooks/contracts/useGetTokenUriImage.js +0 -80
  143. package/dist/esm/hooks/contracts/useGetTokenUriImage.js.map +0 -1
  144. package/src/components/nftItem/NftItemIcon.tsx +0 -16
  145. package/src/hooks/contracts/erc1155/useErc1155Uri.ts +0 -31
  146. package/src/hooks/contracts/erc721/useErc721TokenUri.ts +0 -31
  147. package/src/hooks/contracts/useGetTokenUriImage.ts +0 -102
@@ -0,0 +1,22 @@
1
+ import { useQuery } from "react-query";
2
+ export const useErc721TokenUris = (props, { enabled, coreSDK }) => {
3
+ return useQuery(["useErc721TokenUris", coreSDK.uuid, props], async () => {
4
+ const { pairsContractTokens } = props;
5
+ if (!pairsContractTokens) {
6
+ return;
7
+ }
8
+ return (await Promise.all(pairsContractTokens.map(async (pair) => pair && pair.contractAddress && pair.tokenIds
9
+ ? await Promise.allSettled(pair.tokenIds.map((tokenId) => tokenId && pair.contractAddress
10
+ ? coreSDK.erc721TokenUri({
11
+ contractAddress: pair.contractAddress,
12
+ tokenId
13
+ })
14
+ : null))
15
+ : null))).map((promiseSettled) => promiseSettled
16
+ ? promiseSettled.map((promiseSettled) => promiseSettled.status === "fulfilled"
17
+ ? promiseSettled.value
18
+ : null)
19
+ : null);
20
+ }, { enabled });
21
+ };
22
+ //# sourceMappingURL=useErc721TokenUris.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErc721TokenUris.js","sourceRoot":"","sources":["../../../../../src/hooks/contracts/erc721/useErc721TokenUris.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAOC,EACD,EAAE,OAAO,EAAE,OAAO,EAAsD,EACxE,EAAE;IACF,OAAO,QAAQ,CACb,CAAC,oBAAoB,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAC3C,KAAK,IAAI,EAAE;QACT,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,mBAAmB,EAAE;YACxB,OAAO;SACR;QAED,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACrC,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ;YAC3C,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5B,OAAO,IAAI,IAAI,CAAC,eAAe;gBAC7B,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;oBACrB,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,OAAO;iBACR,CAAC;gBACJ,CAAC,CAAC,IAAI,CACT,CACF;YACH,CAAC,CAAC,IAAI,CACT,CACF,CACF,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CACvB,cAAc;YACZ,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CACpC,cAAc,CAAC,MAAM,KAAK,WAAW;gBACnC,CAAC,CAAC,cAAc,CAAC,KAAK;gBACtB,CAAC,CAAC,IAAI,CACT;YACH,CAAC,CAAC,IAAI,CACT,CAAC;IACJ,CAAC,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const useGetTokenUriImages: (props: {
2
+ pairsTokenUrisIds: ({
3
+ tokenUris: (string | null | undefined)[] | undefined | null;
4
+ tokenIds: (string | null | undefined)[] | undefined | null;
5
+ } | null)[] | undefined;
6
+ ipfsGateway?: string;
7
+ }, { enabled }: {
8
+ enabled: boolean;
9
+ }) => import("react-query").UseQueryResult<string[][], unknown>;
10
+ //# sourceMappingURL=useGetTokenUriImages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetTokenUriImages.d.ts","sourceRoot":"","sources":["../../../../src/hooks/contracts/useGetTokenUriImages.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,oBAAoB,UACxB;IACL,iBAAiB,EACb,CAAC;QACC,SAAS,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;QAC5D,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;KAC5D,GAAG,IAAI,CAAC,EAAE,GACX,SAAS,CAAC;IAEd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;aACuB,OAAO;+DAoGhC,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { getImageUrl } from "../../lib/images/images";
2
+ import { useQuery } from "react-query";
3
+ const replaceUrlWithId = ({ tokenId, url }) => {
4
+ const urlWithIdReplaced = url.replace("{id}", tokenId);
5
+ return urlWithIdReplaced;
6
+ };
7
+ export const useGetTokenUriImages = (props, { enabled }) => {
8
+ const { pairsTokenUrisIds, ipfsGateway = "https://ipfs.io/ipfs" } = props;
9
+ return useQuery(["useGetTokenUriImages", props], async () => {
10
+ if (!pairsTokenUrisIds) {
11
+ return [];
12
+ }
13
+ try {
14
+ return await Promise.all(pairsTokenUrisIds.map(async (pair) => {
15
+ if (!pair) {
16
+ return Promise.resolve([]);
17
+ }
18
+ const { tokenIds, tokenUris } = pair;
19
+ if (!tokenIds ||
20
+ !tokenUris ||
21
+ tokenUris.length !== tokenIds.length) {
22
+ return Promise.resolve([]);
23
+ }
24
+ return await Promise.all(tokenUris.map(async (tokenUri, index) => {
25
+ const tokenId = tokenIds[index];
26
+ if (!tokenUri || !tokenId) {
27
+ return "";
28
+ }
29
+ if (tokenUri.startsWith("data:application/json")) {
30
+ const base64Data = tokenUri.substring(tokenUri.indexOf(",") + 1);
31
+ const jsonValue = window.atob(base64Data);
32
+ const parsedJson = JSON.parse(jsonValue);
33
+ const image = parsedJson.image;
34
+ const imageUrl = getImageUrl(image, ipfsGateway);
35
+ const urlWithIdReplaced = replaceUrlWithId({
36
+ url: imageUrl,
37
+ tokenId
38
+ });
39
+ return urlWithIdReplaced;
40
+ }
41
+ if (tokenUri.startsWith("ipfs")) {
42
+ const imageUrl = getImageUrl(tokenUri, ipfsGateway);
43
+ const urlWithIdReplaced = replaceUrlWithId({
44
+ url: imageUrl,
45
+ tokenId
46
+ });
47
+ const fetchedMetadata = await fetch(urlWithIdReplaced);
48
+ try {
49
+ const jsonMetadata = await fetchedMetadata.json();
50
+ const imageUrl = getImageUrl(jsonMetadata.image, ipfsGateway);
51
+ return imageUrl;
52
+ }
53
+ catch (error) {
54
+ console.debug(error);
55
+ }
56
+ return urlWithIdReplaced;
57
+ }
58
+ if (tokenUri.startsWith("http")) {
59
+ const urlWithIdReplaced = replaceUrlWithId({
60
+ url: tokenUri,
61
+ tokenId
62
+ });
63
+ const fetchedMetadata = await fetch(urlWithIdReplaced);
64
+ try {
65
+ const jsonMetadata = await fetchedMetadata.json();
66
+ const image = jsonMetadata.image;
67
+ const imageUrl = getImageUrl(image, ipfsGateway);
68
+ return imageUrl;
69
+ }
70
+ catch (error) {
71
+ console.debug(error);
72
+ }
73
+ return urlWithIdReplaced;
74
+ }
75
+ if (tokenUri.startsWith("data:image")) {
76
+ return tokenUri;
77
+ }
78
+ return "";
79
+ }));
80
+ }));
81
+ }
82
+ catch (err) {
83
+ console.error(err);
84
+ throw err;
85
+ }
86
+ }, {
87
+ enabled
88
+ });
89
+ };
90
+ //# sourceMappingURL=useGetTokenUriImages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetTokenUriImages.js","sourceRoot":"","sources":["../../../../src/hooks/contracts/useGetTokenUriImages.ts"],"names":[],"mappings":"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"}
@@ -8,13 +8,13 @@ export * from "./useHandleText";
8
8
  export * from "./useExchanges";
9
9
  export * from "./useMetaTx";
10
10
  export * from "../components/widgets/finance/useOffersBacked";
11
- export * from "./contracts/useGetTokenUriImage";
11
+ export * from "./contracts/useGetTokenUriImages";
12
12
  export * from "./products/useProductByUuid";
13
13
  export * from "./bundles/useBundleByUuid";
14
- export * from "./contracts/erc721/useErc721TokenUri";
14
+ export * from "./contracts/erc721/useErc721TokenUris";
15
15
  export * from "./contracts/erc721/useErc721Name";
16
16
  export * from "./contracts/erc721/useErc721OwnerOf";
17
17
  export * from "./contracts/erc1155/useErc1155Name";
18
- export * from "./contracts/erc1155/useErc1155Uri";
18
+ export * from "./contracts/erc1155/useErc1155Uris";
19
19
  export * from "./uniswap/useIsWindowVisible";
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,SAAS,CAAC;AACxB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,SAAS,CAAC;AACxB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC"}
@@ -8,13 +8,13 @@ export * from "./useHandleText";
8
8
  export * from "./useExchanges";
9
9
  export * from "./useMetaTx";
10
10
  export * from "../components/widgets/finance/useOffersBacked";
11
- export * from "./contracts/useGetTokenUriImage";
11
+ export * from "./contracts/useGetTokenUriImages";
12
12
  export * from "./products/useProductByUuid";
13
13
  export * from "./bundles/useBundleByUuid";
14
- export * from "./contracts/erc721/useErc721TokenUri";
14
+ export * from "./contracts/erc721/useErc721TokenUris";
15
15
  export * from "./contracts/erc721/useErc721Name";
16
16
  export * from "./contracts/erc721/useErc721OwnerOf";
17
17
  export * from "./contracts/erc1155/useErc1155Name";
18
- export * from "./contracts/erc1155/useErc1155Uri";
18
+ export * from "./contracts/erc1155/useErc1155Uris";
19
19
  export * from "./uniswap/useIsWindowVisible";
20
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,SAAS,CAAC;AACxB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,cAAc,SAAS,CAAC;AACxB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../../../src/lib/ipfs/ipfs.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,MAAM,CAoBR"}
1
+ {"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../../../src/lib/ipfs/ipfs.ts"],"names":[],"mappings":"AAKA,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,MAAM,CA4BR"}
@@ -1,21 +1,26 @@
1
1
  import { CID } from "multiformats/cid";
2
2
  import { sanitizeUrl } from "../url/url";
3
+ const lensIpfs = "https://lens.infura-ipfs.io/ipfs/";
3
4
  export function getIpfsGatewayUrl(uri, opts) {
4
5
  if (!uri) {
5
6
  return uri;
6
7
  }
8
+ if (uri.startsWith(lensIpfs)) {
9
+ return uri;
10
+ }
7
11
  const { gateway } = opts;
8
- const cidAndRest = uri.replaceAll("ipfs://", ""); // it may be ipfs://CID/123
9
12
  try {
10
- const [cid] = cidAndRest.split("/", 1); // it may be CID/123
13
+ const url = new URL(uri.startsWith("ipfs://") ? uri.replace("ipfs://", "https://") : uri);
14
+ const hostIndex = uri.toLowerCase().indexOf(url.host.toLowerCase());
15
+ const cid = uri.substring(hostIndex, hostIndex + url.host.length); // we cannot use url.host because the browser changes it to lowercase so a lowercased CID would not be valid
11
16
  CID.parse(cid);
12
- return `${gateway}/${cidAndRest}`.replace(/([^:]\/)\/+/g, "$1"); // remove double slash
17
+ return `${gateway}/${cid}${url.pathname === "/" ? "" : url.pathname}${url.search}`.replace(/([^:]\/)\/+/g, "$1"); // remove double slash
13
18
  }
14
19
  catch (error) {
15
20
  // If CID.parse throws, then it is either not a valid CID or just an URL
16
21
  const cidFromUrl = uri.split("/ipfs/")[1];
17
22
  if (cidFromUrl) {
18
- return getIpfsGatewayUrl(cidFromUrl.split("?")[0], opts);
23
+ return getIpfsGatewayUrl(`ipfs://${cidFromUrl}`, opts);
19
24
  }
20
25
  return sanitizeUrl(uri);
21
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../../../src/lib/ipfs/ipfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,IAEC;IAED,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,GAAG,CAAC;KACZ;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,2BAA2B;IAE7E,IAAI;QACF,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB;QAC5D,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,sBAAsB;KACxF;IAAC,OAAO,KAAK,EAAE;QACd,wEAAwE;QACxE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE;YACd,OAAO,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SAC1D;QAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;KACzB;AACH,CAAC"}
1
+ {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../../../src/lib/ipfs/ipfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,QAAQ,GAAG,mCAAmC,CAAC;AAErD,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,IAEC;IAED,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,GAAG,CAAC;KACZ;IACD,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC5B,OAAO,GAAG,CAAC;KACZ;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CACrE,CAAC;QACF,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,4GAA4G;QAC/K,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,GAAG,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CACxF,cAAc,EACd,IAAI,CACL,CAAC,CAAC,sBAAsB;KAC1B;IAAC,OAAO,KAAK,EAAE;QACd,wEAAwE;QACxE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE;YACd,OAAO,iBAAiB,CAAC,UAAU,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC;SACxD;QAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;KACzB;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getOfferDetails.js","sourceRoot":"","sources":["../../../../src/lib/offer/getOfferDetails.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAiE9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAA2C,EACzB,EAAE;IACpB,MAAM,2BAA2B,GAGjB,WAAW,CAAC,KAAK,CAAC;QAChC,CAAC,CAAE,KAAK,CAAC,QAAyB;QAClC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjB,CAAC,CAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAE9C;YAChB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GACR,2BAA2B,EAAE,OAAO,EAAE,KAAK;QAC3C,KAAK,CAAC,QAAQ,EAAE,IAAI;QACpB,UAAU,CAAC;IACb,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;IAEvC,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG;QACnB,kBAAkB,EAChB,2BAA2B,EAAE,QAAQ,EAAE,kBAAkB;QAC3D,aAAa,EACX,2BAA2B,EAAE,QAAQ,EAAE,sBAAsB,EAAE,GAAG,CAChE,CAAC,YAAiB,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,YAAY,CAAC,KAAK;YACxB,KAAK,EAAE,YAAY,CAAC,YAAY;SACjC,CAAC,CACH,IAAI,EAAE;KACV,CAAC;IACF,MAAM,WAAW,GACf,2BAA2B,EAAE,OAAO,EAAE,WAAW;QACjD,KAAK,CAAC,QAAQ,EAAE,WAAW;QAC3B,EAAE,CAAC;IACL,MAAM,MAAM,GAAG,2BAA2B,EAAE,eAAe,IAAI,IAAI,CAAC;IACpE,MAAM,iBAAiB,GACrB,MAAM,EAAE,WAAW;QACnB,2BAA2B,EAAE,OAAO,CAAC,eAAe,EAAE,WAAW;QACjE,EAAE,CAAC;IACL,MAAM,MAAM,GACV,2BAA2B,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,CACvD,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE,CAAC,GAAG,CAClC,IAAI,EAAE,CAAC;IACV,MAAM,cAAc,GAClB,2BAA2B,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,CAChE,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE,CAAC,GAAG,CAClC,IAAI,EAAE,CAAC;IACV,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAA0C,EAAE,CAClE,SAAS,CAAC,IAAI,CAAC,CAChB;QACH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,SAAS,GAAG,QAAQ,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI;QACJ,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,MAAM;QACN,iBAAiB;QACjB,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;QACxD,WAAW;QACX,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"getOfferDetails.js","sourceRoot":"","sources":["../../../../src/lib/offer/getOfferDetails.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAiE9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAA2C,EACzB,EAAE;IACpB,MAAM,2BAA2B,GAGjB,WAAW,CAAC,KAAK,CAAC;QAChC,CAAC,CAAE,KAAK,CAAC,QAAyB;QAClC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACf,CAAC,CAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAE9C;YAChB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,IAAI,GACR,2BAA2B,EAAE,OAAO,EAAE,KAAK;QAC3C,KAAK,CAAC,QAAQ,EAAE,IAAI;QACpB,UAAU,CAAC;IACb,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;IAEvC,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG;QACnB,kBAAkB,EAChB,2BAA2B,EAAE,QAAQ,EAAE,kBAAkB;QAC3D,aAAa,EACX,2BAA2B,EAAE,QAAQ,EAAE,sBAAsB,EAAE,GAAG,CAChE,CAAC,YAAiB,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,YAAY,CAAC,KAAK;YACxB,KAAK,EAAE,YAAY,CAAC,YAAY;SACjC,CAAC,CACH,IAAI,EAAE;KACV,CAAC;IACF,MAAM,WAAW,GACf,2BAA2B,EAAE,OAAO,EAAE,WAAW;QACjD,KAAK,CAAC,QAAQ,EAAE,WAAW;QAC3B,EAAE,CAAC;IACL,MAAM,MAAM,GAAG,2BAA2B,EAAE,eAAe,IAAI,IAAI,CAAC;IACpE,MAAM,iBAAiB,GACrB,MAAM,EAAE,WAAW;QACnB,2BAA2B,EAAE,OAAO,CAAC,eAAe,EAAE,WAAW;QACjE,EAAE,CAAC;IACL,MAAM,MAAM,GACV,2BAA2B,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,CACvD,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE,CAAC,GAAG,CAClC,IAAI,EAAE,CAAC;IACV,MAAM,cAAc,GAClB,2BAA2B,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,CAChE,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE,CAAC,GAAG,CAClC,IAAI,EAAE,CAAC;IACV,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAA0C,EAAE,CAClE,SAAS,CAAC,IAAI,CAAC,CAChB;QACH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,SAAS,GAAG,QAAQ,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI;QACJ,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,MAAM;QACN,iBAAiB;QACjB,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;QACxD,WAAW;QACX,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC,CAAC"}
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.30.0-alpha.3",
4
+ "version": "0.30.0-alpha.4",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
7
7
  "types": "./dist/cjs/index.d.ts",
@@ -15,8 +15,8 @@
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.2-alpha.0",
19
- "@bosonprotocol/ethers-sdk": "^1.14.2-alpha.0",
18
+ "@bosonprotocol/core-sdk": "^1.40.2-alpha.1",
19
+ "@bosonprotocol/ethers-sdk": "^1.14.2-alpha.1",
20
20
  "@bosonprotocol/ipfs-storage": "^1.11.3",
21
21
  "@davatar/react": "1.11.1",
22
22
  "@ethersproject/units": "5.6.0",
@@ -170,5 +170,5 @@
170
170
  "overrides": {
171
171
  "typescript": "^5.1.6"
172
172
  },
173
- "gitHead": "9e1e68033ed1d3b8cea2d5021cbdeb28abe8633c"
173
+ "gitHead": "2ad6e6a6a86fb44577f8ecdfe219431e5f30a931"
174
174
  }
@@ -26,6 +26,7 @@ import { DetailContextProps } from "../common/detail/DetailViewProvider";
26
26
  import { OnClickBuyOrSwapHandler } from "../common/detail/types";
27
27
  import { UseGetOfferDetailDataProps } from "../common/detail/useGetOfferDetailData";
28
28
  import { BosonLogo } from "../common/BosonLogo";
29
+ import { PhygitalLabel } from "../../../productCard/ProductCard";
29
30
 
30
31
  const colors = theme.colors.light;
31
32
  const ImageWrapper = styled.div`
@@ -36,6 +37,7 @@ const ImageWrapper = styled.div`
36
37
  ${breakpoint.s} {
37
38
  max-width: 35rem !important;
38
39
  }
40
+ overflow: hidden;
39
41
  `;
40
42
 
41
43
  const ImageAndSellerIdContainer = styled(Grid)`
@@ -173,6 +175,7 @@ export function OfferVariantView({
173
175
  >
174
176
  <ImageAndSellerIdContainer flexDirection="column" flex={1}>
175
177
  <ImageWrapper>
178
+ <PhygitalLabel />
176
179
  {mediaFiles.length && (
177
180
  <DetailSlider
178
181
  mediaFiles={mediaFiles}
@@ -3,7 +3,6 @@ import React from "react";
3
3
  import styled from "styled-components";
4
4
  import { getOfferDetails } from "../../../../../lib/offer/getOfferDetails";
5
5
  import { Offer } from "../../../../../types/offer";
6
- import { NftItemIcon } from "../../../../nftItem/NftItemIcon";
7
6
  import { DetailsSummary } from "../../../../ui/DetailsSummary";
8
7
  import { Grid } from "../../../../ui/Grid";
9
8
  import { Typography } from "../../../../ui/Typography";
@@ -15,6 +14,12 @@ import {
15
14
  digitalTypeMappingDisplay,
16
15
  ercTokenMapping
17
16
  } from "../../../../../lib/bundle/const";
17
+ import { useBundleItemsImages } from "../../../../../hooks/bundles/useBundleItemsImages";
18
+ import { useCoreSDKWithContext } from "../../../../../hooks/core-sdk/useCoreSdkWithContext";
19
+ import { isNftItem } from "../../../../../lib/bundle/filter";
20
+ import { isTruthy } from "../../../../../types/helpers";
21
+ import Video from "../../../../ui/Video";
22
+ import IpfsImage from "../../../../ui/IpfsImage";
18
23
 
19
24
  const StyledDetailsSummary = styled(DetailsSummary)`
20
25
  .icon-wrapper {
@@ -38,7 +43,12 @@ export const DigitalProductData: React.FC<DigitalProductDataProps> = ({
38
43
  offer,
39
44
  imagesToShow
40
45
  }) => {
41
- const { nftItems } = getOfferDetails(offer);
46
+ const { bundleItems } = getOfferDetails(offer);
47
+ const { images } = useBundleItemsImages({
48
+ bundleItems,
49
+ coreSDK: useCoreSDKWithContext()
50
+ });
51
+
42
52
  return (
43
53
  <Grid
44
54
  flexDirection="column"
@@ -47,121 +57,155 @@ export const DigitalProductData: React.FC<DigitalProductDataProps> = ({
47
57
  justifyContent="space-between"
48
58
  >
49
59
  <Typography tag="h3">Digital product data</Typography>
50
- {nftItems?.map((nftItem, index) => {
51
- const nftMedia = [
52
- ...(nftItem.image
53
- ? [{ url: nftItem.image, type: "image" } as const]
54
- : []),
55
- ...(nftItem.animationUrl
56
- ? [
57
- {
58
- url: nftItem.animationUrl,
59
- type: "video"
60
- } as const
61
- ]
62
- : [])
63
- ];
64
- const icon = <NftItemIcon nftItem={nftItem} />;
65
- return (
66
- <StyledDetailsSummary
67
- key={nftItem.id}
68
- icon={icon ? <MediaWrapper>{icon}</MediaWrapper> : null}
69
- summaryText={nftItem.name || nftItem.contract || ""}
70
- initiallyOpen={index === 0}
71
- >
72
- <DetailTable
73
- align={false}
74
- noBorder
75
- data={[
76
- ...(nftItem.contract
77
- ? [
78
- {
79
- name: "Contract address",
80
- value: (
81
- <Typography tag="p">{nftItem.contract}</Typography>
82
- )
83
- }
84
- ]
85
- : []),
86
- ...(nftItem.description
87
- ? [
88
- {
89
- name: "Description",
90
- value: (
91
- <Typography tag="p">{nftItem.description}</Typography>
92
- )
93
- }
94
- ]
95
- : []),
96
- ...(nftItem.attributes || []).map((attribute) => ({
97
- name: attribute.displayType || attribute.traitType,
98
- value: (
99
- <Typography tag="p">
100
- {digitalTypeMappingDisplay[
101
- attribute.value as keyof typeof digitalTypeMappingDisplay
60
+ {bundleItems
61
+ ?.map((bundleItem, index) => {
62
+ if (!isNftItem(bundleItem)) {
63
+ return null;
64
+ }
65
+ const nftItem = bundleItem;
66
+ const nftMedia = [
67
+ ...(nftItem.image
68
+ ? [{ url: nftItem.image, type: "image" } as const]
69
+ : []),
70
+ ...(nftItem.animationUrl
71
+ ? [
72
+ {
73
+ url: nftItem.animationUrl,
74
+ type: "video"
75
+ } as const
76
+ ]
77
+ : [])
78
+ ];
79
+ const imageSrc = images?.[index];
80
+ const videoSrc = bundleItem.animationUrl;
81
+ const icon = videoSrc ? (
82
+ <MediaWrapper>
83
+ <Video src={videoSrc} />
84
+ </MediaWrapper>
85
+ ) : imageSrc ? (
86
+ <MediaWrapper>
87
+ <IpfsImage
88
+ src={imageSrc}
89
+ overrides={{ ipfsGateway: "https://ipfs.io/ipfs" }}
90
+ />
91
+ </MediaWrapper>
92
+ ) : null;
93
+ return (
94
+ <StyledDetailsSummary
95
+ key={nftItem.id}
96
+ icon={icon ? <MediaWrapper>{icon}</MediaWrapper> : null}
97
+ summaryText={nftItem.name || nftItem.contract || ""}
98
+ initiallyOpen={index === 0}
99
+ >
100
+ <DetailTable
101
+ align={false}
102
+ noBorder
103
+ data={[
104
+ ...(nftItem.contract
105
+ ? [
106
+ {
107
+ name: "Contract address",
108
+ value: (
109
+ <Typography tag="p">{nftItem.contract}</Typography>
110
+ )
111
+ }
102
112
  ]
103
- ? digitalTypeMappingDisplay[
104
- attribute.value as keyof typeof digitalTypeMappingDisplay
105
- ]
106
- : digitalNftTypeMapping[
107
- attribute.value as keyof typeof digitalNftTypeMapping
108
- ]
109
- ? digitalNftTypeMapping[
110
- attribute.value as keyof typeof digitalNftTypeMapping
111
- ]
112
- : attribute.value}
113
- </Typography>
114
- )
115
- })),
116
- ...(nftItem.tokenIdRange?.min && nftItem.tokenIdRange.max
117
- ? [
118
- {
119
- name: "Token IDs",
120
- value: (
121
- <Typography tag="p">
122
- {nftItem.tokenIdRange?.min}-
123
- {nftItem.tokenIdRange?.max}
124
- </Typography>
125
- )
126
- }
127
- ]
128
- : []),
129
- ...(nftItem.terms || []).map((term) => ({
130
- name: term.displayKey || term.key,
131
- value: (
132
- <Typography tag="p">
133
- {buyerTransferInfoMapping[
134
- term.value as keyof typeof buyerTransferInfoMapping
113
+ : []),
114
+ ...(nftItem.description
115
+ ? [
116
+ {
117
+ name: "Description",
118
+ value: (
119
+ <Typography tag="p">
120
+ {nftItem.description}
121
+ </Typography>
122
+ )
123
+ }
135
124
  ]
136
- ? buyerTransferInfoMapping[
137
- term.value as keyof typeof buyerTransferInfoMapping
138
- ]
139
- : ercTokenMapping[
140
- term.value as keyof typeof ercTokenMapping
125
+ : []),
126
+ ...(nftItem.attributes || []).map((attribute) => ({
127
+ name: attribute.displayType || attribute.traitType,
128
+ value: (
129
+ <Typography tag="p">
130
+ {digitalTypeMappingDisplay[
131
+ attribute.value as keyof typeof digitalTypeMappingDisplay
132
+ ]
133
+ ? digitalTypeMappingDisplay[
134
+ attribute.value as keyof typeof digitalTypeMappingDisplay
141
135
  ]
142
- ? ercTokenMapping[
143
- term.value as keyof typeof ercTokenMapping
136
+ : digitalNftTypeMapping[
137
+ attribute.value as keyof typeof digitalNftTypeMapping
138
+ ]
139
+ ? digitalNftTypeMapping[
140
+ attribute.value as keyof typeof digitalNftTypeMapping
141
+ ]
142
+ : attribute.value}
143
+ </Typography>
144
+ )
145
+ })),
146
+ ...(nftItem.tokenIdRange?.min && nftItem.tokenIdRange.max
147
+ ? [
148
+ {
149
+ name:
150
+ nftItem.tokenIdRange?.min ===
151
+ nftItem.tokenIdRange?.max
152
+ ? "Token ID"
153
+ : "Token IDs",
154
+ value:
155
+ nftItem.tokenIdRange?.min ===
156
+ nftItem.tokenIdRange?.max ? (
157
+ <Typography tag="p">
158
+ {nftItem.tokenIdRange?.min}
159
+ </Typography>
160
+ ) : (
161
+ <Typography tag="p">
162
+ {nftItem.tokenIdRange?.min}-
163
+ {nftItem.tokenIdRange?.max}
164
+ </Typography>
165
+ )
166
+ }
167
+ ]
168
+ : []),
169
+ ...(nftItem.terms || []).map((term) => ({
170
+ name: term.displayKey || term.key,
171
+ value: (
172
+ <Typography tag="p">
173
+ {buyerTransferInfoMapping[
174
+ term.value as keyof typeof buyerTransferInfoMapping
175
+ ]
176
+ ? buyerTransferInfoMapping[
177
+ term.value as keyof typeof buyerTransferInfoMapping
144
178
  ]
145
- : term.value}
146
- </Typography>
147
- )
148
- }))
149
- ]}
150
- inheritColor={false}
151
- />
152
- {!!nftMedia.length && (
153
- <div style={{ width: "100%", padding: "0 2rem 1.5rem 2rem" }}>
154
- <SlickSlider
155
- settings={{ ...initialSettings, slidesToShow: imagesToShow }}
156
- mediaFiles={nftMedia}
157
- alignLeft
158
- imageOptimizationOpts={{ height: 500 }}
159
- />
160
- </div>
161
- )}
162
- </StyledDetailsSummary>
163
- );
164
- })}
179
+ : ercTokenMapping[
180
+ term.value as keyof typeof ercTokenMapping
181
+ ]
182
+ ? ercTokenMapping[
183
+ term.value as keyof typeof ercTokenMapping
184
+ ]
185
+ : term.value}
186
+ </Typography>
187
+ )
188
+ }))
189
+ ]}
190
+ inheritColor={false}
191
+ />
192
+ {!!nftMedia.length && (
193
+ <div style={{ width: "100%", padding: "0 2rem 1.5rem 2rem" }}>
194
+ <SlickSlider
195
+ settings={{
196
+ ...initialSettings,
197
+ slidesToShow: imagesToShow
198
+ }}
199
+ mediaFiles={nftMedia}
200
+ alignLeft
201
+ imageOptimizationOpts={{ height: 500 }}
202
+ />
203
+ </div>
204
+ )}
205
+ </StyledDetailsSummary>
206
+ );
207
+ })
208
+ .filter(isTruthy)}
165
209
  </Grid>
166
210
  );
167
211
  };