@rpg-engine/long-bow 0.8.219 → 0.8.220
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/dist/components/DraggableContainer.d.ts +0 -6
- package/dist/components/Store/MetadataCollector.d.ts +2 -2
- package/dist/components/Store/Store.d.ts +10 -27
- package/dist/components/Store/StoreHeader.d.ts +14 -0
- package/dist/components/Store/hooks/useStoreCart.d.ts +2 -0
- package/dist/components/Store/hooks/useStoreMetadata.d.ts +4 -11
- package/dist/components/Store/hooks/useStoreTabs.d.ts +20 -0
- package/dist/components/Store/internal/packToBlueprint.d.ts +2 -0
- package/dist/components/Store/sections/StoreItemsSection.d.ts +5 -3
- package/dist/hooks/useStoreFiltering.d.ts +7 -4
- package/dist/long-bow.cjs.development.js +349 -396
- package/dist/long-bow.cjs.development.js.map +1 -1
- package/dist/long-bow.cjs.production.min.js +1 -1
- package/dist/long-bow.cjs.production.min.js.map +1 -1
- package/dist/long-bow.esm.js +351 -398
- package/dist/long-bow.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/DraggableContainer.tsx +0 -24
- package/src/components/Store/CartView.tsx +7 -2
- package/src/components/Store/MetadataCollector.tsx +60 -40
- package/src/components/Store/Store.tsx +75 -282
- package/src/components/Store/StoreHeader.tsx +74 -0
- package/src/components/Store/__test__/MetadataCollector.spec.tsx +94 -164
- package/src/components/Store/__test__/Store.spec.tsx +4 -0
- package/src/components/Store/__test__/useStoreMetadata.spec.tsx +58 -156
- package/src/components/Store/__test__/useStoreTabs.spec.tsx +69 -0
- package/src/components/Store/hooks/useStoreCart.ts +5 -2
- package/src/components/Store/hooks/useStoreMetadata.ts +30 -48
- package/src/components/Store/hooks/useStoreTabs.ts +104 -0
- package/src/components/Store/internal/packToBlueprint.ts +21 -0
- package/src/components/Store/sections/StoreItemsSection.tsx +19 -60
- package/src/components/Store/sections/StorePacksSection.tsx +0 -1
- package/src/components/shared/ScrollableContent/ScrollableContent.tsx +3 -6
- package/src/hooks/useStoreFiltering.spec.tsx +79 -0
- package/src/hooks/useStoreFiltering.ts +27 -9
package/dist/long-bow.esm.js
CHANGED
|
@@ -2,11 +2,11 @@ import React, { useState, useEffect, Component, useRef, useCallback, useMemo, me
|
|
|
2
2
|
import styled, { css, createGlobalStyle, keyframes } from 'styled-components';
|
|
3
3
|
import { BeatLoader } from 'react-spinners';
|
|
4
4
|
import { v4 } from 'uuid';
|
|
5
|
-
import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemQualityLevel, ItemRarities, ItemSubType, isMobile, TaskType, TaskStatus, isMobileOrTablet, RewardType, DC_TO_GOLD_SWAP_RATE, ItemSlotType, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, MarketplaceBuyOrderStatus, MarketplaceAcceptedCurrency, formatDCAmount, goldToDC, MarketplaceTransactionType, CharacterClass as CharacterClass$2, QuestStatus, getLevelFromXP, getSkillConstants, getLevelFromSPTiered, getXPForLevel, getSPForLevelTiered, MetadataType, PurchaseType,
|
|
5
|
+
import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemQualityLevel, ItemRarities, ItemSubType, isMobile, TaskType, TaskStatus, isMobileOrTablet, RewardType, DC_TO_GOLD_SWAP_RATE, ItemSlotType, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, MarketplaceBuyOrderStatus, MarketplaceAcceptedCurrency, formatDCAmount, goldToDC, MarketplaceTransactionType, CharacterClass as CharacterClass$2, QuestStatus, getLevelFromXP, getSkillConstants, getLevelFromSPTiered, getXPForLevel, getSPForLevelTiered, MetadataType, PurchaseType, PaymentCurrency, UserAccountTypes, PeriodOfDay } from '@rpg-engine/shared';
|
|
6
6
|
export { MarketplaceAcceptedCurrency } from '@rpg-engine/shared';
|
|
7
7
|
import dayjs from 'dayjs';
|
|
8
8
|
import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
|
|
9
|
-
import { FaTimes, FaDiscord, FaWhatsapp, FaSearch, FaThumbtack, FaBoxOpen, FaChevronLeft, FaChevronRight, FaClipboardList, FaPaperPlane, FaShoppingCart, FaChevronUp, FaChevronDown, FaReddit, FaLock, FaRocket, FaHeadset, FaStar, FaShoppingBag, FaTrash, FaCoins, FaInfoCircle, FaBolt, FaCartPlus,
|
|
9
|
+
import { FaTimes, FaDiscord, FaWhatsapp, FaSearch, FaThumbtack, FaBoxOpen, FaChevronLeft, FaChevronRight, FaClipboardList, FaPaperPlane, FaShoppingCart, FaChevronUp, FaChevronDown, FaReddit, FaLock, FaRocket, FaHeadset, FaStar, FaShoppingBag, FaTrash, FaCoins, FaInfoCircle, FaBolt, FaCartPlus, FaCheckCircle, FaTicketAlt, FaExclamationCircle, FaArrowLeft, FaUsers, FaWallet, FaHistory } from 'react-icons/fa';
|
|
10
10
|
import { RxMagnifyingGlass, RxCross2 } from 'react-icons/rx';
|
|
11
11
|
import { IoMdContract, IoMdExpand } from 'react-icons/io';
|
|
12
12
|
import ReactDOM, { createPortal } from 'react-dom';
|
|
@@ -2468,10 +2468,6 @@ var DraggableContainer = function DraggableContainer(_ref) {
|
|
|
2468
2468
|
height = _ref.height,
|
|
2469
2469
|
minHeight = _ref.minHeight,
|
|
2470
2470
|
minWidth = _ref.minWidth,
|
|
2471
|
-
mobileWidth = _ref.mobileWidth,
|
|
2472
|
-
mobileHeight = _ref.mobileHeight,
|
|
2473
|
-
_ref$mobileBreakpoint = _ref.mobileBreakpoint,
|
|
2474
|
-
mobileBreakpoint = _ref$mobileBreakpoint === void 0 ? 768 : _ref$mobileBreakpoint,
|
|
2475
2471
|
className = _ref.className,
|
|
2476
2472
|
_ref$type = _ref.type,
|
|
2477
2473
|
type = _ref$type === void 0 ? RPGUIContainerTypes.FramedGold : _ref$type,
|
|
@@ -2548,9 +2544,6 @@ var DraggableContainer = function DraggableContainer(_ref) {
|
|
|
2548
2544
|
height: height || 'auto',
|
|
2549
2545
|
minWidth: minWidth,
|
|
2550
2546
|
minHeight: minHeight,
|
|
2551
|
-
mobileWidth: mobileWidth,
|
|
2552
|
-
mobileHeight: mobileHeight,
|
|
2553
|
-
mobileBreakpoint: mobileBreakpoint,
|
|
2554
2547
|
className: "rpgui-container " + type + " " + className,
|
|
2555
2548
|
isFullScreen: isFullScreen,
|
|
2556
2549
|
opacity: opacity
|
|
@@ -2567,7 +2560,7 @@ var DraggableContainer = function DraggableContainer(_ref) {
|
|
|
2567
2560
|
var Container$a = /*#__PURE__*/styled.div.withConfig({
|
|
2568
2561
|
displayName: "DraggableContainer__Container",
|
|
2569
2562
|
componentId: "sc-184mpyl-0"
|
|
2570
|
-
})(["height:", ";width:", ";min-width:", ";min-height:", ";display:flex;flex-wrap:wrap;image-rendering:pixelated;overflow-y:hidden;", " ", "
|
|
2563
|
+
})(["height:", ";width:", ";min-width:", ";min-height:", ";display:flex;flex-wrap:wrap;image-rendering:pixelated;overflow-y:hidden;", " ", " &.rpgui-container{padding-top:1.5rem;}"], function (props) {
|
|
2571
2564
|
return props.height;
|
|
2572
2565
|
}, function (_ref2) {
|
|
2573
2566
|
var width = _ref2.width;
|
|
@@ -2584,11 +2577,6 @@ var Container$a = /*#__PURE__*/styled.div.withConfig({
|
|
|
2584
2577
|
}, function (_ref6) {
|
|
2585
2578
|
var isFullScreen = _ref6.isFullScreen;
|
|
2586
2579
|
return isFullScreen && css(["justify-content:center;align-items:flex-start;align-content:flex-start;"]);
|
|
2587
|
-
}, function (_ref7) {
|
|
2588
|
-
var mobileWidth = _ref7.mobileWidth,
|
|
2589
|
-
mobileHeight = _ref7.mobileHeight,
|
|
2590
|
-
mobileBreakpoint = _ref7.mobileBreakpoint;
|
|
2591
|
-
return (mobileWidth || mobileHeight) && css(["@media (max-width:", "px){", " ", "}"], mobileBreakpoint != null ? mobileBreakpoint : 768, mobileWidth && "width: " + mobileWidth + "; min-width: unset;", mobileHeight && "height: " + mobileHeight + "; min-height: unset;");
|
|
2592
2580
|
});
|
|
2593
2581
|
var CloseButton$4 = /*#__PURE__*/styled.div.withConfig({
|
|
2594
2582
|
displayName: "DraggableContainer__CloseButton",
|
|
@@ -2605,8 +2593,8 @@ var Title$1 = /*#__PURE__*/styled.h1.withConfig({
|
|
|
2605
2593
|
var Icon = /*#__PURE__*/styled.img.withConfig({
|
|
2606
2594
|
displayName: "DraggableContainer__Icon",
|
|
2607
2595
|
componentId: "sc-184mpyl-4"
|
|
2608
|
-
})(["color:white;z-index:22;font-size:", ";width:", ";margin-right:0.5rem;"], uiFonts.size.xsmall, function (
|
|
2609
|
-
var width =
|
|
2596
|
+
})(["color:white;z-index:22;font-size:", ";width:", ";margin-right:0.5rem;"], uiFonts.size.xsmall, function (_ref7) {
|
|
2597
|
+
var width = _ref7.width;
|
|
2610
2598
|
return width;
|
|
2611
2599
|
});
|
|
2612
2600
|
|
|
@@ -37722,11 +37710,11 @@ var CartView = function CartView(_ref2) {
|
|
|
37722
37710
|
var Container$M = /*#__PURE__*/styled.div.withConfig({
|
|
37723
37711
|
displayName: "CartView__Container",
|
|
37724
37712
|
componentId: "sc-ydtyl1-0"
|
|
37725
|
-
})(["display:flex;flex-direction:column;width:100%;
|
|
37713
|
+
})(["display:flex;flex-direction:column;width:100%;height:100%;padding:1rem;overflow:hidden;box-sizing:border-box;"]);
|
|
37726
37714
|
var Header$g = /*#__PURE__*/styled.div.withConfig({
|
|
37727
37715
|
displayName: "CartView__Header",
|
|
37728
37716
|
componentId: "sc-ydtyl1-1"
|
|
37729
|
-
})(["display:flex;justify-content:space-between;align-items:center;"]);
|
|
37717
|
+
})(["display:flex;justify-content:space-between;align-items:center;flex-shrink:0;"]);
|
|
37730
37718
|
var Title$n = /*#__PURE__*/styled.h2.withConfig({
|
|
37731
37719
|
displayName: "CartView__Title",
|
|
37732
37720
|
componentId: "sc-ydtyl1-2"
|
|
@@ -37738,7 +37726,7 @@ var CloseButton$h = /*#__PURE__*/styled.div.withConfig({
|
|
|
37738
37726
|
var CartItems = /*#__PURE__*/styled.div.withConfig({
|
|
37739
37727
|
displayName: "CartView__CartItems",
|
|
37740
37728
|
componentId: "sc-ydtyl1-4"
|
|
37741
|
-
})(["display:flex;flex-direction:column;gap:0.5rem;overflow-y:auto;
|
|
37729
|
+
})(["display:flex;flex-direction:column;gap:0.5rem;flex:1;min-height:0;overflow-y:auto;margin:1rem 0;padding-right:0.5rem;&::-webkit-scrollbar{width:6px;}&::-webkit-scrollbar-track{background:rgba(0,0,0,0.2);border-radius:4px;}&::-webkit-scrollbar-thumb{background:#f59e0b;border-radius:4px;&:hover{background:#fbbf24;}}"]);
|
|
37742
37730
|
var EmptyCart = /*#__PURE__*/styled.div.withConfig({
|
|
37743
37731
|
displayName: "CartView__EmptyCart",
|
|
37744
37732
|
componentId: "sc-ydtyl1-5"
|
|
@@ -38040,53 +38028,31 @@ var useStoreMetadata = function useStoreMetadata() {
|
|
|
38040
38028
|
var _useState = useState(false),
|
|
38041
38029
|
isCollectingMetadata = _useState[0],
|
|
38042
38030
|
setIsCollectingMetadata = _useState[1];
|
|
38043
|
-
var
|
|
38044
|
-
|
|
38045
|
-
|
|
38046
|
-
|
|
38047
|
-
|
|
38048
|
-
|
|
38049
|
-
|
|
38050
|
-
|
|
38051
|
-
|
|
38052
|
-
|
|
38053
|
-
|
|
38054
|
-
|
|
38055
|
-
|
|
38056
|
-
|
|
38057
|
-
|
|
38058
|
-
|
|
38059
|
-
|
|
38060
|
-
|
|
38061
|
-
|
|
38062
|
-
|
|
38063
|
-
},
|
|
38064
|
-
item: item
|
|
38065
|
-
};
|
|
38066
|
-
});
|
|
38067
|
-
case 6:
|
|
38068
|
-
return _context.abrupt("return", _context.sent);
|
|
38069
|
-
case 7:
|
|
38070
|
-
_context.prev = 7;
|
|
38071
|
-
setIsCollectingMetadata(false);
|
|
38072
|
-
// Clean up the resolvers
|
|
38073
|
-
if (window.__metadataResolvers) {
|
|
38074
|
-
delete window.__metadataResolvers;
|
|
38075
|
-
}
|
|
38076
|
-
return _context.finish(7);
|
|
38077
|
-
case 11:
|
|
38078
|
-
case "end":
|
|
38079
|
-
return _context.stop();
|
|
38080
|
-
}
|
|
38081
|
-
}, _callee, null, [[3,, 7, 11]]);
|
|
38082
|
-
}));
|
|
38083
|
-
return function collectMetadata(_x) {
|
|
38084
|
-
return _ref.apply(this, arguments);
|
|
38085
|
-
};
|
|
38086
|
-
}();
|
|
38031
|
+
var _useState2 = useState(null),
|
|
38032
|
+
currentMetadataItem = _useState2[0],
|
|
38033
|
+
setCurrentMetadataItem = _useState2[1];
|
|
38034
|
+
var resolverRef = useRef(null);
|
|
38035
|
+
var collectMetadata = function collectMetadata(item) {
|
|
38036
|
+
if (!item.metadataType || item.metadataType !== MetadataType.CharacterSkin) {
|
|
38037
|
+
return Promise.resolve(null);
|
|
38038
|
+
}
|
|
38039
|
+
setIsCollectingMetadata(true);
|
|
38040
|
+
setCurrentMetadataItem(item);
|
|
38041
|
+
return new Promise(function (resolve) {
|
|
38042
|
+
resolverRef.current = resolve;
|
|
38043
|
+
});
|
|
38044
|
+
};
|
|
38045
|
+
var resolveMetadata = function resolveMetadata(metadata) {
|
|
38046
|
+
resolverRef.current == null ? void 0 : resolverRef.current(metadata);
|
|
38047
|
+
resolverRef.current = null;
|
|
38048
|
+
setIsCollectingMetadata(false);
|
|
38049
|
+
setCurrentMetadataItem(null);
|
|
38050
|
+
};
|
|
38087
38051
|
return {
|
|
38088
38052
|
collectMetadata: collectMetadata,
|
|
38089
|
-
|
|
38053
|
+
resolveMetadata: resolveMetadata,
|
|
38054
|
+
isCollectingMetadata: isCollectingMetadata,
|
|
38055
|
+
currentMetadataItem: currentMetadataItem
|
|
38090
38056
|
};
|
|
38091
38057
|
};
|
|
38092
38058
|
|
|
@@ -38105,7 +38071,9 @@ var useStoreCart = function useStoreCart() {
|
|
|
38105
38071
|
}, []);
|
|
38106
38072
|
var _useStoreMetadata = useStoreMetadata(),
|
|
38107
38073
|
collectMetadata = _useStoreMetadata.collectMetadata,
|
|
38108
|
-
|
|
38074
|
+
resolveMetadata = _useStoreMetadata.resolveMetadata,
|
|
38075
|
+
isCollectingMetadata = _useStoreMetadata.isCollectingMetadata,
|
|
38076
|
+
currentMetadataItem = _useStoreMetadata.currentMetadataItem;
|
|
38109
38077
|
var handleAddToCart = /*#__PURE__*/function () {
|
|
38110
38078
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(item, quantity, preselectedMetadata) {
|
|
38111
38079
|
var metadata;
|
|
@@ -38237,7 +38205,9 @@ var useStoreCart = function useStoreCart() {
|
|
|
38237
38205
|
closeCart: closeCart,
|
|
38238
38206
|
getTotalItems: getTotalItems,
|
|
38239
38207
|
getTotalPrice: getTotalPrice,
|
|
38240
|
-
isCollectingMetadata: isCollectingMetadata
|
|
38208
|
+
isCollectingMetadata: isCollectingMetadata,
|
|
38209
|
+
currentMetadataItem: currentMetadataItem,
|
|
38210
|
+
resolveMetadata: resolveMetadata
|
|
38241
38211
|
};
|
|
38242
38212
|
};
|
|
38243
38213
|
// Helper functions
|
|
@@ -38266,23 +38236,42 @@ var MetadataCollector = function MetadataCollector(_ref) {
|
|
|
38266
38236
|
config = _ref.config,
|
|
38267
38237
|
onCollect = _ref.onCollect,
|
|
38268
38238
|
onCancel = _ref.onCancel;
|
|
38269
|
-
|
|
38239
|
+
var isPendingRef = useRef(true);
|
|
38240
|
+
var finalize = useCallback(function (callback) {
|
|
38241
|
+
if (!isPendingRef.current) {
|
|
38242
|
+
return;
|
|
38243
|
+
}
|
|
38244
|
+
isPendingRef.current = false;
|
|
38245
|
+
callback();
|
|
38246
|
+
}, []);
|
|
38247
|
+
var handleCollect = useCallback(function (metadata) {
|
|
38248
|
+
finalize(function () {
|
|
38249
|
+
return onCollect(metadata);
|
|
38250
|
+
});
|
|
38251
|
+
}, [finalize, onCollect]);
|
|
38252
|
+
var handleCancel = useCallback(function () {
|
|
38253
|
+
finalize(onCancel);
|
|
38254
|
+
}, [finalize, onCancel]);
|
|
38270
38255
|
useEffect(function () {
|
|
38271
38256
|
return function () {
|
|
38272
|
-
|
|
38273
|
-
// make sure to call onCancel to prevent any hanging promises
|
|
38274
|
-
if (window.__metadataResolvers) {
|
|
38275
|
-
onCancel();
|
|
38276
|
-
}
|
|
38257
|
+
handleCancel();
|
|
38277
38258
|
};
|
|
38278
|
-
}, [
|
|
38279
|
-
|
|
38280
|
-
|
|
38259
|
+
}, [handleCancel]);
|
|
38260
|
+
useEffect(function () {
|
|
38261
|
+
if (metadataType === MetadataType.CharacterSkin) {
|
|
38262
|
+
return undefined;
|
|
38263
|
+
}
|
|
38264
|
+
var timer = window.setTimeout(handleCancel, 0);
|
|
38265
|
+
return function () {
|
|
38266
|
+
return window.clearTimeout(timer);
|
|
38267
|
+
};
|
|
38268
|
+
}, [handleCancel, metadataType]);
|
|
38269
|
+
if (metadataType === MetadataType.CharacterSkin) {
|
|
38281
38270
|
return React.createElement(CharacterSkinSelectionModal, {
|
|
38282
38271
|
isOpen: true,
|
|
38283
|
-
onClose:
|
|
38272
|
+
onClose: handleCancel,
|
|
38284
38273
|
onConfirm: function onConfirm(selectedSkin) {
|
|
38285
|
-
return
|
|
38274
|
+
return handleCollect({
|
|
38286
38275
|
selectedSkin: selectedSkin
|
|
38287
38276
|
});
|
|
38288
38277
|
},
|
|
@@ -38291,12 +38280,9 @@ var MetadataCollector = function MetadataCollector(_ref) {
|
|
|
38291
38280
|
atlasIMG: config.atlasIMG,
|
|
38292
38281
|
initialSelectedSkin: config.initialSelectedSkin
|
|
38293
38282
|
});
|
|
38294
|
-
} else {
|
|
38295
|
-
console.warn("No collector implemented for metadata type: " + metadataType);
|
|
38296
|
-
// Auto-cancel for unhandled types to prevent hanging promises
|
|
38297
|
-
setTimeout(onCancel, 0);
|
|
38298
|
-
return null;
|
|
38299
38283
|
}
|
|
38284
|
+
console.warn("No collector implemented for metadata type: " + metadataType);
|
|
38285
|
+
return null;
|
|
38300
38286
|
};
|
|
38301
38287
|
|
|
38302
38288
|
var PaymentMethodModal = function PaymentMethodModal(_ref) {
|
|
@@ -38446,6 +38432,159 @@ var ConfirmRow$1 = /*#__PURE__*/styled.div.withConfig({
|
|
|
38446
38432
|
componentId: "sc-1dxy6lr-12"
|
|
38447
38433
|
})(["display:flex;justify-content:center;margin-top:4px;"]);
|
|
38448
38434
|
|
|
38435
|
+
function packToBlueprint(pack) {
|
|
38436
|
+
return {
|
|
38437
|
+
key: pack.key,
|
|
38438
|
+
name: pack.title,
|
|
38439
|
+
description: pack.description || '',
|
|
38440
|
+
price: pack.priceUSD,
|
|
38441
|
+
currency: PaymentCurrency.USD,
|
|
38442
|
+
texturePath: pack.image["default"] || pack.image.src,
|
|
38443
|
+
type: PurchaseType.Pack,
|
|
38444
|
+
onPurchase: function () {
|
|
38445
|
+
var _onPurchase = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
38446
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
38447
|
+
while (1) switch (_context.prev = _context.next) {
|
|
38448
|
+
case 0:
|
|
38449
|
+
case "end":
|
|
38450
|
+
return _context.stop();
|
|
38451
|
+
}
|
|
38452
|
+
}, _callee);
|
|
38453
|
+
}));
|
|
38454
|
+
function onPurchase() {
|
|
38455
|
+
return _onPurchase.apply(this, arguments);
|
|
38456
|
+
}
|
|
38457
|
+
return onPurchase;
|
|
38458
|
+
}(),
|
|
38459
|
+
itemType: ItemType.Consumable,
|
|
38460
|
+
itemSubType: ItemSubType.Other,
|
|
38461
|
+
rarity: ItemRarities.Common,
|
|
38462
|
+
weight: 0,
|
|
38463
|
+
isStackable: false,
|
|
38464
|
+
maxStackSize: 1,
|
|
38465
|
+
isUsable: false
|
|
38466
|
+
};
|
|
38467
|
+
}
|
|
38468
|
+
|
|
38469
|
+
var DEFAULT_TAB_ORDER = ['premium', 'packs', 'items'];
|
|
38470
|
+
function isTabAvailable(tabId, params) {
|
|
38471
|
+
var hidePremiumTab = params.hidePremiumTab,
|
|
38472
|
+
hasCharacters = params.hasCharacters,
|
|
38473
|
+
hasRedeem = params.hasRedeem,
|
|
38474
|
+
hasWallet = params.hasWallet,
|
|
38475
|
+
hasHistory = params.hasHistory;
|
|
38476
|
+
if (tabId === 'premium') return !hidePremiumTab;
|
|
38477
|
+
if (tabId === 'characters') return !!hasCharacters;
|
|
38478
|
+
if (tabId === 'redeem') return !!hasRedeem;
|
|
38479
|
+
if (tabId === 'wallet') return !!hasWallet;
|
|
38480
|
+
if (tabId === 'history') return !!hasHistory;
|
|
38481
|
+
return true;
|
|
38482
|
+
}
|
|
38483
|
+
function getInitialActiveTab(availableTabIds, defaultActiveTab) {
|
|
38484
|
+
var _availableTabIds$;
|
|
38485
|
+
if (defaultActiveTab && availableTabIds.includes(defaultActiveTab)) {
|
|
38486
|
+
return defaultActiveTab;
|
|
38487
|
+
}
|
|
38488
|
+
return (_availableTabIds$ = availableTabIds[0]) != null ? _availableTabIds$ : 'items';
|
|
38489
|
+
}
|
|
38490
|
+
function buildAvailableTabIds(params) {
|
|
38491
|
+
var tabOrder = params.tabOrder,
|
|
38492
|
+
hasCharacters = params.hasCharacters,
|
|
38493
|
+
hasRedeem = params.hasRedeem,
|
|
38494
|
+
hasWallet = params.hasWallet,
|
|
38495
|
+
hasHistory = params.hasHistory;
|
|
38496
|
+
var ids = [].concat(tabOrder != null ? tabOrder : DEFAULT_TAB_ORDER, hasCharacters ? ['characters'] : [], hasRedeem ? ['redeem'] : [], hasWallet ? ['wallet'] : [], hasHistory ? ['history'] : []);
|
|
38497
|
+
return Array.from(new Set(ids.filter(function (id) {
|
|
38498
|
+
return isTabAvailable(id, params);
|
|
38499
|
+
})));
|
|
38500
|
+
}
|
|
38501
|
+
function useStoreTabs(params) {
|
|
38502
|
+
var tabOrder = params.tabOrder,
|
|
38503
|
+
hidePremiumTab = params.hidePremiumTab,
|
|
38504
|
+
hasCharacters = params.hasCharacters,
|
|
38505
|
+
hasRedeem = params.hasRedeem,
|
|
38506
|
+
hasWallet = params.hasWallet,
|
|
38507
|
+
hasHistory = params.hasHistory,
|
|
38508
|
+
defaultActiveTab = params.defaultActiveTab,
|
|
38509
|
+
onTabChange = params.onTabChange,
|
|
38510
|
+
getItemCount = params.getItemCount;
|
|
38511
|
+
var availableTabIds = useMemo(function () {
|
|
38512
|
+
return buildAvailableTabIds({
|
|
38513
|
+
tabOrder: tabOrder,
|
|
38514
|
+
hidePremiumTab: hidePremiumTab,
|
|
38515
|
+
hasCharacters: hasCharacters,
|
|
38516
|
+
hasRedeem: hasRedeem,
|
|
38517
|
+
hasWallet: hasWallet,
|
|
38518
|
+
hasHistory: hasHistory
|
|
38519
|
+
});
|
|
38520
|
+
}, [tabOrder, hidePremiumTab, hasCharacters, hasRedeem, hasWallet, hasHistory]);
|
|
38521
|
+
var _useState = useState(function () {
|
|
38522
|
+
return getInitialActiveTab(availableTabIds, defaultActiveTab);
|
|
38523
|
+
}),
|
|
38524
|
+
activeTab = _useState[0],
|
|
38525
|
+
setActiveTab = _useState[1];
|
|
38526
|
+
var resolvedActiveTab = availableTabIds.includes(activeTab) ? activeTab : getInitialActiveTab(availableTabIds, defaultActiveTab);
|
|
38527
|
+
useEffect(function () {
|
|
38528
|
+
if (resolvedActiveTab === activeTab) {
|
|
38529
|
+
return;
|
|
38530
|
+
}
|
|
38531
|
+
setActiveTab(resolvedActiveTab);
|
|
38532
|
+
}, [activeTab, resolvedActiveTab]);
|
|
38533
|
+
var handleTabChange = function handleTabChange(tabId) {
|
|
38534
|
+
var _getItemCount;
|
|
38535
|
+
var nextTab = tabId;
|
|
38536
|
+
if (!availableTabIds.includes(nextTab) || nextTab === resolvedActiveTab) {
|
|
38537
|
+
return;
|
|
38538
|
+
}
|
|
38539
|
+
setActiveTab(nextTab);
|
|
38540
|
+
onTabChange == null ? void 0 : onTabChange(nextTab, (_getItemCount = getItemCount == null ? void 0 : getItemCount(nextTab)) != null ? _getItemCount : 0);
|
|
38541
|
+
};
|
|
38542
|
+
return {
|
|
38543
|
+
availableTabIds: availableTabIds,
|
|
38544
|
+
activeTab: resolvedActiveTab,
|
|
38545
|
+
setActiveTab: setActiveTab,
|
|
38546
|
+
handleTabChange: handleTabChange
|
|
38547
|
+
};
|
|
38548
|
+
}
|
|
38549
|
+
|
|
38550
|
+
var StoreHeader = function StoreHeader(_ref) {
|
|
38551
|
+
var tabs = _ref.tabs,
|
|
38552
|
+
activeTabId = _ref.activeTabId,
|
|
38553
|
+
onTabChange = _ref.onTabChange,
|
|
38554
|
+
cartItemCount = _ref.cartItemCount,
|
|
38555
|
+
onOpenCart = _ref.onOpenCart;
|
|
38556
|
+
return React.createElement(HeaderRow, null, React.createElement(TabsFlexWrapper, null, React.createElement(Tabs, {
|
|
38557
|
+
options: tabs.map(function (t) {
|
|
38558
|
+
return {
|
|
38559
|
+
id: t.id,
|
|
38560
|
+
label: t.label,
|
|
38561
|
+
icon: t.icon
|
|
38562
|
+
};
|
|
38563
|
+
}),
|
|
38564
|
+
activeTabId: activeTabId,
|
|
38565
|
+
onTabChange: onTabChange
|
|
38566
|
+
})), React.createElement(CartButtonWrapper, null, React.createElement(CTAButton, {
|
|
38567
|
+
icon: React.createElement(FaShoppingCart, null),
|
|
38568
|
+
onClick: onOpenCart
|
|
38569
|
+
}), cartItemCount > 0 && React.createElement(CartBadge, null, cartItemCount)));
|
|
38570
|
+
};
|
|
38571
|
+
var HeaderRow = /*#__PURE__*/styled.div.withConfig({
|
|
38572
|
+
displayName: "StoreHeader__HeaderRow",
|
|
38573
|
+
componentId: "sc-1y26lw-0"
|
|
38574
|
+
})(["display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:0.25rem;padding-top:10px;padding-right:12px;"]);
|
|
38575
|
+
var TabsFlexWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
38576
|
+
displayName: "StoreHeader__TabsFlexWrapper",
|
|
38577
|
+
componentId: "sc-1y26lw-1"
|
|
38578
|
+
})(["flex:1;min-width:0;"]);
|
|
38579
|
+
var CartButtonWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
38580
|
+
displayName: "StoreHeader__CartButtonWrapper",
|
|
38581
|
+
componentId: "sc-1y26lw-2"
|
|
38582
|
+
})(["position:relative;flex-shrink:0;"]);
|
|
38583
|
+
var CartBadge = /*#__PURE__*/styled.div.withConfig({
|
|
38584
|
+
displayName: "StoreHeader__CartBadge",
|
|
38585
|
+
componentId: "sc-1y26lw-3"
|
|
38586
|
+
})(["position:absolute;top:-8px;right:-8px;background:#ef4444;color:white;font-family:'Press Start 2P',cursive;font-size:0.5rem;padding:4px;border-radius:50%;border:2px solid #000;display:flex;align-items:center;justify-content:center;min-width:16px;min-height:16px;box-sizing:content-box;"]);
|
|
38587
|
+
|
|
38449
38588
|
var ScrollableContent = function ScrollableContent(_ref) {
|
|
38450
38589
|
var items = _ref.items,
|
|
38451
38590
|
renderItem = _ref.renderItem,
|
|
@@ -38458,8 +38597,7 @@ var ScrollableContent = function ScrollableContent(_ref) {
|
|
|
38458
38597
|
layout = _ref$layout === void 0 ? 'list' : _ref$layout,
|
|
38459
38598
|
_ref$gridColumns = _ref.gridColumns,
|
|
38460
38599
|
gridColumns = _ref$gridColumns === void 0 ? 4 : _ref$gridColumns,
|
|
38461
|
-
|
|
38462
|
-
maxHeight = _ref$maxHeight === void 0 ? '500px' : _ref$maxHeight;
|
|
38600
|
+
maxHeight = _ref.maxHeight;
|
|
38463
38601
|
if (items.length === 0) {
|
|
38464
38602
|
return React.createElement(EmptyMessage$3, null, emptyMessage);
|
|
38465
38603
|
}
|
|
@@ -38515,8 +38653,8 @@ var StyledDropdown$7 = /*#__PURE__*/styled(Dropdown).withConfig({
|
|
|
38515
38653
|
var Content$4 = /*#__PURE__*/styled.div.withConfig({
|
|
38516
38654
|
displayName: "ScrollableContent__Content",
|
|
38517
38655
|
componentId: "sc-xhh2um-7"
|
|
38518
|
-
})(["display:flex;flex-direction:column;gap:0.5rem;flex:1;padding:1rem;
|
|
38519
|
-
return
|
|
38656
|
+
})(["display:flex;flex-direction:column;gap:0.5rem;flex:1;padding:1rem;", " &.grid{display:grid;grid-template-columns:repeat( ", ",minmax(0,1fr) );gap:1rem;align-items:start;.ScrollableContent-item{display:flex;align-items:flex-start;}}&.list{display:flex;flex-direction:column;gap:0.5rem;}"], function (p) {
|
|
38657
|
+
return p.$maxHeight ? "max-height: " + p.$maxHeight + "; overflow-y: auto; overflow-x: hidden; scrollbar-gutter: stable;" : '';
|
|
38520
38658
|
}, function (props) {
|
|
38521
38659
|
return props.$gridColumns;
|
|
38522
38660
|
});
|
|
@@ -39098,7 +39236,7 @@ var TextInput = /*#__PURE__*/styled.input.withConfig({
|
|
|
39098
39236
|
componentId: "sc-ptotuo-12"
|
|
39099
39237
|
})(["width:120px;text-align:center;margin:0 auto;font-size:0.875rem;background:rgba(0,0,0,0.2);color:#ffffff;border:none;padding:0.25rem;"]);
|
|
39100
39238
|
|
|
39101
|
-
var useStoreFiltering = function useStoreFiltering(items) {
|
|
39239
|
+
var useStoreFiltering = function useStoreFiltering(items, overrideCategoryOptions) {
|
|
39102
39240
|
var _useState = useState(''),
|
|
39103
39241
|
searchQuery = _useState[0],
|
|
39104
39242
|
setSearchQuery = _useState[1];
|
|
@@ -39106,6 +39244,21 @@ var useStoreFiltering = function useStoreFiltering(items) {
|
|
|
39106
39244
|
selectedCategory = _useState2[0],
|
|
39107
39245
|
setSelectedCategory = _useState2[1];
|
|
39108
39246
|
var categoryOptions = useMemo(function () {
|
|
39247
|
+
if (overrideCategoryOptions) {
|
|
39248
|
+
var normalizedOptions = overrideCategoryOptions.some(function (opt) {
|
|
39249
|
+
return opt.value === 'all';
|
|
39250
|
+
}) ? overrideCategoryOptions : [{
|
|
39251
|
+
value: 'all',
|
|
39252
|
+
label: 'All'
|
|
39253
|
+
}].concat(overrideCategoryOptions);
|
|
39254
|
+
return normalizedOptions.map(function (opt, index) {
|
|
39255
|
+
return {
|
|
39256
|
+
id: index,
|
|
39257
|
+
value: opt.value,
|
|
39258
|
+
option: opt.label
|
|
39259
|
+
};
|
|
39260
|
+
});
|
|
39261
|
+
}
|
|
39109
39262
|
var uniqueCategories = Array.from(new Set(items.map(function (item) {
|
|
39110
39263
|
return item.itemType;
|
|
39111
39264
|
})));
|
|
@@ -39117,7 +39270,16 @@ var useStoreFiltering = function useStoreFiltering(items) {
|
|
|
39117
39270
|
option: category === 'all' ? 'All' : category
|
|
39118
39271
|
};
|
|
39119
39272
|
});
|
|
39120
|
-
}, [items]);
|
|
39273
|
+
}, [items, overrideCategoryOptions]);
|
|
39274
|
+
useEffect(function () {
|
|
39275
|
+
var _categoryOptions$0$va, _categoryOptions$;
|
|
39276
|
+
if (categoryOptions.some(function (option) {
|
|
39277
|
+
return option.value === selectedCategory;
|
|
39278
|
+
})) {
|
|
39279
|
+
return;
|
|
39280
|
+
}
|
|
39281
|
+
setSelectedCategory((_categoryOptions$0$va = (_categoryOptions$ = categoryOptions[0]) == null ? void 0 : _categoryOptions$.value) != null ? _categoryOptions$0$va : 'all');
|
|
39282
|
+
}, [categoryOptions, selectedCategory]);
|
|
39121
39283
|
var filteredItems = useMemo(function () {
|
|
39122
39284
|
return items.filter(function (item) {
|
|
39123
39285
|
var matchesSearch = item.name.toLowerCase().includes(searchQuery.toLowerCase());
|
|
@@ -39156,22 +39318,21 @@ var StoreItemsSection = function StoreItemsSection(_ref) {
|
|
|
39156
39318
|
onItemView = _ref.onItemView,
|
|
39157
39319
|
onCategoryChange = _ref.onCategoryChange,
|
|
39158
39320
|
_ref$currencySymbol = _ref.currencySymbol,
|
|
39159
|
-
currencySymbol = _ref$currencySymbol === void 0 ? '$' : _ref$currencySymbol
|
|
39160
|
-
|
|
39321
|
+
currencySymbol = _ref$currencySymbol === void 0 ? '$' : _ref$currencySymbol,
|
|
39322
|
+
categoryOptionsProp = _ref.categoryOptions;
|
|
39323
|
+
var _useStoreFiltering = useStoreFiltering(items, categoryOptionsProp),
|
|
39161
39324
|
searchQuery = _useStoreFiltering.searchQuery,
|
|
39162
39325
|
setSearchQuery = _useStoreFiltering.setSearchQuery,
|
|
39163
39326
|
selectedCategory = _useStoreFiltering.selectedCategory,
|
|
39164
39327
|
setSelectedCategory = _useStoreFiltering.setSelectedCategory,
|
|
39165
39328
|
categoryOptions = _useStoreFiltering.categoryOptions,
|
|
39166
39329
|
filteredItems = _useStoreFiltering.filteredItems;
|
|
39167
|
-
// Fire category change event when the filter changes
|
|
39168
39330
|
useEffect(function () {
|
|
39169
39331
|
onCategoryChange == null ? void 0 : onCategoryChange(selectedCategory, filteredItems.length);
|
|
39170
39332
|
}, [selectedCategory, filteredItems.length]);
|
|
39171
39333
|
var renderStoreItem = function renderStoreItem(item) {
|
|
39172
39334
|
var meta = itemBadges[item.key];
|
|
39173
39335
|
var position = filteredItems.indexOf(item);
|
|
39174
|
-
// Prefer a specialized character skin row when needed
|
|
39175
39336
|
if (item.metadataType === MetadataType.CharacterSkin) {
|
|
39176
39337
|
return React.createElement(StoreCharacterSkinRow, {
|
|
39177
39338
|
key: item.key,
|
|
@@ -39182,7 +39343,6 @@ var StoreItemsSection = function StoreItemsSection(_ref) {
|
|
|
39182
39343
|
userAccountType: userAccountType || UserAccountTypes.Free
|
|
39183
39344
|
});
|
|
39184
39345
|
}
|
|
39185
|
-
// Render text input row when configured for this item key
|
|
39186
39346
|
if (textInputItemKeys.includes(item.key)) {
|
|
39187
39347
|
return React.createElement(StoreItemRow, Object.assign({
|
|
39188
39348
|
key: item.key,
|
|
@@ -39198,7 +39358,6 @@ var StoreItemsSection = function StoreItemsSection(_ref) {
|
|
|
39198
39358
|
currencySymbol: currencySymbol
|
|
39199
39359
|
}, meta));
|
|
39200
39360
|
}
|
|
39201
|
-
// Fallback to standard arrow-based row
|
|
39202
39361
|
return React.createElement(StoreItemRow, Object.assign({
|
|
39203
39362
|
key: item.key,
|
|
39204
39363
|
item: item,
|
|
@@ -39212,19 +39371,7 @@ var StoreItemsSection = function StoreItemsSection(_ref) {
|
|
|
39212
39371
|
currencySymbol: currencySymbol
|
|
39213
39372
|
}, meta));
|
|
39214
39373
|
};
|
|
39215
|
-
|
|
39216
|
-
showFilters = _useState[0],
|
|
39217
|
-
setShowFilters = _useState[1];
|
|
39218
|
-
return React.createElement(StoreContainer, null, React.createElement(FilterBar, null, React.createElement(FilterToggle, {
|
|
39219
|
-
"$active": showFilters,
|
|
39220
|
-
onClick: function onClick() {
|
|
39221
|
-
return setShowFilters(function (prev) {
|
|
39222
|
-
return !prev;
|
|
39223
|
-
});
|
|
39224
|
-
}
|
|
39225
|
-
}, React.createElement(FaFilter, {
|
|
39226
|
-
size: 12
|
|
39227
|
-
}), React.createElement("span", null, "Filter"))), showFilters && React.createElement(SearchHeader$2, null, React.createElement(SearchBarContainer$1, null, React.createElement(SearchBar, {
|
|
39374
|
+
return React.createElement(StoreContainer, null, React.createElement(SearchHeader$2, null, React.createElement(SearchBarContainer$1, null, React.createElement(SearchBar, {
|
|
39228
39375
|
value: searchQuery,
|
|
39229
39376
|
onChange: setSearchQuery,
|
|
39230
39377
|
placeholder: "Search items..."
|
|
@@ -39236,15 +39383,12 @@ var StoreItemsSection = function StoreItemsSection(_ref) {
|
|
|
39236
39383
|
};
|
|
39237
39384
|
}),
|
|
39238
39385
|
activeId: selectedCategory,
|
|
39239
|
-
onChange:
|
|
39240
|
-
return setSelectedCategory(id);
|
|
39241
|
-
}
|
|
39386
|
+
onChange: setSelectedCategory
|
|
39242
39387
|
})), React.createElement(ScrollableContent, {
|
|
39243
39388
|
items: filteredItems,
|
|
39244
39389
|
renderItem: renderStoreItem,
|
|
39245
39390
|
emptyMessage: "No items match your filters.",
|
|
39246
|
-
layout: "list"
|
|
39247
|
-
maxHeight: "none"
|
|
39391
|
+
layout: "list"
|
|
39248
39392
|
}));
|
|
39249
39393
|
};
|
|
39250
39394
|
var StoreContainer = /*#__PURE__*/styled.div.withConfig({
|
|
@@ -39254,22 +39398,11 @@ var StoreContainer = /*#__PURE__*/styled.div.withConfig({
|
|
|
39254
39398
|
var SearchHeader$2 = /*#__PURE__*/styled.div.withConfig({
|
|
39255
39399
|
displayName: "StoreItemsSection__SearchHeader",
|
|
39256
39400
|
componentId: "sc-l6f466-1"
|
|
39257
|
-
})(["display:flex;gap:0.5rem;align-items:center;padding
|
|
39401
|
+
})(["display:flex;gap:0.5rem;align-items:center;padding:0.25rem 1rem 0;"]);
|
|
39258
39402
|
var SearchBarContainer$1 = /*#__PURE__*/styled.div.withConfig({
|
|
39259
39403
|
displayName: "StoreItemsSection__SearchBarContainer",
|
|
39260
39404
|
componentId: "sc-l6f466-2"
|
|
39261
39405
|
})(["flex:0.75;"]);
|
|
39262
|
-
var FilterBar = /*#__PURE__*/styled.div.withConfig({
|
|
39263
|
-
displayName: "StoreItemsSection__FilterBar",
|
|
39264
|
-
componentId: "sc-l6f466-3"
|
|
39265
|
-
})(["display:flex;padding-top:0.25rem;"]);
|
|
39266
|
-
var FilterToggle = /*#__PURE__*/styled.button.withConfig({
|
|
39267
|
-
displayName: "StoreItemsSection__FilterToggle",
|
|
39268
|
-
componentId: "sc-l6f466-4"
|
|
39269
|
-
})(["display:flex;align-items:center;gap:0.4rem;background:", ";border:1px solid rgba(255,255,255,0.3);color:#fff;padding:0.3rem 0.6rem;border-radius:4px;cursor:pointer;font-family:'Press Start 2P',cursive;font-size:0.55rem;&:hover{background:rgba(255,255,255,0.1);}"], function (_ref2) {
|
|
39270
|
-
var $active = _ref2.$active;
|
|
39271
|
-
return $active ? 'rgba(255,255,255,0.15)' : 'transparent';
|
|
39272
|
-
});
|
|
39273
39406
|
|
|
39274
39407
|
var usePackFiltering = function usePackFiltering(packs) {
|
|
39275
39408
|
var _useState = useState(''),
|
|
@@ -39417,8 +39550,7 @@ var StorePacksSection = function StorePacksSection(_ref2) {
|
|
|
39417
39550
|
onChange: setSearchQuery,
|
|
39418
39551
|
placeholder: 'Search packs...'
|
|
39419
39552
|
},
|
|
39420
|
-
layout: "list"
|
|
39421
|
-
maxHeight: "50vh"
|
|
39553
|
+
layout: "list"
|
|
39422
39554
|
});
|
|
39423
39555
|
};
|
|
39424
39556
|
var PackRow = /*#__PURE__*/styled(ItemRowWrapper).withConfig({
|
|
@@ -39722,7 +39854,7 @@ var Store = function Store(_ref) {
|
|
|
39722
39854
|
packs = _ref$packs === void 0 ? [] : _ref$packs,
|
|
39723
39855
|
atlasJSON = _ref.atlasJSON,
|
|
39724
39856
|
atlasIMG = _ref.atlasIMG,
|
|
39725
|
-
|
|
39857
|
+
_onPurchase = _ref.onPurchase,
|
|
39726
39858
|
onShowHistory = _ref.onShowHistory,
|
|
39727
39859
|
onShowWallet = _ref.onShowWallet,
|
|
39728
39860
|
walletLabel = _ref.walletLabel,
|
|
@@ -39743,11 +39875,6 @@ var Store = function Store(_ref) {
|
|
|
39743
39875
|
customHistoryContent = _ref.customHistoryContent,
|
|
39744
39876
|
_ref$fullScreen = _ref.fullScreen,
|
|
39745
39877
|
fullScreen = _ref$fullScreen === void 0 ? false : _ref$fullScreen,
|
|
39746
|
-
containerWidth = _ref.containerWidth,
|
|
39747
|
-
containerHeight = _ref.containerHeight,
|
|
39748
|
-
mobileContainerWidth = _ref.mobileContainerWidth,
|
|
39749
|
-
mobileContainerHeight = _ref.mobileContainerHeight,
|
|
39750
|
-
mobileBreakpoint = _ref.mobileBreakpoint,
|
|
39751
39878
|
_ref$packsTabLabel = _ref.packsTabLabel,
|
|
39752
39879
|
packsTabLabel = _ref$packsTabLabel === void 0 ? 'Packs' : _ref$packsTabLabel,
|
|
39753
39880
|
packsBadge = _ref.packsBadge,
|
|
@@ -39757,7 +39884,7 @@ var Store = function Store(_ref) {
|
|
|
39757
39884
|
packBadges = _ref.packBadges,
|
|
39758
39885
|
onItemView = _ref.onItemView,
|
|
39759
39886
|
onPackView = _ref.onPackView,
|
|
39760
|
-
|
|
39887
|
+
onTabChange = _ref.onTabChange,
|
|
39761
39888
|
onCategoryChange = _ref.onCategoryChange,
|
|
39762
39889
|
onCartOpen = _ref.onCartOpen,
|
|
39763
39890
|
onAddToCart = _ref.onAddToCart,
|
|
@@ -39770,24 +39897,15 @@ var Store = function Store(_ref) {
|
|
|
39770
39897
|
currencySymbol = _ref$currencySymbol === void 0 ? '$' : _ref$currencySymbol,
|
|
39771
39898
|
onRedeem = _ref.onRedeem,
|
|
39772
39899
|
onRedeemInputFocus = _ref.onRedeemInputFocus,
|
|
39773
|
-
onRedeemInputBlur = _ref.onRedeemInputBlur
|
|
39774
|
-
|
|
39900
|
+
onRedeemInputBlur = _ref.onRedeemInputBlur,
|
|
39901
|
+
_ref$width = _ref.width,
|
|
39902
|
+
width = _ref$width === void 0 ? '1000px' : _ref$width,
|
|
39903
|
+
_ref$height = _ref.height,
|
|
39904
|
+
height = _ref$height === void 0 ? 'min(85vh, 900px)' : _ref$height,
|
|
39905
|
+
itemCategoryOptions = _ref.itemCategoryOptions;
|
|
39775
39906
|
var _useState = useState(null),
|
|
39776
39907
|
selectedPack = _useState[0],
|
|
39777
39908
|
setSelectedPack = _useState[1];
|
|
39778
|
-
var _useState2 = useState(function () {
|
|
39779
|
-
var _validTabs$;
|
|
39780
|
-
var allTabIds = [].concat(tabOrder != null ? tabOrder : defaultTabOrder, customCharactersContent ? ['characters'] : [], onRedeem ? ['redeem'] : [], onShowWallet || customWalletContent ? ['wallet'] : [], onShowHistory || customHistoryContent ? ['history'] : []);
|
|
39781
|
-
var validTabs = Array.from(new Set(allTabIds.filter(function (id) {
|
|
39782
|
-
return !(hidePremiumTab && id === 'premium');
|
|
39783
|
-
})));
|
|
39784
|
-
if (defaultActiveTab && validTabs.includes(defaultActiveTab)) {
|
|
39785
|
-
return defaultActiveTab;
|
|
39786
|
-
}
|
|
39787
|
-
return (_validTabs$ = validTabs[0]) != null ? _validTabs$ : hidePremiumTab ? 'items' : 'premium';
|
|
39788
|
-
}),
|
|
39789
|
-
activeTab = _useState2[0],
|
|
39790
|
-
setActiveTab = _useState2[1];
|
|
39791
39909
|
var _useStoreCart = useStoreCart(),
|
|
39792
39910
|
cartItems = _useStoreCart.cartItems,
|
|
39793
39911
|
handleAddToCart = _useStoreCart.handleAddToCart,
|
|
@@ -39797,13 +39915,38 @@ var Store = function Store(_ref) {
|
|
|
39797
39915
|
closeCart = _useStoreCart.closeCart,
|
|
39798
39916
|
getTotalItems = _useStoreCart.getTotalItems,
|
|
39799
39917
|
getTotalPrice = _useStoreCart.getTotalPrice,
|
|
39800
|
-
isCartOpen = _useStoreCart.isCartOpen
|
|
39801
|
-
|
|
39802
|
-
|
|
39803
|
-
|
|
39804
|
-
var
|
|
39805
|
-
|
|
39806
|
-
|
|
39918
|
+
isCartOpen = _useStoreCart.isCartOpen,
|
|
39919
|
+
isCollectingMetadata = _useStoreCart.isCollectingMetadata,
|
|
39920
|
+
currentMetadataItem = _useStoreCart.currentMetadataItem,
|
|
39921
|
+
resolveMetadata = _useStoreCart.resolveMetadata;
|
|
39922
|
+
var filteredItems = useMemo(function () {
|
|
39923
|
+
return {
|
|
39924
|
+
items: items,
|
|
39925
|
+
premium: items.filter(function (item) {
|
|
39926
|
+
var _item$requiredAccount, _item$requiredAccount2;
|
|
39927
|
+
return ((_item$requiredAccount = (_item$requiredAccount2 = item.requiredAccountType) == null ? void 0 : _item$requiredAccount2.length) != null ? _item$requiredAccount : 0) > 0;
|
|
39928
|
+
})
|
|
39929
|
+
};
|
|
39930
|
+
}, [items]);
|
|
39931
|
+
var _useStoreTabs = useStoreTabs({
|
|
39932
|
+
tabOrder: tabOrder,
|
|
39933
|
+
defaultActiveTab: defaultActiveTab,
|
|
39934
|
+
hidePremiumTab: hidePremiumTab,
|
|
39935
|
+
hasCharacters: !!customCharactersContent,
|
|
39936
|
+
hasRedeem: !!onRedeem,
|
|
39937
|
+
hasWallet: !!(onShowWallet || customWalletContent),
|
|
39938
|
+
hasHistory: !!(onShowHistory || customHistoryContent),
|
|
39939
|
+
onTabChange: onTabChange,
|
|
39940
|
+
getItemCount: function getItemCount(tab) {
|
|
39941
|
+
if (tab === 'items') return filteredItems.items.length;
|
|
39942
|
+
if (tab === 'premium') return filteredItems.premium.length;
|
|
39943
|
+
if (tab === 'packs') return packs.length;
|
|
39944
|
+
return 0;
|
|
39945
|
+
}
|
|
39946
|
+
}),
|
|
39947
|
+
availableTabIds = _useStoreTabs.availableTabIds,
|
|
39948
|
+
activeTab = _useStoreTabs.activeTab,
|
|
39949
|
+
handleTabChange = _useStoreTabs.handleTabChange;
|
|
39807
39950
|
var handleOpenCart = function handleOpenCart() {
|
|
39808
39951
|
openCart();
|
|
39809
39952
|
onCartOpen == null ? void 0 : onCartOpen();
|
|
@@ -39820,85 +39963,13 @@ var Store = function Store(_ref) {
|
|
|
39820
39963
|
if (quantity === void 0) {
|
|
39821
39964
|
quantity = 1;
|
|
39822
39965
|
}
|
|
39823
|
-
var
|
|
39824
|
-
|
|
39825
|
-
|
|
39826
|
-
description: pack.description || '',
|
|
39827
|
-
price: pack.priceUSD,
|
|
39828
|
-
currency: PaymentCurrency.USD,
|
|
39829
|
-
texturePath: pack.image["default"] || pack.image.src,
|
|
39830
|
-
type: PurchaseType.Pack,
|
|
39831
|
-
onPurchase: function () {
|
|
39832
|
-
var _onPurchase = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
39833
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
39834
|
-
while (1) switch (_context.prev = _context.next) {
|
|
39835
|
-
case 0:
|
|
39836
|
-
case "end":
|
|
39837
|
-
return _context.stop();
|
|
39838
|
-
}
|
|
39839
|
-
}, _callee);
|
|
39840
|
-
}));
|
|
39841
|
-
function onPurchase() {
|
|
39842
|
-
return _onPurchase.apply(this, arguments);
|
|
39843
|
-
}
|
|
39844
|
-
return onPurchase;
|
|
39845
|
-
}(),
|
|
39846
|
-
itemType: ItemType.Consumable,
|
|
39847
|
-
itemSubType: ItemSubType.Other,
|
|
39848
|
-
rarity: ItemRarities.Common,
|
|
39849
|
-
weight: 0,
|
|
39850
|
-
isStackable: false,
|
|
39851
|
-
maxStackSize: 1,
|
|
39852
|
-
isUsable: false
|
|
39853
|
-
};
|
|
39854
|
-
handleAddToCart(packItem, quantity);
|
|
39855
|
-
onAddToCart == null ? void 0 : onAddToCart(packItem, quantity);
|
|
39856
|
-
};
|
|
39857
|
-
var filterItems = function filterItems(itemsToFilter, type) {
|
|
39858
|
-
return itemsToFilter.filter(function (item) {
|
|
39859
|
-
if (type === 'premium') {
|
|
39860
|
-
var _item$requiredAccount, _item$requiredAccount2;
|
|
39861
|
-
return (_item$requiredAccount = (_item$requiredAccount2 = item.requiredAccountType) == null ? void 0 : _item$requiredAccount2.length) != null ? _item$requiredAccount : 0 > 0;
|
|
39862
|
-
}
|
|
39863
|
-
return true;
|
|
39864
|
-
});
|
|
39865
|
-
};
|
|
39866
|
-
var filteredItems = useMemo(function () {
|
|
39867
|
-
return {
|
|
39868
|
-
items: filterItems(items, 'items'),
|
|
39869
|
-
premium: filterItems(items, 'premium')
|
|
39870
|
-
};
|
|
39871
|
-
}, [items]);
|
|
39872
|
-
var handleMetadataCollected = function handleMetadataCollected(metadata) {
|
|
39873
|
-
if (currentMetadataItem && window.__metadataResolvers) {
|
|
39874
|
-
// Resolve the promise in the useStoreMetadata hook
|
|
39875
|
-
window.__metadataResolvers.resolve(metadata);
|
|
39876
|
-
// Reset the metadata collection state
|
|
39877
|
-
setCurrentMetadataItem(null);
|
|
39878
|
-
// Removed unused setPendingMetadataQuantity call
|
|
39879
|
-
}
|
|
39880
|
-
};
|
|
39881
|
-
var handleMetadataCancel = function handleMetadataCancel() {
|
|
39882
|
-
if (window.__metadataResolvers) {
|
|
39883
|
-
// Resolve with null to indicate cancellation
|
|
39884
|
-
window.__metadataResolvers.resolve(null);
|
|
39885
|
-
}
|
|
39886
|
-
// Reset the metadata collection state
|
|
39887
|
-
setCurrentMetadataItem(null);
|
|
39888
|
-
// Removed unused setPendingMetadataQuantity call
|
|
39889
|
-
setIsCollectingMetadata(false);
|
|
39966
|
+
var bp = packToBlueprint(pack);
|
|
39967
|
+
handleAddToCart(bp, quantity);
|
|
39968
|
+
onAddToCart == null ? void 0 : onAddToCart(bp, quantity);
|
|
39890
39969
|
};
|
|
39891
|
-
|
|
39892
|
-
return
|
|
39893
|
-
}
|
|
39894
|
-
if (error) {
|
|
39895
|
-
return React.createElement(ErrorMessage$3, null, error);
|
|
39896
|
-
}
|
|
39897
|
-
// Build tabs dynamically based on props
|
|
39898
|
-
var tabIds = [].concat(tabOrder != null ? tabOrder : defaultTabOrder, customCharactersContent ? ['characters'] : [], onRedeem ? ['redeem'] : [], onShowWallet || customWalletContent ? ['wallet'] : [], onShowHistory || customHistoryContent ? ['history'] : []);
|
|
39899
|
-
var availableTabIds = Array.from(new Set(tabIds.filter(function (id) {
|
|
39900
|
-
return !(hidePremiumTab && id === 'premium');
|
|
39901
|
-
})));
|
|
39970
|
+
var makePackQuickBuy = onQuickBuy ? function (pack, qty) {
|
|
39971
|
+
return onQuickBuy(packToBlueprint(pack), qty);
|
|
39972
|
+
} : undefined;
|
|
39902
39973
|
var tabsMap = {
|
|
39903
39974
|
premium: {
|
|
39904
39975
|
id: 'premium',
|
|
@@ -39912,40 +39983,7 @@ var Store = function Store(_ref) {
|
|
|
39912
39983
|
return pack.priceUSD >= 9.99;
|
|
39913
39984
|
}),
|
|
39914
39985
|
onAddToCart: handleAddPackToCart,
|
|
39915
|
-
onQuickBuy:
|
|
39916
|
-
var bp = {
|
|
39917
|
-
key: pack.key,
|
|
39918
|
-
name: pack.title,
|
|
39919
|
-
description: pack.description || '',
|
|
39920
|
-
price: pack.priceUSD,
|
|
39921
|
-
currency: PaymentCurrency.USD,
|
|
39922
|
-
texturePath: pack.image["default"] || pack.image.src,
|
|
39923
|
-
type: PurchaseType.Pack,
|
|
39924
|
-
onPurchase: function () {
|
|
39925
|
-
var _onPurchase2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
39926
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
39927
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
39928
|
-
case 0:
|
|
39929
|
-
case "end":
|
|
39930
|
-
return _context2.stop();
|
|
39931
|
-
}
|
|
39932
|
-
}, _callee2);
|
|
39933
|
-
}));
|
|
39934
|
-
function onPurchase() {
|
|
39935
|
-
return _onPurchase2.apply(this, arguments);
|
|
39936
|
-
}
|
|
39937
|
-
return onPurchase;
|
|
39938
|
-
}(),
|
|
39939
|
-
itemType: ItemType.Consumable,
|
|
39940
|
-
itemSubType: ItemSubType.Other,
|
|
39941
|
-
rarity: ItemRarities.Common,
|
|
39942
|
-
weight: 0,
|
|
39943
|
-
isStackable: false,
|
|
39944
|
-
maxStackSize: 1,
|
|
39945
|
-
isUsable: false
|
|
39946
|
-
};
|
|
39947
|
-
onQuickBuy(bp, qty);
|
|
39948
|
-
} : undefined,
|
|
39986
|
+
onQuickBuy: makePackQuickBuy,
|
|
39949
39987
|
onSelectPack: setSelectedPack,
|
|
39950
39988
|
atlasJSON: atlasJSON,
|
|
39951
39989
|
atlasIMG: atlasIMG,
|
|
@@ -39970,40 +40008,7 @@ var Store = function Store(_ref) {
|
|
|
39970
40008
|
return pack.priceUSD < 9.99;
|
|
39971
40009
|
}),
|
|
39972
40010
|
onAddToCart: handleAddPackToCart,
|
|
39973
|
-
onQuickBuy:
|
|
39974
|
-
var bp = {
|
|
39975
|
-
key: pack.key,
|
|
39976
|
-
name: pack.title,
|
|
39977
|
-
description: pack.description || '',
|
|
39978
|
-
price: pack.priceUSD,
|
|
39979
|
-
currency: PaymentCurrency.USD,
|
|
39980
|
-
texturePath: pack.image["default"] || pack.image.src,
|
|
39981
|
-
type: PurchaseType.Pack,
|
|
39982
|
-
onPurchase: function () {
|
|
39983
|
-
var _onPurchase3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
39984
|
-
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
39985
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
39986
|
-
case 0:
|
|
39987
|
-
case "end":
|
|
39988
|
-
return _context3.stop();
|
|
39989
|
-
}
|
|
39990
|
-
}, _callee3);
|
|
39991
|
-
}));
|
|
39992
|
-
function onPurchase() {
|
|
39993
|
-
return _onPurchase3.apply(this, arguments);
|
|
39994
|
-
}
|
|
39995
|
-
return onPurchase;
|
|
39996
|
-
}(),
|
|
39997
|
-
itemType: ItemType.Consumable,
|
|
39998
|
-
itemSubType: ItemSubType.Other,
|
|
39999
|
-
rarity: ItemRarities.Common,
|
|
40000
|
-
weight: 0,
|
|
40001
|
-
isStackable: false,
|
|
40002
|
-
maxStackSize: 1,
|
|
40003
|
-
isUsable: false
|
|
40004
|
-
};
|
|
40005
|
-
onQuickBuy(bp, qty);
|
|
40006
|
-
} : undefined,
|
|
40011
|
+
onQuickBuy: makePackQuickBuy,
|
|
40007
40012
|
onSelectPack: setSelectedPack,
|
|
40008
40013
|
atlasJSON: atlasJSON,
|
|
40009
40014
|
atlasIMG: atlasIMG,
|
|
@@ -40022,7 +40027,7 @@ var Store = function Store(_ref) {
|
|
|
40022
40027
|
content: React.createElement(StoreItemsSection, {
|
|
40023
40028
|
items: filteredItems.items,
|
|
40024
40029
|
onAddToCart: handleAddToCartTracked,
|
|
40025
|
-
onQuickBuy: onQuickBuy ? function (item, qty
|
|
40030
|
+
onQuickBuy: onQuickBuy ? function (item, qty) {
|
|
40026
40031
|
return onQuickBuy(item, qty);
|
|
40027
40032
|
} : undefined,
|
|
40028
40033
|
atlasJSON: atlasJSON,
|
|
@@ -40032,7 +40037,8 @@ var Store = function Store(_ref) {
|
|
|
40032
40037
|
itemBadges: itemBadges,
|
|
40033
40038
|
onItemView: onItemView,
|
|
40034
40039
|
onCategoryChange: onCategoryChange,
|
|
40035
|
-
currencySymbol: currencySymbol
|
|
40040
|
+
currencySymbol: currencySymbol,
|
|
40041
|
+
categoryOptions: itemCategoryOptions
|
|
40036
40042
|
})
|
|
40037
40043
|
},
|
|
40038
40044
|
characters: {
|
|
@@ -40082,42 +40088,42 @@ var Store = function Store(_ref) {
|
|
|
40082
40088
|
}))
|
|
40083
40089
|
}
|
|
40084
40090
|
};
|
|
40091
|
+
if (loading) return React.createElement(LoadingMessage$1, null, "Loading...");
|
|
40092
|
+
if (error) return React.createElement(ErrorMessage$3, null, error);
|
|
40085
40093
|
return React.createElement(DraggableContainer, {
|
|
40086
|
-
title: "Store",
|
|
40087
40094
|
onCloseButton: onClose,
|
|
40088
|
-
width:
|
|
40095
|
+
width: width,
|
|
40089
40096
|
minWidth: "700px",
|
|
40090
|
-
height:
|
|
40091
|
-
mobileWidth: mobileContainerWidth != null ? mobileContainerWidth : "95vw",
|
|
40092
|
-
mobileHeight: mobileContainerHeight != null ? mobileContainerHeight : "95vh",
|
|
40093
|
-
mobileBreakpoint: mobileBreakpoint,
|
|
40097
|
+
height: height,
|
|
40094
40098
|
type: RPGUIContainerTypes.Framed,
|
|
40095
|
-
cancelDrag: "
|
|
40099
|
+
cancelDrag: ".store-scroll-area, [class*='CartView'], [class*='StoreItemDetails'], .close-button",
|
|
40096
40100
|
isFullScreen: fullScreen
|
|
40097
|
-
}, isCollectingMetadata && currentMetadataItem && currentMetadataItem.metadataType ? React.createElement(MetadataCollector, {
|
|
40101
|
+
}, isCollectingMetadata && currentMetadataItem != null && currentMetadataItem.metadataType ? React.createElement(MetadataCollector, {
|
|
40098
40102
|
metadataType: currentMetadataItem.metadataType,
|
|
40099
40103
|
config: currentMetadataItem.metadataConfig || {},
|
|
40100
|
-
onCollect:
|
|
40101
|
-
onCancel:
|
|
40104
|
+
onCollect: resolveMetadata,
|
|
40105
|
+
onCancel: function onCancel() {
|
|
40106
|
+
return resolveMetadata(null);
|
|
40107
|
+
}
|
|
40102
40108
|
}) : isCartOpen ? React.createElement(CartView, {
|
|
40103
40109
|
cartItems: cartItems,
|
|
40104
40110
|
onRemoveFromCart: handleRemoveFromCartTracked,
|
|
40105
40111
|
onClose: closeCart,
|
|
40106
40112
|
onPurchase: function () {
|
|
40107
|
-
var
|
|
40108
|
-
return _regeneratorRuntime().wrap(function
|
|
40109
|
-
while (1) switch (
|
|
40113
|
+
var _onPurchase2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
40114
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
40115
|
+
while (1) switch (_context.prev = _context.next) {
|
|
40110
40116
|
case 0:
|
|
40111
|
-
handleCartPurchase(
|
|
40112
|
-
return
|
|
40117
|
+
handleCartPurchase(_onPurchase);
|
|
40118
|
+
return _context.abrupt("return", true);
|
|
40113
40119
|
case 2:
|
|
40114
40120
|
case "end":
|
|
40115
|
-
return
|
|
40121
|
+
return _context.stop();
|
|
40116
40122
|
}
|
|
40117
|
-
},
|
|
40123
|
+
}, _callee);
|
|
40118
40124
|
}));
|
|
40119
40125
|
function onPurchase() {
|
|
40120
|
-
return
|
|
40126
|
+
return _onPurchase2.apply(this, arguments);
|
|
40121
40127
|
}
|
|
40122
40128
|
return onPurchase;
|
|
40123
40129
|
}(),
|
|
@@ -40141,7 +40147,9 @@ var Store = function Store(_ref) {
|
|
|
40141
40147
|
return handleAddPackToCart(selectedPack);
|
|
40142
40148
|
},
|
|
40143
40149
|
currencySymbol: currencySymbol
|
|
40144
|
-
}) : React.createElement(Container$Q,
|
|
40150
|
+
}) : React.createElement(Container$Q, {
|
|
40151
|
+
className: "store-scroll-area"
|
|
40152
|
+
}, featuredItems && featuredItems.length > 0 && React.createElement(FeaturedBanner, {
|
|
40145
40153
|
items: featuredItems,
|
|
40146
40154
|
atlasJSON: atlasJSON,
|
|
40147
40155
|
atlasIMG: atlasIMG,
|
|
@@ -40155,48 +40163,17 @@ var Store = function Store(_ref) {
|
|
|
40155
40163
|
var blueprint = items.find(function (bp) {
|
|
40156
40164
|
return bp.key === item.key;
|
|
40157
40165
|
});
|
|
40158
|
-
if (blueprint)
|
|
40166
|
+
if (blueprint) {
|
|
40167
|
+
onQuickBuy(blueprint, 1);
|
|
40168
|
+
} else {
|
|
40159
40169
|
var pack = packs.find(function (p) {
|
|
40160
40170
|
return p.key === item.key;
|
|
40161
40171
|
});
|
|
40162
|
-
if (pack)
|
|
40163
|
-
var packBlueprint = {
|
|
40164
|
-
key: pack.key,
|
|
40165
|
-
name: pack.title,
|
|
40166
|
-
description: pack.description || '',
|
|
40167
|
-
price: pack.priceUSD,
|
|
40168
|
-
currency: PaymentCurrency.USD,
|
|
40169
|
-
texturePath: pack.image["default"] || pack.image.src,
|
|
40170
|
-
type: PurchaseType.Pack,
|
|
40171
|
-
onPurchase: function () {
|
|
40172
|
-
var _onPurchase6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
40173
|
-
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
40174
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
40175
|
-
case 0:
|
|
40176
|
-
case "end":
|
|
40177
|
-
return _context5.stop();
|
|
40178
|
-
}
|
|
40179
|
-
}, _callee5);
|
|
40180
|
-
}));
|
|
40181
|
-
function onPurchase() {
|
|
40182
|
-
return _onPurchase6.apply(this, arguments);
|
|
40183
|
-
}
|
|
40184
|
-
return onPurchase;
|
|
40185
|
-
}(),
|
|
40186
|
-
itemType: ItemType.Consumable,
|
|
40187
|
-
itemSubType: ItemSubType.Other,
|
|
40188
|
-
rarity: ItemRarities.Common,
|
|
40189
|
-
weight: 0,
|
|
40190
|
-
isStackable: false,
|
|
40191
|
-
maxStackSize: 1,
|
|
40192
|
-
isUsable: false
|
|
40193
|
-
};
|
|
40194
|
-
onQuickBuy(packBlueprint, 1);
|
|
40195
|
-
}
|
|
40172
|
+
if (pack) onQuickBuy(packToBlueprint(pack), 1);
|
|
40196
40173
|
}
|
|
40197
40174
|
} : undefined
|
|
40198
|
-
}), React.createElement(MainContent$1, null, React.createElement(
|
|
40199
|
-
|
|
40175
|
+
}), React.createElement(MainContent$1, null, React.createElement(StoreHeader, {
|
|
40176
|
+
tabs: availableTabIds.map(function (id) {
|
|
40200
40177
|
var _tabsMap$id, _tabsMap$id2;
|
|
40201
40178
|
return {
|
|
40202
40179
|
id: id,
|
|
@@ -40205,20 +40182,12 @@ var Store = function Store(_ref) {
|
|
|
40205
40182
|
};
|
|
40206
40183
|
}),
|
|
40207
40184
|
activeTabId: activeTab,
|
|
40208
|
-
onTabChange:
|
|
40209
|
-
|
|
40210
|
-
|
|
40211
|
-
|
|
40212
|
-
var itemCount = nextTab === 'items' ? filteredItems.items.length : nextTab === 'premium' ? filteredItems.premium.length : nextTab === 'packs' ? packs.length : 0;
|
|
40213
|
-
_onTabChange(nextTab, itemCount);
|
|
40214
|
-
}
|
|
40215
|
-
}
|
|
40216
|
-
})), React.createElement(CartButtonWrapper, null, React.createElement(CTAButton, {
|
|
40217
|
-
icon: React.createElement(FaShoppingCart, null),
|
|
40218
|
-
onClick: handleOpenCart
|
|
40219
|
-
}), getTotalItems() > 0 && React.createElement(CartBadge, null, getTotalItems()))), React.createElement(TabContent, null, (_tabsMap$activeTab = tabsMap[activeTab]) == null ? void 0 : _tabsMap$activeTab.content)), cartItems.length > 0 && React.createElement(Footer$3, null, React.createElement(CTAButton, {
|
|
40185
|
+
onTabChange: handleTabChange,
|
|
40186
|
+
cartItemCount: getTotalItems(),
|
|
40187
|
+
onOpenCart: handleOpenCart
|
|
40188
|
+
}), React.createElement(TabContent, null, (_tabsMap$activeTab = tabsMap[activeTab]) == null ? void 0 : _tabsMap$activeTab.content)), cartItems.length > 0 && React.createElement(Footer$3, null, React.createElement(CTAButton, {
|
|
40220
40189
|
icon: React.createElement(FaShoppingCart, null),
|
|
40221
|
-
label: "
|
|
40190
|
+
label: "Proceed to Checkout (" + currencySymbol + getTotalPrice().toFixed(2) + ")",
|
|
40222
40191
|
onClick: handleOpenCart,
|
|
40223
40192
|
fullWidth: true
|
|
40224
40193
|
}))));
|
|
@@ -40226,50 +40195,34 @@ var Store = function Store(_ref) {
|
|
|
40226
40195
|
var Container$Q = /*#__PURE__*/styled.div.withConfig({
|
|
40227
40196
|
displayName: "Store__Container",
|
|
40228
40197
|
componentId: "sc-64dj00-0"
|
|
40229
|
-
})(["display:flex;flex-direction:column;width:100%;height:
|
|
40230
|
-
var HeaderRow = /*#__PURE__*/styled.div.withConfig({
|
|
40231
|
-
displayName: "Store__HeaderRow",
|
|
40232
|
-
componentId: "sc-64dj00-1"
|
|
40233
|
-
})(["display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:0.25rem;padding-top:10px;padding-right:12px;"]);
|
|
40234
|
-
var TabsFlexWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
40235
|
-
displayName: "Store__TabsFlexWrapper",
|
|
40236
|
-
componentId: "sc-64dj00-2"
|
|
40237
|
-
})(["flex:1;min-width:0;"]);
|
|
40238
|
-
var CartButtonWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
40239
|
-
displayName: "Store__CartButtonWrapper",
|
|
40240
|
-
componentId: "sc-64dj00-3"
|
|
40241
|
-
})(["position:relative;flex-shrink:0;"]);
|
|
40242
|
-
var CartBadge = /*#__PURE__*/styled.div.withConfig({
|
|
40243
|
-
displayName: "Store__CartBadge",
|
|
40244
|
-
componentId: "sc-64dj00-4"
|
|
40245
|
-
})(["position:absolute;top:-8px;right:-8px;background:#ef4444;color:white;font-family:'Press Start 2P',cursive;font-size:0.5rem;padding:4px;border-radius:50%;border:2px solid #000;display:flex;align-items:center;justify-content:center;min-width:16px;min-height:16px;box-sizing:content-box;"]);
|
|
40198
|
+
})(["display:flex;flex-direction:column;width:100%;height:100%;gap:0.5rem;position:relative;overflow:hidden;"]);
|
|
40246
40199
|
var MainContent$1 = /*#__PURE__*/styled.div.withConfig({
|
|
40247
40200
|
displayName: "Store__MainContent",
|
|
40248
|
-
componentId: "sc-64dj00-
|
|
40201
|
+
componentId: "sc-64dj00-1"
|
|
40249
40202
|
})(["flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;"]);
|
|
40250
40203
|
var TabContent = /*#__PURE__*/styled.div.withConfig({
|
|
40251
40204
|
displayName: "Store__TabContent",
|
|
40252
|
-
componentId: "sc-64dj00-
|
|
40205
|
+
componentId: "sc-64dj00-2"
|
|
40253
40206
|
})(["flex:1;overflow-y:auto;"]);
|
|
40254
40207
|
var Footer$3 = /*#__PURE__*/styled.div.withConfig({
|
|
40255
40208
|
displayName: "Store__Footer",
|
|
40256
|
-
componentId: "sc-64dj00-
|
|
40257
|
-
})(["padding:
|
|
40209
|
+
componentId: "sc-64dj00-3"
|
|
40210
|
+
})(["padding:1rem;border-top:2px solid #f59e0b;background:rgba(0,0,0,0.2);flex-shrink:0;"]);
|
|
40258
40211
|
var TabLabelWithBadge = /*#__PURE__*/styled.span.withConfig({
|
|
40259
40212
|
displayName: "Store__TabLabelWithBadge",
|
|
40260
|
-
componentId: "sc-64dj00-
|
|
40213
|
+
componentId: "sc-64dj00-4"
|
|
40261
40214
|
})(["display:inline-flex;align-items:center;gap:5px;"]);
|
|
40262
40215
|
var LoadingMessage$1 = /*#__PURE__*/styled.div.withConfig({
|
|
40263
40216
|
displayName: "Store__LoadingMessage",
|
|
40264
|
-
componentId: "sc-64dj00-
|
|
40217
|
+
componentId: "sc-64dj00-5"
|
|
40265
40218
|
})(["text-align:center;color:", ";padding:2rem;"], uiColors.white);
|
|
40266
40219
|
var ErrorMessage$3 = /*#__PURE__*/styled.div.withConfig({
|
|
40267
40220
|
displayName: "Store__ErrorMessage",
|
|
40268
|
-
componentId: "sc-64dj00-
|
|
40221
|
+
componentId: "sc-64dj00-6"
|
|
40269
40222
|
})(["text-align:center;color:", ";padding:2rem;"], uiColors.red);
|
|
40270
40223
|
var CenteredContent = /*#__PURE__*/styled.div.withConfig({
|
|
40271
40224
|
displayName: "Store__CenteredContent",
|
|
40272
|
-
componentId: "sc-64dj00-
|
|
40225
|
+
componentId: "sc-64dj00-7"
|
|
40273
40226
|
})(["display:flex;align-items:center;justify-content:center;height:100%;padding:2rem;"]);
|
|
40274
40227
|
|
|
40275
40228
|
var TextArea = function TextArea(_ref) {
|