@0xsequence/marketplace-sdk 0.8.8 → 0.8.9
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.
- package/CHANGELOG.md +6 -0
- package/dist/{chunk-7IYKUVC3.js → chunk-I2BYHDFE.js} +184 -93
- package/dist/chunk-I2BYHDFE.js.map +1 -0
- package/dist/index.css +76 -30
- package/dist/index.css.map +1 -1
- package/dist/react/index.css +76 -30
- package/dist/react/index.css.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.js +3 -1
- package/dist/react/ui/components/collectible-card/index.css +76 -30
- package/dist/react/ui/components/collectible-card/index.css.map +1 -1
- package/dist/react/ui/components/collectible-card/index.d.ts +22 -1
- package/dist/react/ui/components/collectible-card/index.js +3 -1
- package/dist/react/ui/index.css +76 -30
- package/dist/react/ui/index.css.map +1 -1
- package/dist/react/ui/index.d.ts +1 -1
- package/dist/react/ui/index.js +3 -1
- package/package.json +4 -3
- package/src/react/ui/components/ModelViewer.tsx +54 -0
- package/src/react/ui/components/_internals/custom-select/CustomSelect.tsx +0 -1
- package/src/react/ui/components/collectible-card/CollectibleCard.tsx +5 -1
- package/src/react/ui/components/collectible-card/__tests__/CollectibleAsset.test.tsx +4 -4
- package/src/react/ui/components/collectible-card/collectible-asset/CollectibleAsset.tsx +50 -15
- package/src/react/ui/components/collectible-card/collectible-asset/utils.ts +8 -4
- package/src/react/ui/components/collectible-card/index.ts +1 -0
- package/src/react/ui/index.ts +1 -0
- package/src/react/ui/modals/SuccessfulPurchaseModal/index.tsx +9 -7
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +1 -1
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +1 -1
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +0 -1
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +1 -1
- package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +1 -2
- package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +0 -1
- package/src/utils/fetchContentType.ts +6 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/chunk-7IYKUVC3.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -231,7 +231,7 @@ var quantityInput_default = observer(function QuantityInput({
|
|
|
231
231
|
"div",
|
|
232
232
|
{
|
|
233
233
|
className: cn(
|
|
234
|
-
"flex w-full flex-col [&>label>div>div:has(:disabled):hover]:opacity-100 [&>label>div>div:has(:disabled)]:opacity-100 [&>label>div>div>input]:text-xs [&>label>div>div]:h-9 [&>label>div>div]:rounded [&>label>div>div]:pr-0 [&>label>div>div]:pl-3 [&>label>div>div]:text-xs [&>label]:gap-[2px]",
|
|
234
|
+
"flex w-full flex-col [&>label>div>div>div:has(:disabled):hover]:opacity-100 [&>label>div>div>div:has(:disabled)]:opacity-100 [&>label>div>div>div>input]:text-xs [&>label>div>div>div]:h-9 [&>label>div>div>div]:rounded [&>label>div>div>div]:pr-0 [&>label>div>div>div]:pl-3 [&>label>div>div>div]:text-xs [&>label]:gap-[2px]",
|
|
235
235
|
className,
|
|
236
236
|
disabled && "pointer-events-none opacity-50"
|
|
237
237
|
),
|
|
@@ -264,7 +264,6 @@ var quantityInput_default = observer(function QuantityInput({
|
|
|
264
264
|
}
|
|
265
265
|
)
|
|
266
266
|
] }),
|
|
267
|
-
numeric: true,
|
|
268
267
|
value: localQuantity,
|
|
269
268
|
onChange: (e) => handleChangeQuantity(e.target.value),
|
|
270
269
|
width: "full"
|
|
@@ -1208,7 +1207,6 @@ var CustomSelect = ({
|
|
|
1208
1207
|
/* @__PURE__ */ jsx11(ChevronDownIcon, { size: "xs" })
|
|
1209
1208
|
] }),
|
|
1210
1209
|
shape: "circle",
|
|
1211
|
-
opacity: "100",
|
|
1212
1210
|
className: `bg-overlay-light py-1.5 pl-3 ${className || ""}`,
|
|
1213
1211
|
"data-testid": `${testId}-trigger`
|
|
1214
1212
|
}
|
|
@@ -1378,7 +1376,7 @@ function PriceInput({
|
|
|
1378
1376
|
),
|
|
1379
1377
|
children: [
|
|
1380
1378
|
/* @__PURE__ */ jsx13("div", { className: "absolute top-8 left-2 flex items-center", children: /* @__PURE__ */ jsx13(currencyImage_default, { price$: $price }) }),
|
|
1381
|
-
/* @__PURE__ */ jsx13("div", { className: "[&>label>div>.rounded-xl]:h-9 [&>label>div>.rounded-xl]:rounded-sm [&>label>div>.rounded-xl]:px-2 [&>label]:gap-1", children: /* @__PURE__ */ jsx13(
|
|
1379
|
+
/* @__PURE__ */ jsx13("div", { className: "[&>label>div>div>.rounded-xl]:h-9 [&>label>div>div>.rounded-xl]:rounded-sm [&>label>div>div>.rounded-xl]:px-2 [&>label]:gap-1", children: /* @__PURE__ */ jsx13(
|
|
1382
1380
|
NumericInput2,
|
|
1383
1381
|
{
|
|
1384
1382
|
ref: inputRef,
|
|
@@ -1450,7 +1448,6 @@ var WaasFeeOptionsSelect = observer4(
|
|
|
1450
1448
|
return /* @__PURE__ */ jsx14(
|
|
1451
1449
|
Select,
|
|
1452
1450
|
{
|
|
1453
|
-
items: feeOptions,
|
|
1454
1451
|
name: "fee-option",
|
|
1455
1452
|
options: feeOptions.map((option) => ({
|
|
1456
1453
|
label: option.content,
|
|
@@ -4272,16 +4269,20 @@ function SuccessfulPurchaseActions() {
|
|
|
4272
4269
|
}
|
|
4273
4270
|
),
|
|
4274
4271
|
/* @__PURE__ */ jsx28(
|
|
4275
|
-
|
|
4272
|
+
"a",
|
|
4276
4273
|
{
|
|
4277
|
-
className: "w-full",
|
|
4278
|
-
as: "a",
|
|
4279
4274
|
href: successfulPurchaseModal$.state.explorerUrl.get(),
|
|
4280
4275
|
target: "_blank",
|
|
4281
4276
|
rel: "noopener noreferrer",
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
|
|
4277
|
+
className: "w-full",
|
|
4278
|
+
children: /* @__PURE__ */ jsx28(
|
|
4279
|
+
Button5,
|
|
4280
|
+
{
|
|
4281
|
+
shape: "square",
|
|
4282
|
+
leftIcon: ExternalLinkIcon,
|
|
4283
|
+
label: `View on ${successfulPurchaseModal$.state.explorerName.get()}`
|
|
4284
|
+
}
|
|
4285
|
+
)
|
|
4285
4286
|
}
|
|
4286
4287
|
)
|
|
4287
4288
|
] });
|
|
@@ -4424,7 +4425,7 @@ var TokenQuantityInput = observer11(
|
|
|
4424
4425
|
$invalidQuantity,
|
|
4425
4426
|
decimals: collection?.decimals || 0,
|
|
4426
4427
|
maxQuantity: balanceAmount ? String(balanceAmount) : "0",
|
|
4427
|
-
className: "[&>label>div>div]:h-13 [&>label>div>div]:rounded-xl [&>label>div>span]:text-sm [&>label>div>span]:text-text-80 [&>label]:gap-1"
|
|
4428
|
+
className: "[&>label>div>div>div>input]:text-sm [&>label>div>div>div]:h-13 [&>label>div>div>div]:rounded-xl [&>label>div>div>span]:text-sm [&>label>div>div>span]:text-text-80 [&>label]:gap-1"
|
|
4428
4429
|
}
|
|
4429
4430
|
),
|
|
4430
4431
|
/* @__PURE__ */ jsx29(
|
|
@@ -4500,7 +4501,7 @@ var WalletAddressInput = observer13(() => {
|
|
|
4500
4501
|
const handleChangeWalletAddress = (event) => {
|
|
4501
4502
|
transferModal$.state.receiverAddress.set(event.target.value);
|
|
4502
4503
|
};
|
|
4503
|
-
return /* @__PURE__ */ jsxs24("div", { className: "[&>label>div
|
|
4504
|
+
return /* @__PURE__ */ jsxs24("div", { className: "[&>label>div>>span]:text-sm [&>label>div>span]:text-text-80 [&>label]:gap-1", children: [
|
|
4504
4505
|
/* @__PURE__ */ jsx31(
|
|
4505
4506
|
TextInput,
|
|
4506
4507
|
{
|
|
@@ -4847,7 +4848,7 @@ var useSellModal = (callbacks) => {
|
|
|
4847
4848
|
};
|
|
4848
4849
|
|
|
4849
4850
|
// src/react/ui/components/collectible-card/CollectibleCard.tsx
|
|
4850
|
-
import { Skeleton as
|
|
4851
|
+
import { Skeleton as Skeleton12 } from "@0xsequence/design-system";
|
|
4851
4852
|
|
|
4852
4853
|
// src/react/ui/components/_internals/action-button/ActionButton.tsx
|
|
4853
4854
|
import { observer as observer18 } from "@legendapp/state/react";
|
|
@@ -5301,6 +5302,9 @@ function fetchContentType(url) {
|
|
|
5301
5302
|
result = "html";
|
|
5302
5303
|
}
|
|
5303
5304
|
break;
|
|
5305
|
+
case "model":
|
|
5306
|
+
result = "3d-model";
|
|
5307
|
+
break;
|
|
5304
5308
|
}
|
|
5305
5309
|
settle(result);
|
|
5306
5310
|
return;
|
|
@@ -5330,12 +5334,49 @@ function fetchContentType(url) {
|
|
|
5330
5334
|
});
|
|
5331
5335
|
}
|
|
5332
5336
|
|
|
5333
|
-
// src/react/ui/components/
|
|
5337
|
+
// src/react/ui/components/ModelViewer.tsx
|
|
5334
5338
|
import { Skeleton as Skeleton10 } from "@0xsequence/design-system";
|
|
5339
|
+
import { Suspense, lazy } from "react";
|
|
5335
5340
|
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
5341
|
+
var ModelViewerComponent = lazy(
|
|
5342
|
+
() => import("@google/model-viewer").then(() => ({
|
|
5343
|
+
default: ({
|
|
5344
|
+
posterSrc,
|
|
5345
|
+
src,
|
|
5346
|
+
onLoad,
|
|
5347
|
+
onError
|
|
5348
|
+
}) => /* @__PURE__ */ jsx41("div", { className: "h-full w-full bg-background-raised", children: /* @__PURE__ */ jsx41(
|
|
5349
|
+
"model-viewer",
|
|
5350
|
+
{
|
|
5351
|
+
alt: "3d model",
|
|
5352
|
+
"auto-rotate": true,
|
|
5353
|
+
autoplay: true,
|
|
5354
|
+
"camera-controls": true,
|
|
5355
|
+
class: "h-full w-full",
|
|
5356
|
+
error: onError,
|
|
5357
|
+
load: onLoad,
|
|
5358
|
+
loading: "eager",
|
|
5359
|
+
poster: posterSrc,
|
|
5360
|
+
reveal: "auto",
|
|
5361
|
+
"shadow-intensity": "1",
|
|
5362
|
+
src,
|
|
5363
|
+
"touch-action": "pan-y"
|
|
5364
|
+
}
|
|
5365
|
+
) })
|
|
5366
|
+
}))
|
|
5367
|
+
);
|
|
5368
|
+
var ModelViewerLoading = () => /* @__PURE__ */ jsx41(Skeleton10, { className: "h-full w-full" });
|
|
5369
|
+
var ModelViewer = (props) => {
|
|
5370
|
+
return /* @__PURE__ */ jsx41(Suspense, { fallback: /* @__PURE__ */ jsx41(ModelViewerLoading, {}), children: /* @__PURE__ */ jsx41(ModelViewerComponent, { ...props }) });
|
|
5371
|
+
};
|
|
5372
|
+
var ModelViewer_default = ModelViewer;
|
|
5373
|
+
|
|
5374
|
+
// src/react/ui/components/collectible-card/collectible-asset/CollectibleAssetSkeleton.tsx
|
|
5375
|
+
import { Skeleton as Skeleton11 } from "@0xsequence/design-system";
|
|
5376
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
5336
5377
|
function CollectibleAssetSkeleton() {
|
|
5337
|
-
return /* @__PURE__ */
|
|
5338
|
-
|
|
5378
|
+
return /* @__PURE__ */ jsx42(
|
|
5379
|
+
Skeleton11,
|
|
5339
5380
|
{
|
|
5340
5381
|
"data-testid": "collectible-asset-skeleton",
|
|
5341
5382
|
size: "lg",
|
|
@@ -5362,19 +5403,26 @@ var isVideo = (fileName) => {
|
|
|
5362
5403
|
const isVideo2 = /.*\.(mp4|ogg|webm)$/.test(fileName?.toLowerCase() || "");
|
|
5363
5404
|
return isVideo2;
|
|
5364
5405
|
};
|
|
5406
|
+
var is3dModel = (fileName) => {
|
|
5407
|
+
const is3dFile = /.*\.(gltf|glb|obj|fbx|stl|usdz)$/.test(
|
|
5408
|
+
fileName?.toLowerCase() || ""
|
|
5409
|
+
);
|
|
5410
|
+
return is3dFile;
|
|
5411
|
+
};
|
|
5365
5412
|
var getContentType = (url) => {
|
|
5366
5413
|
return new Promise((resolve) => {
|
|
5367
|
-
const type = isHtml(url) ? "html" : isVideo(url) ? "video" : isImage(url) ? "image" : null;
|
|
5414
|
+
const type = isHtml(url) ? "html" : isVideo(url) ? "video" : isImage(url) ? "image" : is3dModel(url) ? "3d-model" : null;
|
|
5368
5415
|
resolve(type);
|
|
5369
5416
|
});
|
|
5370
5417
|
};
|
|
5371
5418
|
|
|
5372
5419
|
// src/react/ui/components/collectible-card/collectible-asset/CollectibleAsset.tsx
|
|
5373
|
-
import { jsx as
|
|
5420
|
+
import { jsx as jsx43, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
5374
5421
|
function CollectibleAsset({
|
|
5375
5422
|
name,
|
|
5376
|
-
|
|
5377
|
-
assetSrcPrefixUrl
|
|
5423
|
+
assets,
|
|
5424
|
+
assetSrcPrefixUrl,
|
|
5425
|
+
className
|
|
5378
5426
|
}) {
|
|
5379
5427
|
const [assetLoadFailed, setAssetLoadFailed] = useState10(false);
|
|
5380
5428
|
const [assetLoading, setAssetLoading] = useState10(true);
|
|
@@ -5382,7 +5430,7 @@ function CollectibleAsset({
|
|
|
5382
5430
|
const videoRef = useRef3(null);
|
|
5383
5431
|
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
5384
5432
|
const placeholderImage = chess_tile_default;
|
|
5385
|
-
const assetUrl =
|
|
5433
|
+
const assetUrl = assets?.find((asset) => asset) || placeholderImage;
|
|
5386
5434
|
const proxiedAssetUrl = assetSrcPrefixUrl ? `${assetSrcPrefixUrl}${assetUrl}` : assetUrl;
|
|
5387
5435
|
useEffect12(() => {
|
|
5388
5436
|
getContentType(proxiedAssetUrl).then((contentType2) => {
|
|
@@ -5400,72 +5448,110 @@ function CollectibleAsset({
|
|
|
5400
5448
|
});
|
|
5401
5449
|
}, [proxiedAssetUrl]);
|
|
5402
5450
|
if (contentType.type === "html" && !assetLoadFailed) {
|
|
5403
|
-
return /* @__PURE__ */ jsxs30(
|
|
5404
|
-
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
|
|
5410
|
-
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5419
|
-
|
|
5420
|
-
|
|
5451
|
+
return /* @__PURE__ */ jsxs30(
|
|
5452
|
+
"div",
|
|
5453
|
+
{
|
|
5454
|
+
className: cn(
|
|
5455
|
+
"flex aspect-square w-full items-center justify-center overflow-hidden rounded-lg bg-background-secondary",
|
|
5456
|
+
className
|
|
5457
|
+
),
|
|
5458
|
+
children: [
|
|
5459
|
+
(assetLoading || contentType.loading) && /* @__PURE__ */ jsx43(CollectibleAssetSkeleton, {}),
|
|
5460
|
+
/* @__PURE__ */ jsx43(
|
|
5461
|
+
"iframe",
|
|
5462
|
+
{
|
|
5463
|
+
title: name || "Collectible",
|
|
5464
|
+
className: "aspect-square w-full",
|
|
5465
|
+
src: proxiedAssetUrl,
|
|
5466
|
+
allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",
|
|
5467
|
+
sandbox: "allow-scripts",
|
|
5468
|
+
style: {
|
|
5469
|
+
border: "0px"
|
|
5470
|
+
},
|
|
5471
|
+
onError: () => setAssetLoadFailed(true),
|
|
5472
|
+
onLoad: () => setAssetLoading(false)
|
|
5473
|
+
}
|
|
5474
|
+
)
|
|
5475
|
+
]
|
|
5476
|
+
}
|
|
5477
|
+
);
|
|
5421
5478
|
}
|
|
5422
|
-
if (contentType.type === "
|
|
5423
|
-
return /* @__PURE__ */
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5428
|
-
|
|
5429
|
-
|
|
5430
|
-
|
|
5431
|
-
|
|
5432
|
-
isSafari && "pointer-events-none"
|
|
5433
|
-
),
|
|
5434
|
-
autoPlay: true,
|
|
5435
|
-
loop: true,
|
|
5436
|
-
controls: true,
|
|
5437
|
-
playsInline: true,
|
|
5438
|
-
muted: true,
|
|
5439
|
-
controlsList: "nodownload noremoteplayback nofullscreen ",
|
|
5440
|
-
onError: () => {
|
|
5441
|
-
setAssetLoadFailed(true);
|
|
5442
|
-
},
|
|
5443
|
-
onLoadedMetadata: () => {
|
|
5444
|
-
setAssetLoading(false);
|
|
5445
|
-
},
|
|
5446
|
-
"data-testid": "collectible-asset-video",
|
|
5447
|
-
children: /* @__PURE__ */ jsx42("source", { src: proxiedAssetUrl })
|
|
5448
|
-
}
|
|
5449
|
-
)
|
|
5450
|
-
] });
|
|
5479
|
+
if (contentType.type === "3d-model" && !assetLoadFailed) {
|
|
5480
|
+
return /* @__PURE__ */ jsx43("div", { className: "h-full w-full", children: /* @__PURE__ */ jsx43(
|
|
5481
|
+
ModelViewer_default,
|
|
5482
|
+
{
|
|
5483
|
+
src: proxiedAssetUrl,
|
|
5484
|
+
posterSrc: placeholderImage,
|
|
5485
|
+
onLoad: () => setAssetLoading(false),
|
|
5486
|
+
onError: () => setAssetLoadFailed(true)
|
|
5487
|
+
}
|
|
5488
|
+
) });
|
|
5451
5489
|
}
|
|
5452
|
-
|
|
5453
|
-
|
|
5454
|
-
|
|
5455
|
-
"img",
|
|
5490
|
+
if (contentType.type === "video" && !assetLoadFailed) {
|
|
5491
|
+
return /* @__PURE__ */ jsxs30(
|
|
5492
|
+
"div",
|
|
5456
5493
|
{
|
|
5457
|
-
|
|
5458
|
-
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5494
|
+
className: cn(
|
|
5495
|
+
"relative flex aspect-square w-full items-center justify-center overflow-hidden rounded-lg bg-background-secondary",
|
|
5496
|
+
className
|
|
5497
|
+
),
|
|
5498
|
+
children: [
|
|
5499
|
+
(assetLoading || contentType.loading) && /* @__PURE__ */ jsx43(CollectibleAssetSkeleton, {}),
|
|
5500
|
+
/* @__PURE__ */ jsx43(
|
|
5501
|
+
"video",
|
|
5502
|
+
{
|
|
5503
|
+
ref: videoRef,
|
|
5504
|
+
className: cn(
|
|
5505
|
+
`absolute inset-0 h-full w-full object-cover transition-transform duration-200 ease-in-out group-hover:scale-hover ${assetLoading ? "invisible" : "visible"}`,
|
|
5506
|
+
// we can't hide the video controls in safari, when user hovers over the video they show up. `pointer-events-none` is the only way to hide them on hover
|
|
5507
|
+
isSafari && "pointer-events-none"
|
|
5508
|
+
),
|
|
5509
|
+
autoPlay: true,
|
|
5510
|
+
loop: true,
|
|
5511
|
+
controls: true,
|
|
5512
|
+
playsInline: true,
|
|
5513
|
+
muted: true,
|
|
5514
|
+
controlsList: "nodownload noremoteplayback nofullscreen ",
|
|
5515
|
+
onError: () => {
|
|
5516
|
+
setAssetLoadFailed(true);
|
|
5517
|
+
},
|
|
5518
|
+
onLoadedMetadata: () => {
|
|
5519
|
+
setAssetLoading(false);
|
|
5520
|
+
},
|
|
5521
|
+
"data-testid": "collectible-asset-video",
|
|
5522
|
+
children: /* @__PURE__ */ jsx43("source", { src: proxiedAssetUrl })
|
|
5523
|
+
}
|
|
5524
|
+
)
|
|
5525
|
+
]
|
|
5462
5526
|
}
|
|
5463
|
-
)
|
|
5464
|
-
|
|
5527
|
+
);
|
|
5528
|
+
}
|
|
5529
|
+
return /* @__PURE__ */ jsxs30(
|
|
5530
|
+
"div",
|
|
5531
|
+
{
|
|
5532
|
+
className: cn(
|
|
5533
|
+
"relative aspect-square overflow-hidden bg-background-secondary",
|
|
5534
|
+
className
|
|
5535
|
+
),
|
|
5536
|
+
children: [
|
|
5537
|
+
(assetLoading || contentType.loading) && /* @__PURE__ */ jsx43(CollectibleAssetSkeleton, {}),
|
|
5538
|
+
/* @__PURE__ */ jsx43(
|
|
5539
|
+
"img",
|
|
5540
|
+
{
|
|
5541
|
+
src: assetLoadFailed || contentType.failed ? placeholderImage : proxiedAssetUrl,
|
|
5542
|
+
alt: name || "Collectible",
|
|
5543
|
+
className: `absolute inset-0 h-full w-full object-cover transition-transform duration-200 ease-in-out group-hover:scale-hover ${assetLoading || contentType.loading ? "invisible" : "visible"}`,
|
|
5544
|
+
onError: () => setAssetLoadFailed(true),
|
|
5545
|
+
onLoad: () => setAssetLoading(false)
|
|
5546
|
+
}
|
|
5547
|
+
)
|
|
5548
|
+
]
|
|
5549
|
+
}
|
|
5550
|
+
);
|
|
5465
5551
|
}
|
|
5466
5552
|
|
|
5467
5553
|
// src/react/ui/components/collectible-card/CollectibleCard.tsx
|
|
5468
|
-
import { jsx as
|
|
5554
|
+
import { jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
5469
5555
|
function CollectibleSkeleton() {
|
|
5470
5556
|
return /* @__PURE__ */ jsxs31(
|
|
5471
5557
|
"div",
|
|
@@ -5473,8 +5559,8 @@ function CollectibleSkeleton() {
|
|
|
5473
5559
|
"data-testid": "collectible-card-skeleton",
|
|
5474
5560
|
className: "w-card-width overflow-hidden rounded-xl border border-border-base focus-visible:border-border-focus focus-visible:shadow-none focus-visible:outline-focus active:border-border-focus active:shadow-none",
|
|
5475
5561
|
children: [
|
|
5476
|
-
/* @__PURE__ */
|
|
5477
|
-
|
|
5562
|
+
/* @__PURE__ */ jsx44("div", { className: "relative aspect-square overflow-hidden bg-background-secondary", children: /* @__PURE__ */ jsx44(
|
|
5563
|
+
Skeleton12,
|
|
5478
5564
|
{
|
|
5479
5565
|
size: "lg",
|
|
5480
5566
|
className: "absolute inset-0 h-full w-full animate-shimmer",
|
|
@@ -5484,8 +5570,8 @@ function CollectibleSkeleton() {
|
|
|
5484
5570
|
}
|
|
5485
5571
|
) }),
|
|
5486
5572
|
/* @__PURE__ */ jsxs31("div", { className: "mt-2 flex flex-col gap-2 px-4 pb-4", children: [
|
|
5487
|
-
/* @__PURE__ */
|
|
5488
|
-
/* @__PURE__ */
|
|
5573
|
+
/* @__PURE__ */ jsx44(Skeleton12, { size: "lg", className: "animate-shimmer" }),
|
|
5574
|
+
/* @__PURE__ */ jsx44(Skeleton12, { size: "sm", className: "animate-shimmer" })
|
|
5489
5575
|
] })
|
|
5490
5576
|
]
|
|
5491
5577
|
}
|
|
@@ -5516,10 +5602,10 @@ function CollectibleCard({
|
|
|
5516
5602
|
}
|
|
5517
5603
|
});
|
|
5518
5604
|
if (cardLoading) {
|
|
5519
|
-
return /* @__PURE__ */
|
|
5605
|
+
return /* @__PURE__ */ jsx44(CollectibleSkeleton, {});
|
|
5520
5606
|
}
|
|
5521
5607
|
const action = balance ? highestOffer && "Sell" /* SELL */ || !collectible?.listing && "Create listing" /* LIST */ || "Transfer" /* TRANSFER */ : collectible?.listing && "Buy" /* BUY */ || "Make an offer" /* OFFER */;
|
|
5522
|
-
return /* @__PURE__ */
|
|
5608
|
+
return /* @__PURE__ */ jsx44(
|
|
5523
5609
|
"div",
|
|
5524
5610
|
{
|
|
5525
5611
|
"data-testid": "collectible-card",
|
|
@@ -5530,16 +5616,20 @@ function CollectibleCard({
|
|
|
5530
5616
|
onCollectibleClick?.(collectibleId);
|
|
5531
5617
|
}
|
|
5532
5618
|
},
|
|
5533
|
-
children: /* @__PURE__ */
|
|
5534
|
-
/* @__PURE__ */
|
|
5619
|
+
children: /* @__PURE__ */ jsx44("div", { className: "group relative z-10 flex h-full w-full cursor-pointer flex-col items-start overflow-hidden rounded-xl border-none bg-none p-0 focus:outline-none [&:focus]:rounded-[10px] [&:focus]:outline-[3px] [&:focus]:outline-black [&:focus]:outline-offset-[-3px]", children: /* @__PURE__ */ jsxs31("article", { className: "w-full rounded-xl", children: [
|
|
5620
|
+
/* @__PURE__ */ jsx44(
|
|
5535
5621
|
CollectibleAsset,
|
|
5536
5622
|
{
|
|
5537
5623
|
name: collectibleMetadata?.name || "",
|
|
5538
|
-
|
|
5624
|
+
assets: [
|
|
5625
|
+
collectibleMetadata?.image,
|
|
5626
|
+
collectibleMetadata?.video,
|
|
5627
|
+
collectibleMetadata?.animation_url
|
|
5628
|
+
],
|
|
5539
5629
|
assetSrcPrefixUrl
|
|
5540
5630
|
}
|
|
5541
5631
|
),
|
|
5542
|
-
/* @__PURE__ */
|
|
5632
|
+
/* @__PURE__ */ jsx44(
|
|
5543
5633
|
Footer,
|
|
5544
5634
|
{
|
|
5545
5635
|
name: collectibleMetadata?.name || "",
|
|
@@ -5552,7 +5642,7 @@ function CollectibleCard({
|
|
|
5552
5642
|
decimals: collectibleMetadata?.decimals
|
|
5553
5643
|
}
|
|
5554
5644
|
),
|
|
5555
|
-
(highestOffer || collectible) && !balanceIsLoading && /* @__PURE__ */
|
|
5645
|
+
(highestOffer || collectible) && !balanceIsLoading && /* @__PURE__ */ jsx44("div", { className: "-bottom-16 absolute flex w-full origin-bottom items-center justify-center bg-overlay-light p-2 backdrop-blur transition-transform duration-200 ease-in-out group-hover:translate-y-[-64px]", children: /* @__PURE__ */ jsx44(
|
|
5556
5646
|
ActionButton,
|
|
5557
5647
|
{
|
|
5558
5648
|
chainId,
|
|
@@ -5579,6 +5669,7 @@ export {
|
|
|
5579
5669
|
useCreateListingModal,
|
|
5580
5670
|
useMakeOfferModal,
|
|
5581
5671
|
useSellModal,
|
|
5672
|
+
CollectibleAsset,
|
|
5582
5673
|
CollectibleCard
|
|
5583
5674
|
};
|
|
5584
|
-
//# sourceMappingURL=chunk-
|
|
5675
|
+
//# sourceMappingURL=chunk-I2BYHDFE.js.map
|