tf-checkout-react-native 2.0.0-beta.18 → 2.0.0-beta.19
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/README.md +8 -8
- package/dist/index.d.mts +42 -2
- package/dist/index.d.ts +42 -2
- package/dist/index.js +500 -303
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +377 -180
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/sections/Tickets.tsx +99 -50
package/dist/index.mjs
CHANGED
|
@@ -2446,6 +2446,8 @@ import { useQueryClient as useQueryClient14 } from "@tanstack/react-query";
|
|
|
2446
2446
|
import { useEffect as useEffect22, useRef as useRef27, useState as useState29 } from "react";
|
|
2447
2447
|
import { useEffect as useEffect23, useRef as useRef28, useState as useState30 } from "react";
|
|
2448
2448
|
import { useQueryClient as useQueryClient15 } from "@tanstack/react-query";
|
|
2449
|
+
import { useQueryClient as useQueryClient16 } from "@tanstack/react-query";
|
|
2450
|
+
import { useCallback as useCallback14, useEffect as useEffect24, useMemo as useMemo16, useSyncExternalStore as useSyncExternalStore20 } from "react";
|
|
2449
2451
|
var __defProp = Object.defineProperty;
|
|
2450
2452
|
var __export = (target, all) => {
|
|
2451
2453
|
for (var name in all)
|
|
@@ -8521,6 +8523,27 @@ var waitingListEntryFrom = (definition, draft) => {
|
|
|
8521
8523
|
quantity
|
|
8522
8524
|
};
|
|
8523
8525
|
};
|
|
8526
|
+
var calendarTicketRows = (base, dated) => {
|
|
8527
|
+
const ids = new Set(dated.map((ticket) => ticket.id));
|
|
8528
|
+
return [
|
|
8529
|
+
...dated,
|
|
8530
|
+
...base.filter((ticket) => ticket.isRegularTicket === true && !ids.has(ticket.id))
|
|
8531
|
+
];
|
|
8532
|
+
};
|
|
8533
|
+
var catalogDate = (selected, dates) => {
|
|
8534
|
+
var _a2;
|
|
8535
|
+
return dates.includes(selected) ? selected : (_a2 = dates[0]) != null ? _a2 : "";
|
|
8536
|
+
};
|
|
8537
|
+
var catalogQuantities = (previous, tickets) => {
|
|
8538
|
+
const next = {};
|
|
8539
|
+
for (const ticket of tickets) {
|
|
8540
|
+
const quantity = previous[ticket.id];
|
|
8541
|
+
const range = ticketQuantityRange(ticket);
|
|
8542
|
+
if (quantity > 0 && !ticket.soldOut && ticket.salesStarted && !ticket.salesEnded && quantity >= range.min && quantity <= range.max && quantity % range.step === 0)
|
|
8543
|
+
next[ticket.id] = quantity;
|
|
8544
|
+
}
|
|
8545
|
+
return Object.keys(previous).length === Object.keys(next).length && Object.keys(next).every((id2) => previous[id2] === next[id2]) ? previous : next;
|
|
8546
|
+
};
|
|
8524
8547
|
var initialSnapshot = () => ({
|
|
8525
8548
|
status: "idle",
|
|
8526
8549
|
selections: [],
|
|
@@ -9958,6 +9981,7 @@ var mapTicket = (t) => {
|
|
|
9958
9981
|
var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
|
|
9959
9982
|
return {
|
|
9960
9983
|
id: String(t.id),
|
|
9984
|
+
isRegularTicket: typeof t.isRegularTicket === "boolean" ? t.isRegularTicket : void 0,
|
|
9961
9985
|
name: (_a2 = t.displayName) != null ? _a2 : "",
|
|
9962
9986
|
groupName: (_c = (_b = t.groupName) != null ? _b : t.group_name) != null ? _c : null,
|
|
9963
9987
|
optionName: (_d = t.optionName) != null ? _d : "",
|
|
@@ -10047,7 +10071,8 @@ var getEventInfo = async (eventId, pk) => {
|
|
|
10047
10071
|
var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
|
|
10048
10072
|
await sdkSeatSessionHeaders(eventId);
|
|
10049
10073
|
const body3 = await get(ENDPOINTS.events.info(eventId), {
|
|
10050
|
-
params: pk ? { pk } : void 0
|
|
10074
|
+
params: pk ? { pk } : void 0,
|
|
10075
|
+
tfCatalogContext: true
|
|
10051
10076
|
});
|
|
10052
10077
|
const attributes6 = (_b = (_a2 = body3 == null ? void 0 : body3.data) == null ? void 0 : _a2.attributes) != null ? _b : {};
|
|
10053
10078
|
const a = attributes6;
|
|
@@ -10286,7 +10311,11 @@ var getEventBundles = async (eventId) => {
|
|
|
10286
10311
|
};
|
|
10287
10312
|
var submitPromoCode = async (eventId, promo) => {
|
|
10288
10313
|
await sdkSeatSessionHeaders(eventId);
|
|
10289
|
-
await post(
|
|
10314
|
+
await post(
|
|
10315
|
+
ENDPOINTS.events.promo(eventId),
|
|
10316
|
+
{ promo: promo.trim() },
|
|
10317
|
+
{ tfCatalogContext: true }
|
|
10318
|
+
);
|
|
10290
10319
|
};
|
|
10291
10320
|
var setEventCurrency = async (eventId, code, options) => {
|
|
10292
10321
|
var _a2;
|
|
@@ -14845,6 +14874,7 @@ __export(hooks_exports, {
|
|
|
14845
14874
|
useSubmitPrizeDetails: () => useSubmitPrizeDetails,
|
|
14846
14875
|
useTicketCardForm: () => useTicketCardForm,
|
|
14847
14876
|
useTicketCardOwner: () => useTicketCardOwner,
|
|
14877
|
+
useTicketCatalog: () => useTicketCatalog,
|
|
14848
14878
|
useTicketChange: () => useTicketChange,
|
|
14849
14879
|
useTicketChangeOptions: () => useTicketChangeOptions,
|
|
14850
14880
|
useTicketGatewayWait: () => useTicketGatewayWait,
|
|
@@ -15795,7 +15825,7 @@ var useCatalogQuery = (options) => {
|
|
|
15795
15825
|
} : queryFn
|
|
15796
15826
|
});
|
|
15797
15827
|
};
|
|
15798
|
-
var useEvent = (eventId, options) =>
|
|
15828
|
+
var useEvent = (eventId, options) => useCatalogQuery({
|
|
15799
15829
|
queryKey: ttfKeys.event(eventId != null ? eventId : ""),
|
|
15800
15830
|
queryFn: () => ttf.events.info(eventId),
|
|
15801
15831
|
enabled: Boolean(eventId),
|
|
@@ -21407,6 +21437,154 @@ var useAccountEmailEnrichment = (options = {}) => {
|
|
|
21407
21437
|
}
|
|
21408
21438
|
};
|
|
21409
21439
|
};
|
|
21440
|
+
var EMPTY_DATES = [];
|
|
21441
|
+
var EMPTY_TICKETS = [];
|
|
21442
|
+
var useTicketCatalog = (eventId, explicitDates) => {
|
|
21443
|
+
var _a2, _b, _c, _d;
|
|
21444
|
+
const queryClient = useQueryClient16();
|
|
21445
|
+
const account = useSyncExternalStore20(subscribeSession, getSessionCacheScope, () => 0);
|
|
21446
|
+
const revision = useSyncExternalStore20(
|
|
21447
|
+
subscribeSession,
|
|
21448
|
+
getCatalogContextRevision,
|
|
21449
|
+
() => 0
|
|
21450
|
+
);
|
|
21451
|
+
const assertOwner = useMemo16(captureSessionAction, [account]);
|
|
21452
|
+
const actionSubject = JSON.stringify([eventId, account]);
|
|
21453
|
+
const action = useLiveScope(actionSubject);
|
|
21454
|
+
const subject = JSON.stringify([eventId, account, revision]);
|
|
21455
|
+
const { live, instance: instance2 } = useLiveScope(subject);
|
|
21456
|
+
const current5 = useCallback14(() => {
|
|
21457
|
+
try {
|
|
21458
|
+
assertOwner();
|
|
21459
|
+
return revision === getCatalogContextRevision() && instance2 !== null && live.current() === instance2;
|
|
21460
|
+
} catch (e) {
|
|
21461
|
+
return false;
|
|
21462
|
+
}
|
|
21463
|
+
}, [assertOwner, revision, instance2, live]);
|
|
21464
|
+
const capturePrimeContinuation = () => {
|
|
21465
|
+
const pin = getCartPinRevision();
|
|
21466
|
+
return () => {
|
|
21467
|
+
try {
|
|
21468
|
+
assertOwner();
|
|
21469
|
+
if (action.instance === null || action.live.current() !== action.instance)
|
|
21470
|
+
return false;
|
|
21471
|
+
if (current5()) return true;
|
|
21472
|
+
return getCartPinRevision() > pin && getCartGuestToken() !== null && getEffectiveGuestCarrier() === getCartGuestToken();
|
|
21473
|
+
} catch (e) {
|
|
21474
|
+
return false;
|
|
21475
|
+
}
|
|
21476
|
+
};
|
|
21477
|
+
};
|
|
21478
|
+
const [qty, updateQty] = useScopedState(subject, {});
|
|
21479
|
+
const [slotDate, updateDate] = useScopedState(subject, "");
|
|
21480
|
+
const [refreshing, setRefreshing] = useScopedState(subject, false);
|
|
21481
|
+
const eventQuery = useEvent(eventId);
|
|
21482
|
+
const ticketsQuery = useTicketsWithMeta(eventId);
|
|
21483
|
+
const eventInfo = eventQuery.data;
|
|
21484
|
+
const isTimeSlot = Boolean((explicitDates == null ? void 0 : explicitDates.length) || (eventInfo == null ? void 0 : eventInfo.isTimeSlotEvent));
|
|
21485
|
+
const dates = (_a2 = explicitDates != null ? explicitDates : eventInfo == null ? void 0 : eventInfo.availableDates) != null ? _a2 : EMPTY_DATES;
|
|
21486
|
+
const slotQuery = useTimeSlotTickets(eventId, isTimeSlot ? slotDate : void 0);
|
|
21487
|
+
const { tickets, datedTickets, regularTickets } = useMemo16(() => {
|
|
21488
|
+
var _a3, _b2, _c2;
|
|
21489
|
+
if (!eventInfo && explicitDates === void 0)
|
|
21490
|
+
return {
|
|
21491
|
+
tickets: EMPTY_TICKETS,
|
|
21492
|
+
datedTickets: EMPTY_TICKETS,
|
|
21493
|
+
regularTickets: EMPTY_TICKETS
|
|
21494
|
+
};
|
|
21495
|
+
const base = (_b2 = (_a3 = ticketsQuery.data) == null ? void 0 : _a3.tickets) != null ? _b2 : EMPTY_TICKETS;
|
|
21496
|
+
if (!isTimeSlot)
|
|
21497
|
+
return { tickets: base, datedTickets: EMPTY_TICKETS, regularTickets: EMPTY_TICKETS };
|
|
21498
|
+
const dated = (_c2 = slotQuery.data) != null ? _c2 : EMPTY_TICKETS;
|
|
21499
|
+
const rows2 = calendarTicketRows(base, dated);
|
|
21500
|
+
return {
|
|
21501
|
+
tickets: rows2,
|
|
21502
|
+
datedTickets: dated,
|
|
21503
|
+
regularTickets: rows2.slice(dated.length)
|
|
21504
|
+
};
|
|
21505
|
+
}, [eventInfo, explicitDates, isTimeSlot, (_b = ticketsQuery.data) == null ? void 0 : _b.tickets, slotQuery.data]);
|
|
21506
|
+
useEffect24(() => {
|
|
21507
|
+
if (!current5()) return;
|
|
21508
|
+
const next = isTimeSlot ? catalogDate(slotDate, dates) : "";
|
|
21509
|
+
if (next !== slotDate) updateDate(next);
|
|
21510
|
+
updateQty((previous) => catalogQuantities(previous, tickets));
|
|
21511
|
+
}, [current5, isTimeSlot, slotDate, dates, tickets, updateDate, updateQty]);
|
|
21512
|
+
const setQty = useCallback14(
|
|
21513
|
+
(update) => {
|
|
21514
|
+
if (current5()) updateQty(update);
|
|
21515
|
+
},
|
|
21516
|
+
[current5, updateQty]
|
|
21517
|
+
);
|
|
21518
|
+
const setSlotDate = useCallback14(
|
|
21519
|
+
(date) => {
|
|
21520
|
+
if (current5() && dates.includes(date)) updateDate(date);
|
|
21521
|
+
},
|
|
21522
|
+
[current5, dates, updateDate]
|
|
21523
|
+
);
|
|
21524
|
+
const { refetch: refetchInfo } = eventQuery;
|
|
21525
|
+
const { refetch: refetchTickets } = ticketsQuery;
|
|
21526
|
+
const refetchCatalog = useCallback14(async () => {
|
|
21527
|
+
if (!current5()) return;
|
|
21528
|
+
setRefreshing(true);
|
|
21529
|
+
try {
|
|
21530
|
+
await Promise.all([
|
|
21531
|
+
refetchInfo({ throwOnError: true }),
|
|
21532
|
+
refetchTickets({ throwOnError: true })
|
|
21533
|
+
]);
|
|
21534
|
+
if (!current5()) return;
|
|
21535
|
+
await queryClient.invalidateQueries(
|
|
21536
|
+
{
|
|
21537
|
+
predicate: (query) => {
|
|
21538
|
+
const key5 = query.queryKey;
|
|
21539
|
+
const prefix = [...ttfKeys.tickets(eventId), "slots"];
|
|
21540
|
+
return prefix.every((part, index) => key5[index] === part) && key5.some(
|
|
21541
|
+
(part) => !!part && typeof part === "object" && part.tfCatalogContext === revision
|
|
21542
|
+
) && key5.some(
|
|
21543
|
+
(part) => !!part && typeof part === "object" && part.tfSessionScope === account
|
|
21544
|
+
);
|
|
21545
|
+
},
|
|
21546
|
+
refetchType: "active"
|
|
21547
|
+
},
|
|
21548
|
+
{ throwOnError: true }
|
|
21549
|
+
);
|
|
21550
|
+
if (!current5()) return;
|
|
21551
|
+
} finally {
|
|
21552
|
+
if (current5()) setRefreshing(false);
|
|
21553
|
+
}
|
|
21554
|
+
}, [
|
|
21555
|
+
current5,
|
|
21556
|
+
refetchInfo,
|
|
21557
|
+
refetchTickets,
|
|
21558
|
+
setRefreshing,
|
|
21559
|
+
queryClient,
|
|
21560
|
+
eventId,
|
|
21561
|
+
revision,
|
|
21562
|
+
account
|
|
21563
|
+
]);
|
|
21564
|
+
return {
|
|
21565
|
+
scope: subject,
|
|
21566
|
+
capturePrimeContinuation,
|
|
21567
|
+
attributionReady: !!eventInfo && !!ticketsQuery.data && !eventQuery.isFetching && !ticketsQuery.isFetching,
|
|
21568
|
+
ticketsQuery,
|
|
21569
|
+
eventInfo,
|
|
21570
|
+
slotQuery,
|
|
21571
|
+
tickets,
|
|
21572
|
+
datedTickets,
|
|
21573
|
+
regularTickets,
|
|
21574
|
+
dates,
|
|
21575
|
+
slotDate,
|
|
21576
|
+
isTimeSlot,
|
|
21577
|
+
setSlotDate,
|
|
21578
|
+
qty,
|
|
21579
|
+
setQty,
|
|
21580
|
+
current: current5,
|
|
21581
|
+
instance: instance2,
|
|
21582
|
+
refetchCatalog,
|
|
21583
|
+
busy: refreshing || eventQuery.isFetching || ticketsQuery.isFetching || isTimeSlot && !!slotDate && slotQuery.isFetching,
|
|
21584
|
+
isLoading: eventQuery.isLoading || ticketsQuery.isLoading || isTimeSlot && !!slotDate && slotQuery.isLoading,
|
|
21585
|
+
error: (_d = (_c = eventQuery.error) != null ? _c : ticketsQuery.error) != null ? _d : isTimeSlot ? slotQuery.error : null
|
|
21586
|
+
};
|
|
21587
|
+
};
|
|
21410
21588
|
var accountEn = {
|
|
21411
21589
|
"account.add_an_email_address": "Add an email address",
|
|
21412
21590
|
"account.email_address": "Email address",
|
|
@@ -23795,26 +23973,26 @@ var translateAccountMessage = (translate2, english, vars) => {
|
|
|
23795
23973
|
import { useState as useState35 } from "react";
|
|
23796
23974
|
|
|
23797
23975
|
// src/CardInput.tsx
|
|
23798
|
-
import { useEffect as
|
|
23976
|
+
import { useEffect as useEffect27, useRef as useRef29, useState as useState34 } from "react";
|
|
23799
23977
|
import { Platform, StyleSheet as StyleSheet4 } from "react-native";
|
|
23800
23978
|
import { CardField } from "@stripe/stripe-react-native";
|
|
23801
23979
|
|
|
23802
23980
|
// src/ui/CheckoutProvider.tsx
|
|
23803
23981
|
import {
|
|
23804
23982
|
createContext as createContext2,
|
|
23805
|
-
useCallback as
|
|
23983
|
+
useCallback as useCallback15,
|
|
23806
23984
|
useContext as useContext2,
|
|
23807
|
-
useMemo as
|
|
23985
|
+
useMemo as useMemo19,
|
|
23808
23986
|
useState as useState33
|
|
23809
23987
|
} from "react";
|
|
23810
23988
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
23811
23989
|
|
|
23812
23990
|
// src/ui/InstallmentPicker.tsx
|
|
23813
|
-
import { useEffect as
|
|
23991
|
+
import { useEffect as useEffect25, useMemo as useMemo18, useState as useState31 } from "react";
|
|
23814
23992
|
import { Modal, Pressable as Pressable2, StyleSheet as StyleSheet2, Text as Text2, View as View2 } from "react-native";
|
|
23815
23993
|
|
|
23816
23994
|
// src/ui/primitives.tsx
|
|
23817
|
-
import { useMemo as
|
|
23995
|
+
import { useMemo as useMemo17 } from "react";
|
|
23818
23996
|
import {
|
|
23819
23997
|
ActivityIndicator,
|
|
23820
23998
|
Pressable,
|
|
@@ -23933,7 +24111,7 @@ var Button = ({
|
|
|
23933
24111
|
}
|
|
23934
24112
|
);
|
|
23935
24113
|
};
|
|
23936
|
-
var useStyles = (theme) =>
|
|
24114
|
+
var useStyles = (theme) => useMemo17(
|
|
23937
24115
|
() => StyleSheet.create({
|
|
23938
24116
|
card: {
|
|
23939
24117
|
backgroundColor: theme.surface,
|
|
@@ -24002,7 +24180,7 @@ var useInstallmentPicker = () => {
|
|
|
24002
24180
|
var _a2;
|
|
24003
24181
|
const [pending3, setPending] = useState31(null);
|
|
24004
24182
|
const [choices] = useState31(() => createInstallmentChoices(setPending));
|
|
24005
|
-
|
|
24183
|
+
useEffect25(() => () => choices.cancel(), [choices]);
|
|
24006
24184
|
const onInstallmentOffers = choices.ask;
|
|
24007
24185
|
const choose = (offer) => pending3 == null ? void 0 : pending3.choose(offer);
|
|
24008
24186
|
const picker = /* @__PURE__ */ jsx3(
|
|
@@ -24057,7 +24235,7 @@ var InstallmentModal = ({ offers, onChoose, onClose }) => {
|
|
|
24057
24235
|
}
|
|
24058
24236
|
);
|
|
24059
24237
|
};
|
|
24060
|
-
var useStyles2 = (theme) =>
|
|
24238
|
+
var useStyles2 = (theme) => useMemo18(
|
|
24061
24239
|
() => StyleSheet2.create({
|
|
24062
24240
|
backdrop: {
|
|
24063
24241
|
flex: 1,
|
|
@@ -24108,7 +24286,7 @@ var useStyles2 = (theme) => useMemo17(
|
|
|
24108
24286
|
);
|
|
24109
24287
|
|
|
24110
24288
|
// src/ui/ProviderPages.tsx
|
|
24111
|
-
import { useEffect as
|
|
24289
|
+
import { useEffect as useEffect26, useState as useState32 } from "react";
|
|
24112
24290
|
import {
|
|
24113
24291
|
ActivityIndicator as ActivityIndicator2,
|
|
24114
24292
|
Linking,
|
|
@@ -24191,8 +24369,8 @@ var externalInitialUri = (uri) => {
|
|
|
24191
24369
|
var useProviderPages = () => {
|
|
24192
24370
|
const [pending3, setPending] = useState32(null);
|
|
24193
24371
|
const [pages] = useState32(() => createProviderPages(setPending));
|
|
24194
|
-
|
|
24195
|
-
|
|
24372
|
+
useEffect26(() => () => pages.cancel(), [pages]);
|
|
24373
|
+
useEffect26(() => {
|
|
24196
24374
|
if (!pending3) return;
|
|
24197
24375
|
const subscription = Linking.addEventListener("url", ({ url: url2 }) => {
|
|
24198
24376
|
if (providerPageMatchesReturn(url2, pending3.request.returnUrlPrefix))
|
|
@@ -24217,7 +24395,7 @@ var ProviderPage = ({
|
|
|
24217
24395
|
const [error, setError] = useState32("");
|
|
24218
24396
|
const displayedError = sourceError || error;
|
|
24219
24397
|
const [reload, setReload] = useState32(0);
|
|
24220
|
-
|
|
24398
|
+
useEffect26(() => {
|
|
24221
24399
|
if (!externalUri) return;
|
|
24222
24400
|
let active2 = true;
|
|
24223
24401
|
void Linking.openURL(externalUri).catch(() => {
|
|
@@ -24335,18 +24513,18 @@ var CheckoutThemeProvider = ({
|
|
|
24335
24513
|
theme,
|
|
24336
24514
|
children
|
|
24337
24515
|
}) => {
|
|
24338
|
-
const resolved =
|
|
24516
|
+
const resolved = useMemo19(() => resolveTheme(theme), [theme]);
|
|
24339
24517
|
return /* @__PURE__ */ jsx5(ThemeCtx.Provider, { value: resolved, children });
|
|
24340
24518
|
};
|
|
24341
24519
|
var CheckoutRoot = ({ checkout, theme, pickImage, children }) => {
|
|
24342
24520
|
const inheritedPicker = useContext2(ImagePickerCtx);
|
|
24343
24521
|
const [attempt2, setAttempt] = useState33(0);
|
|
24344
|
-
const requestValidation =
|
|
24345
|
-
const validation =
|
|
24522
|
+
const requestValidation = useCallback15(() => setAttempt((n) => n + 1), []);
|
|
24523
|
+
const validation = useMemo19(
|
|
24346
24524
|
() => ({ attempt: attempt2, requestValidation }),
|
|
24347
24525
|
[attempt2, requestValidation]
|
|
24348
24526
|
);
|
|
24349
|
-
const resolved =
|
|
24527
|
+
const resolved = useMemo19(() => resolveTheme(theme), [theme]);
|
|
24350
24528
|
return /* @__PURE__ */ jsx5(CheckoutCtx.Provider, { value: checkout, children: /* @__PURE__ */ jsx5(ThemeCtx.Provider, { value: resolved, children: /* @__PURE__ */ jsx5(ImagePickerCtx.Provider, { value: pickImage != null ? pickImage : inheritedPicker, children: /* @__PURE__ */ jsx5(ValidationCtx.Provider, { value: validation, children }) }) }) });
|
|
24351
24529
|
};
|
|
24352
24530
|
var SelfProvidedCheckout = ({
|
|
@@ -24418,7 +24596,7 @@ var CardInput = ({
|
|
|
24418
24596
|
const handleRef = useRef29(null);
|
|
24419
24597
|
const visibleRef = useRef29(visible);
|
|
24420
24598
|
visibleRef.current = visible;
|
|
24421
|
-
|
|
24599
|
+
useEffect27(() => {
|
|
24422
24600
|
const handle = cardFields.mount(
|
|
24423
24601
|
owner,
|
|
24424
24602
|
() => setAttachment((n) => n + 1),
|
|
@@ -24430,7 +24608,7 @@ var CardInput = ({
|
|
|
24430
24608
|
handleRef.current = null;
|
|
24431
24609
|
};
|
|
24432
24610
|
}, [owner]);
|
|
24433
|
-
|
|
24611
|
+
useEffect27(() => {
|
|
24434
24612
|
var _a2;
|
|
24435
24613
|
(_a2 = handleRef.current) == null ? void 0 : _a2.setVisible(visible);
|
|
24436
24614
|
}, [visible]);
|
|
@@ -25094,7 +25272,7 @@ var configureCheckout = (config) => configure({
|
|
|
25094
25272
|
});
|
|
25095
25273
|
|
|
25096
25274
|
// src/ui/Field.tsx
|
|
25097
|
-
import { useMemo as
|
|
25275
|
+
import { useMemo as useMemo20, useState as useState36 } from "react";
|
|
25098
25276
|
import {
|
|
25099
25277
|
Pressable as Pressable3,
|
|
25100
25278
|
StyleSheet as StyleSheet5,
|
|
@@ -25188,7 +25366,7 @@ var Checkbox = ({ checked, onChange, label, invalid: invalid3 = false }) => {
|
|
|
25188
25366
|
}
|
|
25189
25367
|
);
|
|
25190
25368
|
};
|
|
25191
|
-
var useFieldStyles = (theme) =>
|
|
25369
|
+
var useFieldStyles = (theme) => useMemo20(
|
|
25192
25370
|
() => StyleSheet5.create({
|
|
25193
25371
|
field: { gap: 6 },
|
|
25194
25372
|
label: {
|
|
@@ -25238,7 +25416,7 @@ var useFieldStyles = (theme) => useMemo19(
|
|
|
25238
25416
|
);
|
|
25239
25417
|
|
|
25240
25418
|
// src/ui/Select.tsx
|
|
25241
|
-
import { useCallback as
|
|
25419
|
+
import { useCallback as useCallback16, useEffect as useEffect28, useMemo as useMemo21, useRef as useRef30, useState as useState37 } from "react";
|
|
25242
25420
|
import { FlatList, Modal as Modal3, Pressable as Pressable4, StyleSheet as StyleSheet6, Text as Text5, View as View5 } from "react-native";
|
|
25243
25421
|
import { Fragment, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
25244
25422
|
function Select({
|
|
@@ -25257,12 +25435,12 @@ function Select({
|
|
|
25257
25435
|
const interaction = useRef30({ disabled, open: false, revision: 0 });
|
|
25258
25436
|
interaction.current.disabled = disabled;
|
|
25259
25437
|
const revision = interaction.current.revision;
|
|
25260
|
-
const close =
|
|
25438
|
+
const close = useCallback16(() => {
|
|
25261
25439
|
interaction.current.open = false;
|
|
25262
25440
|
interaction.current.revision += 1;
|
|
25263
25441
|
setOpen(false);
|
|
25264
25442
|
}, []);
|
|
25265
|
-
|
|
25443
|
+
useEffect28(() => {
|
|
25266
25444
|
if (disabled && interaction.current.open) close();
|
|
25267
25445
|
}, [disabled, close]);
|
|
25268
25446
|
const selected = options.find((o) => o.value === value6);
|
|
@@ -25327,7 +25505,7 @@ function Select({
|
|
|
25327
25505
|
)
|
|
25328
25506
|
] });
|
|
25329
25507
|
}
|
|
25330
|
-
var useSelectStyles = (theme) =>
|
|
25508
|
+
var useSelectStyles = (theme) => useMemo21(
|
|
25331
25509
|
() => StyleSheet6.create({
|
|
25332
25510
|
control: {
|
|
25333
25511
|
flexDirection: "row",
|
|
@@ -25388,7 +25566,7 @@ var useSelectStyles = (theme) => useMemo20(
|
|
|
25388
25566
|
);
|
|
25389
25567
|
|
|
25390
25568
|
// src/ui/QuantitySelect.tsx
|
|
25391
|
-
import { useMemo as
|
|
25569
|
+
import { useMemo as useMemo22 } from "react";
|
|
25392
25570
|
import { Pressable as Pressable5, StyleSheet as StyleSheet7, Text as Text6, View as View6 } from "react-native";
|
|
25393
25571
|
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
25394
25572
|
var QuantitySelect = ({
|
|
@@ -25459,7 +25637,7 @@ var QuantitySelect = ({
|
|
|
25459
25637
|
}
|
|
25460
25638
|
);
|
|
25461
25639
|
};
|
|
25462
|
-
var useQuantityStyles = (theme) =>
|
|
25640
|
+
var useQuantityStyles = (theme) => useMemo22(
|
|
25463
25641
|
() => StyleSheet7.create({
|
|
25464
25642
|
stepper: { flexDirection: "row", alignItems: "center", gap: 14 },
|
|
25465
25643
|
btn: {
|
|
@@ -25487,7 +25665,7 @@ var useQuantityStyles = (theme) => useMemo21(
|
|
|
25487
25665
|
);
|
|
25488
25666
|
|
|
25489
25667
|
// src/ui/Timer.tsx
|
|
25490
|
-
import { useMemo as
|
|
25668
|
+
import { useMemo as useMemo23 } from "react";
|
|
25491
25669
|
import { StyleSheet as StyleSheet8, Text as Text7, View as View7 } from "react-native";
|
|
25492
25670
|
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
25493
25671
|
var clock = (s9) => {
|
|
@@ -25506,7 +25684,7 @@ var Timer = ({ seconds: seconds2, urgentAt = 60, label }) => {
|
|
|
25506
25684
|
/* @__PURE__ */ jsx10(Text7, { style: [s9.clock, urgent && s9.clockUrgent], children: clock(seconds2) })
|
|
25507
25685
|
] });
|
|
25508
25686
|
};
|
|
25509
|
-
var useTimerStyles = (theme) =>
|
|
25687
|
+
var useTimerStyles = (theme) => useMemo23(
|
|
25510
25688
|
() => StyleSheet8.create({
|
|
25511
25689
|
row: { flexDirection: "row", alignItems: "center", gap: 6 },
|
|
25512
25690
|
label: {
|
|
@@ -25527,7 +25705,7 @@ var useTimerStyles = (theme) => useMemo22(
|
|
|
25527
25705
|
);
|
|
25528
25706
|
|
|
25529
25707
|
// src/ui/TimerBanner.tsx
|
|
25530
|
-
import { useMemo as
|
|
25708
|
+
import { useMemo as useMemo24, useState as useState38 } from "react";
|
|
25531
25709
|
import { Pressable as Pressable6, StyleSheet as StyleSheet9, Text as Text8, View as View8 } from "react-native";
|
|
25532
25710
|
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
25533
25711
|
var clock2 = (s9) => {
|
|
@@ -25565,7 +25743,7 @@ var TimerBanner = ({
|
|
|
25565
25743
|
] })
|
|
25566
25744
|
);
|
|
25567
25745
|
};
|
|
25568
|
-
var useBannerStyles = (theme) =>
|
|
25746
|
+
var useBannerStyles = (theme) => useMemo24(
|
|
25569
25747
|
() => StyleSheet9.create({
|
|
25570
25748
|
banner: {
|
|
25571
25749
|
flexDirection: "row",
|
|
@@ -25605,7 +25783,7 @@ var useBannerStyles = (theme) => useMemo23(
|
|
|
25605
25783
|
);
|
|
25606
25784
|
|
|
25607
25785
|
// src/ui/PaymentMethods.tsx
|
|
25608
|
-
import { useMemo as
|
|
25786
|
+
import { useMemo as useMemo25 } from "react";
|
|
25609
25787
|
import { Image, Pressable as Pressable7, StyleSheet as StyleSheet10, Text as Text9, View as View9 } from "react-native";
|
|
25610
25788
|
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
25611
25789
|
var EXTRA_LABEL = {
|
|
@@ -25684,7 +25862,7 @@ var PaymentMethods = ({
|
|
|
25684
25862
|
] }, option.value);
|
|
25685
25863
|
}) });
|
|
25686
25864
|
};
|
|
25687
|
-
var useStyles3 = (theme) =>
|
|
25865
|
+
var useStyles3 = (theme) => useMemo25(
|
|
25688
25866
|
() => StyleSheet10.create({
|
|
25689
25867
|
list: { gap: 8 },
|
|
25690
25868
|
row: {
|
|
@@ -25728,7 +25906,7 @@ var useStyles3 = (theme) => useMemo24(
|
|
|
25728
25906
|
);
|
|
25729
25907
|
|
|
25730
25908
|
// src/ui/RichText.tsx
|
|
25731
|
-
import { useMemo as
|
|
25909
|
+
import { useMemo as useMemo26, useState as useState39 } from "react";
|
|
25732
25910
|
import { Alert, Linking as Linking3, StyleSheet as StyleSheet11, Text as Text10, View as View10 } from "react-native";
|
|
25733
25911
|
import RenderHTML, {
|
|
25734
25912
|
defaultSystemFonts,
|
|
@@ -25782,8 +25960,8 @@ var RichText = ({
|
|
|
25782
25960
|
}) => {
|
|
25783
25961
|
const theme = useTheme();
|
|
25784
25962
|
const [width, setWidth] = useState39(0);
|
|
25785
|
-
const source =
|
|
25786
|
-
const baseStyle =
|
|
25963
|
+
const source = useMemo26(() => ({ html }), [html]);
|
|
25964
|
+
const baseStyle = useMemo26(
|
|
25787
25965
|
() => ({
|
|
25788
25966
|
color: theme.muted,
|
|
25789
25967
|
fontSize: theme.fontSize - 1,
|
|
@@ -25793,13 +25971,13 @@ var RichText = ({
|
|
|
25793
25971
|
}),
|
|
25794
25972
|
[theme.muted, theme.fontSize, theme.fontFamily, textStyle]
|
|
25795
25973
|
);
|
|
25796
|
-
const systemFonts =
|
|
25974
|
+
const systemFonts = useMemo26(
|
|
25797
25975
|
() => [
|
|
25798
25976
|
.../* @__PURE__ */ new Set([...defaultSystemFonts, theme.fontFamily, textStyle == null ? void 0 : textStyle.fontFamily])
|
|
25799
25977
|
].filter((font) => typeof font === "string"),
|
|
25800
25978
|
[theme.fontFamily, textStyle == null ? void 0 : textStyle.fontFamily]
|
|
25801
25979
|
);
|
|
25802
|
-
const tagsStyles =
|
|
25980
|
+
const tagsStyles = useMemo26(() => {
|
|
25803
25981
|
var _a2;
|
|
25804
25982
|
const defaults = {
|
|
25805
25983
|
p: { marginTop: 0, marginBottom: 8 },
|
|
@@ -25836,7 +26014,7 @@ var RichText = ({
|
|
|
25836
26014
|
defaults[tag] = { ...defaults[tag], ...style };
|
|
25837
26015
|
return defaults;
|
|
25838
26016
|
}, [theme.accent, theme.fontSize, baseStyle.fontSize, tagOverrides]);
|
|
25839
|
-
const renderersProps =
|
|
26017
|
+
const renderersProps = useMemo26(
|
|
25840
26018
|
() => ({
|
|
25841
26019
|
a: {
|
|
25842
26020
|
onPress: (event, href) => {
|
|
@@ -25853,7 +26031,7 @@ var RichText = ({
|
|
|
25853
26031
|
}),
|
|
25854
26032
|
[onLinkPress]
|
|
25855
26033
|
);
|
|
25856
|
-
const defaultTextProps =
|
|
26034
|
+
const defaultTextProps = useMemo26(() => ({ selectable }), [selectable]);
|
|
25857
26035
|
return /* @__PURE__ */ jsx13(
|
|
25858
26036
|
View10,
|
|
25859
26037
|
{
|
|
@@ -25884,8 +26062,8 @@ var styles3 = StyleSheet11.create({ container: { alignSelf: "stretch", minWidth:
|
|
|
25884
26062
|
// src/sections/Tickets.tsx
|
|
25885
26063
|
import {
|
|
25886
26064
|
Fragment as Fragment2,
|
|
25887
|
-
useEffect as
|
|
25888
|
-
useMemo as
|
|
26065
|
+
useEffect as useEffect29,
|
|
26066
|
+
useMemo as useMemo27,
|
|
25889
26067
|
useRef as useRef31,
|
|
25890
26068
|
useState as useState40
|
|
25891
26069
|
} from "react";
|
|
@@ -26030,7 +26208,20 @@ var Tickets = ({
|
|
|
26030
26208
|
const checkout = useCheckoutContext();
|
|
26031
26209
|
const theme = useTheme();
|
|
26032
26210
|
const s9 = useTicketStyles(theme);
|
|
26033
|
-
const
|
|
26211
|
+
const catalog = hooks_exports.useTicketCatalog(eventId, timeSlotDates);
|
|
26212
|
+
const {
|
|
26213
|
+
ticketsQuery,
|
|
26214
|
+
eventInfo,
|
|
26215
|
+
slotQuery,
|
|
26216
|
+
isTimeSlot,
|
|
26217
|
+
dates,
|
|
26218
|
+
slotDate,
|
|
26219
|
+
setSlotDate,
|
|
26220
|
+
qty,
|
|
26221
|
+
setQty,
|
|
26222
|
+
refetchCatalog,
|
|
26223
|
+
current: catalogCurrent
|
|
26224
|
+
} = catalog;
|
|
26034
26225
|
const waitingBuyer = hooks_exports.useAuthSession();
|
|
26035
26226
|
const cachedProfile = hooks_exports.useProfile({ enabled: false }).data;
|
|
26036
26227
|
const waitingPrefill = waitingListProfilePrefill(
|
|
@@ -26041,48 +26232,23 @@ var Tickets = ({
|
|
|
26041
26232
|
const bundleWait = hooks_exports.useTicketGatewayWait(checkout.store);
|
|
26042
26233
|
const bundleStarting = bundleWait !== null;
|
|
26043
26234
|
const promoMeta = (_a2 = ticketsQuery.data) == null ? void 0 : _a2.promo;
|
|
26044
|
-
const
|
|
26045
|
-
const [
|
|
26046
|
-
const
|
|
26047
|
-
|
|
26048
|
-
|
|
26049
|
-
|
|
26050
|
-
|
|
26051
|
-
|
|
26052
|
-
|
|
26053
|
-
[timeSlotDates, eventInfo == null ? void 0 : eventInfo.availableDates]
|
|
26235
|
+
const tickets = catalog.tickets;
|
|
26236
|
+
const [error, updateError] = hooks_exports.useScopedState(catalog.scope, "");
|
|
26237
|
+
const setError = (message2) => {
|
|
26238
|
+
if (catalogCurrent()) updateError(message2);
|
|
26239
|
+
};
|
|
26240
|
+
const [code, setCode] = hooks_exports.useScopedState(catalog.scope, "");
|
|
26241
|
+
const [codeState, setCodeState] = hooks_exports.useScopedState(
|
|
26242
|
+
catalog.scope,
|
|
26243
|
+
"idle"
|
|
26054
26244
|
);
|
|
26055
|
-
|
|
26056
|
-
if (isTimeSlot && !slotDate && dates.length) setSlotDate(dates[0]);
|
|
26057
|
-
}, [isTimeSlot, slotDate, dates]);
|
|
26058
|
-
const slotQuery = hooks_exports.useTimeSlotTickets(eventId, isTimeSlot ? slotDate : void 0);
|
|
26059
|
-
const refetchCatalog = () => Promise.all([
|
|
26060
|
-
ticketsQuery.refetch(),
|
|
26061
|
-
...isTimeSlot && slotDate ? [slotQuery.refetch()] : []
|
|
26062
|
-
]);
|
|
26063
|
-
const tickets = useMemo26(
|
|
26064
|
-
() => {
|
|
26065
|
-
var _a3, _b2, _c2;
|
|
26066
|
-
return isTimeSlot ? (_a3 = slotQuery.data) != null ? _a3 : [] : (_c2 = (_b2 = ticketsQuery.data) == null ? void 0 : _b2.tickets) != null ? _c2 : [];
|
|
26067
|
-
},
|
|
26068
|
-
[isTimeSlot, slotQuery.data, (_b = ticketsQuery.data) == null ? void 0 : _b.tickets]
|
|
26069
|
-
);
|
|
26070
|
-
const [error, setError] = useState40("");
|
|
26071
|
-
const [code, setCode] = useState40("");
|
|
26072
|
-
const [codeState, setCodeState] = useState40("idle");
|
|
26073
|
-
const [promoOpen, setPromoOpen] = useState40(false);
|
|
26074
|
-
hooks_exports.useOnEventChange(eventId, () => {
|
|
26075
|
-
setQty({});
|
|
26076
|
-
setSlotDate("");
|
|
26077
|
-
setCode("");
|
|
26078
|
-
setPromoOpen(false);
|
|
26079
|
-
setError("");
|
|
26080
|
-
});
|
|
26245
|
+
const [promoOpen, setPromoOpen] = hooks_exports.useScopedState(catalog.scope, false);
|
|
26081
26246
|
const [visibleDescription, setVisibleDescription] = useState40(null);
|
|
26082
26247
|
const attributionEvent = useRef31(null);
|
|
26083
|
-
|
|
26248
|
+
useEffect29(() => {
|
|
26084
26249
|
var _a3;
|
|
26085
|
-
if (attributionEvent.current === eventId)
|
|
26250
|
+
if (!catalogCurrent() || !catalog.attributionReady || attributionEvent.current === eventId)
|
|
26251
|
+
return;
|
|
26086
26252
|
attributionEvent.current = eventId;
|
|
26087
26253
|
const promo = (_a3 = initialPromoCode == null ? void 0 : initialPromoCode.trim()) != null ? _a3 : "";
|
|
26088
26254
|
const referral = referrer;
|
|
@@ -26094,23 +26260,37 @@ var Tickets = ({
|
|
|
26094
26260
|
setPromoOpen(true);
|
|
26095
26261
|
setCodeState("busy");
|
|
26096
26262
|
checkout.applyPromoCode(eventId, promo).catch(() => void 0).finally(() => {
|
|
26097
|
-
|
|
26263
|
+
if (!catalogCurrent()) return;
|
|
26264
|
+
return refetchCatalog().catch((e) => {
|
|
26265
|
+
if (catalogCurrent()) setError(errorMessage(e));
|
|
26266
|
+
}).finally(() => {
|
|
26267
|
+
if (catalogCurrent()) setCodeState("idle");
|
|
26268
|
+
});
|
|
26098
26269
|
});
|
|
26099
26270
|
}
|
|
26100
|
-
}, [
|
|
26101
|
-
|
|
26271
|
+
}, [
|
|
26272
|
+
eventId,
|
|
26273
|
+
initialPromoCode,
|
|
26274
|
+
referrer,
|
|
26275
|
+
readAttributionFromUrl,
|
|
26276
|
+
catalog.instance,
|
|
26277
|
+
catalog.attributionReady
|
|
26278
|
+
]);
|
|
26279
|
+
useEffect29(() => {
|
|
26102
26280
|
checkout.syncCurrency(eventId, void 0, { seed: true }).catch(() => void 0);
|
|
26103
26281
|
}, [eventId]);
|
|
26104
26282
|
const changeCurrency = (nextCode) => {
|
|
26105
26283
|
checkout.syncCurrency(eventId, nextCode).then((res) => {
|
|
26106
|
-
if (res.requiresCatalogRefresh) {
|
|
26284
|
+
if (catalogCurrent() && res.requiresCatalogRefresh) {
|
|
26107
26285
|
setQty({});
|
|
26108
|
-
refetchCatalog()
|
|
26286
|
+
refetchCatalog().catch((e) => {
|
|
26287
|
+
if (catalogCurrent()) setError(errorMessage(e));
|
|
26288
|
+
});
|
|
26109
26289
|
}
|
|
26110
26290
|
}).catch(() => void 0);
|
|
26111
26291
|
};
|
|
26112
26292
|
const originals = useRef31({});
|
|
26113
|
-
|
|
26293
|
+
useEffect29(() => {
|
|
26114
26294
|
for (const t of tickets)
|
|
26115
26295
|
if (originals.current[t.id] == null) originals.current[t.id] = t.price;
|
|
26116
26296
|
}, [tickets]);
|
|
@@ -26123,7 +26303,7 @@ var Tickets = ({
|
|
|
26123
26303
|
const selectQty = (ticket, value6) => setQty(
|
|
26124
26304
|
(previous) => changeTicketQuantity(previous, tickets, ticket, value6, allowMultiple)
|
|
26125
26305
|
);
|
|
26126
|
-
const isSeated = (
|
|
26306
|
+
const isSeated = (_b = eventInfo == null ? void 0 : eventInfo.isSeatedEvent) != null ? _b : false;
|
|
26127
26307
|
const seatMapRow = (t) => isSeated && !t.allowDirectPurchase;
|
|
26128
26308
|
const hasSeatMapTickets = tickets.some(seatMapRow);
|
|
26129
26309
|
const directPurchasable = tickets.filter((t) => !seatMapRow(t));
|
|
@@ -26131,7 +26311,9 @@ var Tickets = ({
|
|
|
26131
26311
|
const firstTableIndex = tickets.findIndex((t) => t.isTable);
|
|
26132
26312
|
const firstTableId = firstTableIndex > 0 && tickets.slice(0, firstTableIndex).some((t) => !t.isTable) ? tickets[firstTableIndex].id : void 0;
|
|
26133
26313
|
const prime = () => {
|
|
26314
|
+
if (!catalogCurrent() || catalog.busy || codeState === "busy" || catalog.error) return;
|
|
26134
26315
|
setError("");
|
|
26316
|
+
const continuationCurrent = catalog.capturePrimeContinuation();
|
|
26135
26317
|
const selections = selected.map((t) => {
|
|
26136
26318
|
var _a3;
|
|
26137
26319
|
return {
|
|
@@ -26143,22 +26325,31 @@ var Tickets = ({
|
|
|
26143
26325
|
currency: t.currency
|
|
26144
26326
|
};
|
|
26145
26327
|
});
|
|
26146
|
-
checkout.setTickets(eventId, selections).then(() =>
|
|
26328
|
+
checkout.setTickets(eventId, selections).then(() => {
|
|
26329
|
+
if (continuationCurrent()) onContinue == null ? void 0 : onContinue();
|
|
26330
|
+
}).catch(
|
|
26147
26331
|
(e) => setError(
|
|
26148
26332
|
e instanceof ConfirmerBusyError ? createTranslator()(e.message) : errorMessage(e)
|
|
26149
26333
|
)
|
|
26150
26334
|
);
|
|
26151
26335
|
};
|
|
26152
26336
|
const applyCode = () => {
|
|
26153
|
-
if (!code.trim())
|
|
26337
|
+
if (!catalogCurrent() || !catalog.attributionReady || catalog.busy || codeState === "busy" || !code.trim())
|
|
26338
|
+
return;
|
|
26339
|
+
setError("");
|
|
26154
26340
|
setCodeState("busy");
|
|
26155
26341
|
checkout.applyPromoCode(eventId, code.trim()).catch(() => void 0).finally(() => {
|
|
26156
|
-
|
|
26342
|
+
if (!catalogCurrent()) return;
|
|
26343
|
+
return refetchCatalog().catch((e) => {
|
|
26344
|
+
if (catalogCurrent()) setError(errorMessage(e));
|
|
26345
|
+
}).finally(() => {
|
|
26346
|
+
if (catalogCurrent()) setCodeState("idle");
|
|
26347
|
+
});
|
|
26157
26348
|
});
|
|
26158
26349
|
};
|
|
26159
26350
|
const isAccess = promoMeta == null ? void 0 : promoMeta.isAccessCodeEnabled;
|
|
26160
26351
|
const showCodeInput = (promoMeta == null ? void 0 : promoMeta.isPromotionsEnabled) || isAccess;
|
|
26161
|
-
const listQuery =
|
|
26352
|
+
const listQuery = catalog;
|
|
26162
26353
|
const currency = checkout.currency;
|
|
26163
26354
|
const renderRow = (t) => {
|
|
26164
26355
|
var _a3, _b2;
|
|
@@ -26237,8 +26428,8 @@ var Tickets = ({
|
|
|
26237
26428
|
};
|
|
26238
26429
|
const timeGroups = [];
|
|
26239
26430
|
if (isTimeSlot)
|
|
26240
|
-
for (const t of
|
|
26241
|
-
const time = (
|
|
26431
|
+
for (const t of catalog.datedTickets) {
|
|
26432
|
+
const time = (_d = (_c = t.timeSlot) == null ? void 0 : _c.time) != null ? _d : "";
|
|
26242
26433
|
const g = timeGroups.find((x) => x.time === time);
|
|
26243
26434
|
if (g) g.items.push(t);
|
|
26244
26435
|
else timeGroups.push({ time, items: [t] });
|
|
@@ -26257,7 +26448,6 @@ var Tickets = ({
|
|
|
26257
26448
|
value: slotDate,
|
|
26258
26449
|
onChange: (d) => {
|
|
26259
26450
|
setSlotDate(d);
|
|
26260
|
-
setQty({});
|
|
26261
26451
|
},
|
|
26262
26452
|
options: dates.map((d) => ({ label: d, value: d }))
|
|
26263
26453
|
}
|
|
@@ -26277,11 +26467,15 @@ var Tickets = ({
|
|
|
26277
26467
|
}
|
|
26278
26468
|
)
|
|
26279
26469
|
] }) : null,
|
|
26280
|
-
isTimeSlot && !slotQuery.isLoading &&
|
|
26470
|
+
isTimeSlot && !slotQuery.isLoading && !((_e = slotQuery.data) == null ? void 0 : _e.length) && slotDate ? /* @__PURE__ */ jsx15(MutedText, { children: "No sessions available on this date." }) : null,
|
|
26281
26471
|
isTimeSlot ? timeGroups.map((g) => /* @__PURE__ */ jsxs12(Fragment2, { children: [
|
|
26282
26472
|
g.time ? /* @__PURE__ */ jsx15(Text11, { style: s9.slotTime, children: g.time }) : null,
|
|
26283
26473
|
g.items.map(renderRow)
|
|
26284
26474
|
] }, g.time)) : tickets.map(renderRow),
|
|
26475
|
+
isTimeSlot && catalog.regularTickets.length > 0 ? /* @__PURE__ */ jsxs12(Fragment3, { children: [
|
|
26476
|
+
/* @__PURE__ */ jsx15(Text11, { style: s9.slotTime, children: createTranslator()("tickets.getTickets") }),
|
|
26477
|
+
catalog.regularTickets.map(renderRow)
|
|
26478
|
+
] }) : null,
|
|
26285
26479
|
showCodeInput ? /* @__PURE__ */ jsx15(View12, { style: s9.promo, children: !isAccess && !promoOpen ? /* @__PURE__ */ jsx15(
|
|
26286
26480
|
Pressable8,
|
|
26287
26481
|
{
|
|
@@ -26306,7 +26500,7 @@ var Tickets = ({
|
|
|
26306
26500
|
variant: "ghost",
|
|
26307
26501
|
onPress: applyCode,
|
|
26308
26502
|
loading: codeState === "busy",
|
|
26309
|
-
disabled: codeState === "busy" || !code.trim(),
|
|
26503
|
+
disabled: !catalog.attributionReady || catalog.busy || codeState === "busy" || !code.trim(),
|
|
26310
26504
|
children: isAccess ? "ENTER" : "APPLY"
|
|
26311
26505
|
}
|
|
26312
26506
|
),
|
|
@@ -26316,14 +26510,14 @@ var Tickets = ({
|
|
|
26316
26510
|
directPurchasable.length > 0 ? renderContinue ? renderContinue({
|
|
26317
26511
|
onPress: prime,
|
|
26318
26512
|
loading: checkout.isBusy,
|
|
26319
|
-
disabled: checkout.orderFixed || checkout.isBusy || bundleStarting || selected.length === 0,
|
|
26513
|
+
disabled: checkout.orderFixed || checkout.isBusy || bundleStarting || catalog.busy || codeState === "busy" || !!catalog.error || selected.length === 0,
|
|
26320
26514
|
title: continueTitle
|
|
26321
26515
|
}) : /* @__PURE__ */ jsx15(
|
|
26322
26516
|
Button,
|
|
26323
26517
|
{
|
|
26324
26518
|
onPress: prime,
|
|
26325
26519
|
loading: checkout.isBusy,
|
|
26326
|
-
disabled: checkout.isBusy || bundleStarting || selected.length === 0,
|
|
26520
|
+
disabled: checkout.isBusy || bundleStarting || catalog.busy || codeState === "busy" || !!catalog.error || selected.length === 0,
|
|
26327
26521
|
children: checkout.isBusy ? "Reserving\u2026" : selectionIsTable ? "Reserve tables" : buttonLabel
|
|
26328
26522
|
}
|
|
26329
26523
|
) : null,
|
|
@@ -26348,7 +26542,7 @@ var Tickets = ({
|
|
|
26348
26542
|
error || checkout.error ? /* @__PURE__ */ jsx15(ErrorText, { children: error || checkout.error }) : null
|
|
26349
26543
|
] }) });
|
|
26350
26544
|
};
|
|
26351
|
-
var useTicketStyles = (theme) =>
|
|
26545
|
+
var useTicketStyles = (theme) => useMemo27(
|
|
26352
26546
|
() => StyleSheet13.create({
|
|
26353
26547
|
loading: { paddingVertical: 24, alignItems: "center" },
|
|
26354
26548
|
selectBlock: { gap: 6 },
|
|
@@ -26481,7 +26675,7 @@ var useTicketStyles = (theme) => useMemo26(
|
|
|
26481
26675
|
);
|
|
26482
26676
|
|
|
26483
26677
|
// src/sections/SeatsIoMap.tsx
|
|
26484
|
-
import { useMemo as
|
|
26678
|
+
import { useMemo as useMemo28 } from "react";
|
|
26485
26679
|
import { View as View13 } from "react-native";
|
|
26486
26680
|
import { WebView as WebView2 } from "react-native-webview";
|
|
26487
26681
|
import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
@@ -26490,7 +26684,7 @@ var SeatsIoMap = ({ eventId, initial, onContinue }) => {
|
|
|
26490
26684
|
const checkout = useCheckoutContext();
|
|
26491
26685
|
const flow = hooks_exports.useSeatsIoSelection(eventId, checkout, initial, onContinue);
|
|
26492
26686
|
const bundleStarting = hooks_exports.useBundleStarting(checkout.store);
|
|
26493
|
-
const html =
|
|
26687
|
+
const html = useMemo28(
|
|
26494
26688
|
() => flow.data.chart ? seatsIoChartDocument(flow.data.chart, flow.nonce) : "",
|
|
26495
26689
|
[flow.data.chart, flow.nonce]
|
|
26496
26690
|
);
|
|
@@ -26576,7 +26770,7 @@ var SeatsIoMap = ({ eventId, initial, onContinue }) => {
|
|
|
26576
26770
|
};
|
|
26577
26771
|
|
|
26578
26772
|
// src/sections/SeatMap.tsx
|
|
26579
|
-
import { useEffect as
|
|
26773
|
+
import { useEffect as useEffect30, useMemo as useMemo29, useRef as useRef32, useState as useState41 } from "react";
|
|
26580
26774
|
import { StyleSheet as StyleSheet14, Text as Text12, View as View14 } from "react-native";
|
|
26581
26775
|
import { WebView as WebView3 } from "react-native-webview";
|
|
26582
26776
|
|
|
@@ -26610,7 +26804,7 @@ var SeatMap = ({ eventId, onContinue }) => {
|
|
|
26610
26804
|
predefinedSeats: flow.chart.data.predefinedSeats
|
|
26611
26805
|
} : null;
|
|
26612
26806
|
const chart = flow.chart.state === "ready" ? flow.chart.data : null;
|
|
26613
|
-
const html =
|
|
26807
|
+
const html = useMemo29(
|
|
26614
26808
|
() => chart ? `<!doctype html><html><head><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"><style>html,body,#seat-map{margin:0;width:100%;height:100%;overflow:hidden}body{background:#fff}${SEAT_MAP_CSS}</style></head><body><div id="seat-map"></div><script>${SEAT_MAP_SCRIPT.replace(/<\/script/gi, "<\\/script")}</script></body></html>` : "",
|
|
26615
26809
|
[chart]
|
|
26616
26810
|
);
|
|
@@ -26621,7 +26815,7 @@ var SeatMap = ({ eventId, onContinue }) => {
|
|
|
26621
26815
|
`window.__tfSeatMapUpdate&&window.__tfSeatMapUpdate(${safeJson2(properties)});true;`
|
|
26622
26816
|
);
|
|
26623
26817
|
};
|
|
26624
|
-
|
|
26818
|
+
useEffect30(update, [properties && safeJson2(properties)]);
|
|
26625
26819
|
if (flow.chart.state === "provider") return /* @__PURE__ */ jsx17(SeatsIoMap, { eventId, initial: flow.chart.data, onContinue });
|
|
26626
26820
|
return /* @__PURE__ */ jsx17(FrozenFields, { frozen: checkout.orderFixed, children: /* @__PURE__ */ jsxs14(Card, { children: [
|
|
26627
26821
|
/* @__PURE__ */ jsx17(SectionHeader, { title: "Select your seats" }),
|
|
@@ -26757,7 +26951,7 @@ var styles5 = StyleSheet14.create({
|
|
|
26757
26951
|
});
|
|
26758
26952
|
|
|
26759
26953
|
// src/sections/AddOns.tsx
|
|
26760
|
-
import { Fragment as Fragment6, useMemo as
|
|
26954
|
+
import { Fragment as Fragment6, useMemo as useMemo30 } from "react";
|
|
26761
26955
|
import { Pressable as Pressable9, StyleSheet as StyleSheet15, Text as Text13, View as View16 } from "react-native";
|
|
26762
26956
|
|
|
26763
26957
|
// src/ui/CustomFields.tsx
|
|
@@ -27028,7 +27222,7 @@ var AddOns = ({
|
|
|
27028
27222
|
error || checkout.error ? /* @__PURE__ */ jsx19(ErrorText, { children: error || checkout.error }) : null
|
|
27029
27223
|
] }) });
|
|
27030
27224
|
};
|
|
27031
|
-
var useAddonStyles = (theme) =>
|
|
27225
|
+
var useAddonStyles = (theme) => useMemo30(
|
|
27032
27226
|
() => StyleSheet15.create({
|
|
27033
27227
|
head: { flexDirection: "row", alignItems: "center", flexWrap: "wrap", gap: 8 },
|
|
27034
27228
|
eyebrow: {
|
|
@@ -27122,7 +27316,7 @@ var useAddonStyles = (theme) => useMemo29(
|
|
|
27122
27316
|
);
|
|
27123
27317
|
|
|
27124
27318
|
// src/sections/Bundles.tsx
|
|
27125
|
-
import { useMemo as
|
|
27319
|
+
import { useMemo as useMemo31 } from "react";
|
|
27126
27320
|
import { StyleSheet as StyleSheet16, Text as Text14, View as View17 } from "react-native";
|
|
27127
27321
|
import { Fragment as Fragment7, jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
27128
27322
|
var money3 = (currency, amount2) => `${currency} ${amount2.toFixed(2)}`;
|
|
@@ -27372,7 +27566,7 @@ var Bundles = ({
|
|
|
27372
27566
|
/* @__PURE__ */ jsx20(Button, { onPress: flow.continueToDetails, disabled: !anySelected, children: t("bundles.continue") })
|
|
27373
27567
|
] });
|
|
27374
27568
|
};
|
|
27375
|
-
var useBundleStyles = (theme) =>
|
|
27569
|
+
var useBundleStyles = (theme) => useMemo31(
|
|
27376
27570
|
() => StyleSheet16.create({
|
|
27377
27571
|
loader: { paddingVertical: 20, alignItems: "center" },
|
|
27378
27572
|
heading: {
|
|
@@ -27427,8 +27621,8 @@ var useBundleStyles = (theme) => useMemo30(
|
|
|
27427
27621
|
// src/sections/BillingInfo.tsx
|
|
27428
27622
|
import {
|
|
27429
27623
|
Fragment as Fragment10,
|
|
27430
|
-
useEffect as
|
|
27431
|
-
useMemo as
|
|
27624
|
+
useEffect as useEffect31,
|
|
27625
|
+
useMemo as useMemo32,
|
|
27432
27626
|
useRef as useRef33,
|
|
27433
27627
|
useState as useState44
|
|
27434
27628
|
} from "react";
|
|
@@ -27959,21 +28153,21 @@ var BillingInfo = ({
|
|
|
27959
28153
|
setConsent: commitConsent
|
|
27960
28154
|
} = checkout;
|
|
27961
28155
|
const gates = checkout.fieldGates;
|
|
27962
|
-
const orderGroups =
|
|
28156
|
+
const orderGroups = useMemo32(
|
|
27963
28157
|
() => checkout.customFields.filter((g) => g.scope === "order"),
|
|
27964
28158
|
[checkout.customFields]
|
|
27965
28159
|
);
|
|
27966
|
-
const ticketGroups =
|
|
28160
|
+
const ticketGroups = useMemo32(
|
|
27967
28161
|
() => checkout.customFields.filter((g) => g.scope === "ticket"),
|
|
27968
28162
|
[checkout.customFields]
|
|
27969
28163
|
);
|
|
27970
|
-
const ticketFields =
|
|
28164
|
+
const ticketFields = useMemo32(
|
|
27971
28165
|
() => ticketGroups.flatMap((g) => g.fields),
|
|
27972
28166
|
[ticketGroups]
|
|
27973
28167
|
);
|
|
27974
28168
|
const holderNamesRequired = checkout.holderNamesRequired || collectTicketHolders;
|
|
27975
28169
|
const showHolders = holderNamesRequired || ticketFields.length > 0;
|
|
27976
|
-
const slots =
|
|
28170
|
+
const slots = useMemo32(() => {
|
|
27977
28171
|
var _a3, _b2;
|
|
27978
28172
|
const out = [];
|
|
27979
28173
|
const lines = (_b2 = (_a3 = checkout.breakdown) == null ? void 0 : _a3.tickets) != null ? _b2 : [];
|
|
@@ -27986,7 +28180,7 @@ var BillingInfo = ({
|
|
|
27986
28180
|
}
|
|
27987
28181
|
return out;
|
|
27988
28182
|
}, [checkout.breakdown, checkout.selections]);
|
|
27989
|
-
|
|
28183
|
+
useEffect31(() => {
|
|
27990
28184
|
const p = profile.data;
|
|
27991
28185
|
if (!p || profileSeeded.current) return;
|
|
27992
28186
|
profileSeeded.current = true;
|
|
@@ -28009,10 +28203,10 @@ var BillingInfo = ({
|
|
|
28009
28203
|
return keys.every((k) => next[k] === prev[k]) ? prev : next;
|
|
28010
28204
|
});
|
|
28011
28205
|
}, [profile.data, checkout.isLoggedIn]);
|
|
28012
|
-
|
|
28206
|
+
useEffect31(() => {
|
|
28013
28207
|
setHolders((prev) => holderDraftsForSlots(prev, slots, restoredHolders.current));
|
|
28014
28208
|
}, [slots]);
|
|
28015
|
-
|
|
28209
|
+
useEffect31(() => {
|
|
28016
28210
|
if (!showHolders) return;
|
|
28017
28211
|
setHolders(
|
|
28018
28212
|
(prev) => holderDraftsMirroringBuyer(prev, {
|
|
@@ -28023,7 +28217,7 @@ var BillingInfo = ({
|
|
|
28023
28217
|
})
|
|
28024
28218
|
);
|
|
28025
28219
|
}, [showHolders, billing.firstName, billing.lastName, billing.email, billing.phone]);
|
|
28026
|
-
|
|
28220
|
+
useEffect31(() => {
|
|
28027
28221
|
const email = billing.email.trim();
|
|
28028
28222
|
if (checkout.isLoggedIn || !isEmail(email)) return;
|
|
28029
28223
|
const t = setTimeout(
|
|
@@ -28037,18 +28231,18 @@ var BillingInfo = ({
|
|
|
28037
28231
|
const countriesQuery = hooks_exports.useCountries({
|
|
28038
28232
|
enabled: needsNationality || gates.showAddress
|
|
28039
28233
|
});
|
|
28040
|
-
const countries =
|
|
28234
|
+
const countries = useMemo32(() => {
|
|
28041
28235
|
var _a3;
|
|
28042
28236
|
return (_a3 = countriesQuery.data) != null ? _a3 : [];
|
|
28043
28237
|
}, [countriesQuery.data]);
|
|
28044
28238
|
const statesQuery = hooks_exports.useStates(billing.countryId, {
|
|
28045
28239
|
enabled: Boolean(billing.countryId)
|
|
28046
28240
|
});
|
|
28047
|
-
const states =
|
|
28241
|
+
const states = useMemo32(() => {
|
|
28048
28242
|
var _a3;
|
|
28049
28243
|
return (_a3 = statesQuery.data) != null ? _a3 : [];
|
|
28050
28244
|
}, [statesQuery.data]);
|
|
28051
|
-
|
|
28245
|
+
useEffect31(() => {
|
|
28052
28246
|
var _a3, _b2, _c2, _d2;
|
|
28053
28247
|
if (countryDefaultApplied.current || billing.countryId || countries.length === 0 || profile.isLoading || eventId && event.isLoading) {
|
|
28054
28248
|
return;
|
|
@@ -28087,7 +28281,7 @@ var BillingInfo = ({
|
|
|
28087
28281
|
event.isLoading,
|
|
28088
28282
|
(_e = event.data) == null ? void 0 : _e.countryCode
|
|
28089
28283
|
]);
|
|
28090
|
-
|
|
28284
|
+
useEffect31(() => {
|
|
28091
28285
|
var _a3;
|
|
28092
28286
|
if (!billing.countryId) return;
|
|
28093
28287
|
const country = countries.find(
|
|
@@ -28098,7 +28292,7 @@ var BillingInfo = ({
|
|
|
28098
28292
|
setBilling((current5) => ({ ...current5, countryCode }));
|
|
28099
28293
|
}
|
|
28100
28294
|
}, [billing.countryId, billing.countryCode, countries]);
|
|
28101
|
-
|
|
28295
|
+
useEffect31(() => {
|
|
28102
28296
|
if (!billing.stateId) return;
|
|
28103
28297
|
const state = states.find(
|
|
28104
28298
|
(candidate) => String(candidate.id) === String(billing.stateId)
|
|
@@ -28158,7 +28352,7 @@ var BillingInfo = ({
|
|
|
28158
28352
|
});
|
|
28159
28353
|
if (ttfOptInLabel || brandOptInLabel) commitConsent(consent);
|
|
28160
28354
|
};
|
|
28161
|
-
|
|
28355
|
+
useEffect31(() => {
|
|
28162
28356
|
if (combined) commit();
|
|
28163
28357
|
}, [
|
|
28164
28358
|
combined,
|
|
@@ -28432,7 +28626,7 @@ var BillingInfo = ({
|
|
|
28432
28626
|
showHolders ? continueButton : null
|
|
28433
28627
|
] });
|
|
28434
28628
|
};
|
|
28435
|
-
var useStyles4 = (theme) =>
|
|
28629
|
+
var useStyles4 = (theme) => useMemo32(
|
|
28436
28630
|
() => StyleSheet19.create({
|
|
28437
28631
|
loginRow: {
|
|
28438
28632
|
flexDirection: "row",
|
|
@@ -28625,7 +28819,7 @@ var Accommodation = ({ eventId }) => {
|
|
|
28625
28819
|
var styles9 = StyleSheet21.create({ room: { gap: 12, paddingVertical: 12 }, title: { fontSize: 16, fontWeight: "600" } });
|
|
28626
28820
|
|
|
28627
28821
|
// src/sections/Payment.tsx
|
|
28628
|
-
import { useEffect as
|
|
28822
|
+
import { useEffect as useEffect32, useMemo as useMemo33, useState as useState45 } from "react";
|
|
28629
28823
|
import { Platform as Platform2, View as View25 } from "react-native";
|
|
28630
28824
|
import { isPlatformPaySupported } from "@stripe/stripe-react-native";
|
|
28631
28825
|
import { Fragment as Fragment12, jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
@@ -28686,7 +28880,7 @@ var Payment = ({
|
|
|
28686
28880
|
const [extras, setExtras] = useState45({});
|
|
28687
28881
|
const [useSavedCard, setUseSavedCard] = useState45(true);
|
|
28688
28882
|
const [nativeWalletSupported, setNativeWalletSupported] = useState45(false);
|
|
28689
|
-
|
|
28883
|
+
useEffect32(() => {
|
|
28690
28884
|
let mounted = true;
|
|
28691
28885
|
const env = getConfig().env;
|
|
28692
28886
|
isPlatformPaySupported({ googlePay: { testEnv: env === "STAG" || env === "DEV" } }).then((supported) => {
|
|
@@ -28702,7 +28896,7 @@ var Payment = ({
|
|
|
28702
28896
|
const isFree = bd !== void 0 && Number(bd.total) === 0;
|
|
28703
28897
|
const isXendit = checkout.gateway === "xendit";
|
|
28704
28898
|
const offersOxxo = stripeOffersOxxo(checkout.stripeElementsConfig);
|
|
28705
|
-
const options =
|
|
28899
|
+
const options = useMemo33(() => {
|
|
28706
28900
|
var _a3, _b2, _c2, _d2, _e2;
|
|
28707
28901
|
if (isFree || !methods) return [];
|
|
28708
28902
|
const out = [];
|
|
@@ -28759,7 +28953,7 @@ var Payment = ({
|
|
|
28759
28953
|
nativeWalletSupported,
|
|
28760
28954
|
offersOxxo
|
|
28761
28955
|
]);
|
|
28762
|
-
|
|
28956
|
+
useEffect32(() => {
|
|
28763
28957
|
if (options.length && !options.some((o) => o.value === selected))
|
|
28764
28958
|
setSelected(options[0].value);
|
|
28765
28959
|
}, [options, selected]);
|
|
@@ -28944,11 +29138,11 @@ var Payment = ({
|
|
|
28944
29138
|
};
|
|
28945
29139
|
|
|
28946
29140
|
// src/sections/WaiverSigning.tsx
|
|
28947
|
-
import { useMemo as
|
|
29141
|
+
import { useMemo as useMemo35, useRef as useRef35, useState as useState47 } from "react";
|
|
28948
29142
|
import { Pressable as Pressable12, ScrollView, StyleSheet as StyleSheet23, Text as Text19, View as View27 } from "react-native";
|
|
28949
29143
|
|
|
28950
29144
|
// src/ui/SignaturePad.tsx
|
|
28951
|
-
import { memo, useEffect as
|
|
29145
|
+
import { memo, useEffect as useEffect33, useMemo as useMemo34, useRef as useRef34, useState as useState46 } from "react";
|
|
28952
29146
|
import { PanResponder, Pressable as Pressable11, StyleSheet as StyleSheet22, Text as Text18, View as View26 } from "react-native";
|
|
28953
29147
|
import { Fragment as Fragment13, jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
28954
29148
|
var LINE_WIDTH = 2.5;
|
|
@@ -29011,7 +29205,7 @@ var SignaturePad = ({
|
|
|
29011
29205
|
if (frameRequest.current !== null) return;
|
|
29012
29206
|
frameRequest.current = requestAnimationFrame(render);
|
|
29013
29207
|
};
|
|
29014
|
-
|
|
29208
|
+
useEffect33(
|
|
29015
29209
|
() => () => {
|
|
29016
29210
|
if (frameRequest.current !== null) cancelAnimationFrame(frameRequest.current);
|
|
29017
29211
|
},
|
|
@@ -29026,7 +29220,7 @@ var SignaturePad = ({
|
|
|
29026
29220
|
});
|
|
29027
29221
|
if (ended) report.current(ended.pngDataUrl, ended.inkLength);
|
|
29028
29222
|
};
|
|
29029
|
-
const responder =
|
|
29223
|
+
const responder = useMemo34(
|
|
29030
29224
|
() => PanResponder.create({
|
|
29031
29225
|
onStartShouldSetPanResponder: () => !disabledRef.current,
|
|
29032
29226
|
onMoveShouldSetPanResponder: () => !disabledRef.current,
|
|
@@ -29397,7 +29591,7 @@ var TicketForm = ({ ticket, consentText, t, methods, busy, locked = false, error
|
|
|
29397
29591
|
)
|
|
29398
29592
|
] });
|
|
29399
29593
|
};
|
|
29400
|
-
var useWaiverStyles = (theme) =>
|
|
29594
|
+
var useWaiverStyles = (theme) => useMemo35(
|
|
29401
29595
|
() => StyleSheet23.create({
|
|
29402
29596
|
muted: {
|
|
29403
29597
|
color: theme.muted,
|
|
@@ -29553,7 +29747,7 @@ var styles11 = StyleSheet24.create({
|
|
|
29553
29747
|
});
|
|
29554
29748
|
|
|
29555
29749
|
// src/sections/Rewards.tsx
|
|
29556
|
-
import { useEffect as
|
|
29750
|
+
import { useEffect as useEffect34, useState as useState51 } from "react";
|
|
29557
29751
|
import { Alert as Alert3, Image as Image3, Share as Share2, StyleSheet as StyleSheet27, View as View31 } from "react-native";
|
|
29558
29752
|
import Clipboard2 from "@react-native-clipboard/clipboard";
|
|
29559
29753
|
|
|
@@ -29662,7 +29856,7 @@ var styles12 = StyleSheet25.create({
|
|
|
29662
29856
|
});
|
|
29663
29857
|
|
|
29664
29858
|
// src/sections/rewards/RewardsTree.tsx
|
|
29665
|
-
import { useMemo as
|
|
29859
|
+
import { useMemo as useMemo36 } from "react";
|
|
29666
29860
|
import { StyleSheet as StyleSheet26, View as View30 } from "react-native";
|
|
29667
29861
|
import { jsx as jsx35, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
29668
29862
|
var MAX_NODES = 120;
|
|
@@ -29670,11 +29864,11 @@ var DOT = 10;
|
|
|
29670
29864
|
var ROOT_DOT = 16;
|
|
29671
29865
|
var RewardsTree = ({ tree, size = 260 }) => {
|
|
29672
29866
|
const theme = useTheme();
|
|
29673
|
-
const nodes =
|
|
29867
|
+
const nodes = useMemo36(() => {
|
|
29674
29868
|
var _a2;
|
|
29675
29869
|
return ((_a2 = tree == null ? void 0 : tree.nodes) != null ? _a2 : []).slice(0, MAX_NODES);
|
|
29676
29870
|
}, [tree]);
|
|
29677
|
-
const { layout, edges, rootId } =
|
|
29871
|
+
const { layout, edges, rootId } = useMemo36(() => {
|
|
29678
29872
|
const root = treeRootId(nodes);
|
|
29679
29873
|
const computed = computeRadialTreeLayout(nodes, root);
|
|
29680
29874
|
return { layout: computed, edges: radialTreeEdges(nodes, computed), rootId: root };
|
|
@@ -29764,7 +29958,7 @@ var RewardsView = ({
|
|
|
29764
29958
|
const [packName, setPackName] = useState51("");
|
|
29765
29959
|
const [packCode, setPackCode] = useState51("");
|
|
29766
29960
|
const [copied, setCopied] = useState51(false);
|
|
29767
|
-
|
|
29961
|
+
useEffect34(() => {
|
|
29768
29962
|
setCopied(false);
|
|
29769
29963
|
}, [rewards == null ? void 0 : rewards.share_link]);
|
|
29770
29964
|
if (!rewards)
|
|
@@ -29952,7 +30146,7 @@ var styles14 = StyleSheet27.create({
|
|
|
29952
30146
|
});
|
|
29953
30147
|
|
|
29954
30148
|
// src/sections/TicketChange.tsx
|
|
29955
|
-
import { useMemo as
|
|
30149
|
+
import { useMemo as useMemo37 } from "react";
|
|
29956
30150
|
import { Pressable as Pressable13, StyleSheet as StyleSheet28, Text as Text21, View as View32 } from "react-native";
|
|
29957
30151
|
import { Fragment as Fragment16, jsx as jsx37, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
29958
30152
|
var TicketChange = ({
|
|
@@ -30162,7 +30356,7 @@ var TicketChange = ({
|
|
|
30162
30356
|
flow.notice ? /* @__PURE__ */ jsx37(Text21, { style: s9.muted, children: t(flow.notice) }) : null
|
|
30163
30357
|
] });
|
|
30164
30358
|
};
|
|
30165
|
-
var useChangeStyles = (theme) =>
|
|
30359
|
+
var useChangeStyles = (theme) => useMemo37(
|
|
30166
30360
|
() => StyleSheet28.create({
|
|
30167
30361
|
loader: { paddingVertical: 20, alignItems: "center" },
|
|
30168
30362
|
muted: {
|
|
@@ -30276,7 +30470,7 @@ import {
|
|
|
30276
30470
|
} from "react-native";
|
|
30277
30471
|
|
|
30278
30472
|
// src/sections/discussion/CommentImages.tsx
|
|
30279
|
-
import { useEffect as
|
|
30473
|
+
import { useEffect as useEffect35, useState as useState52 } from "react";
|
|
30280
30474
|
import {
|
|
30281
30475
|
ActivityIndicator as ActivityIndicator3,
|
|
30282
30476
|
Image as Image4,
|
|
@@ -30289,9 +30483,9 @@ import {
|
|
|
30289
30483
|
} from "react-native";
|
|
30290
30484
|
|
|
30291
30485
|
// src/ui/useAccountT.ts
|
|
30292
|
-
import { useMemo as
|
|
30486
|
+
import { useMemo as useMemo38 } from "react";
|
|
30293
30487
|
var useAccountT = (locale) => {
|
|
30294
|
-
const translate2 =
|
|
30488
|
+
const translate2 = useMemo38(
|
|
30295
30489
|
() => createTranslator({ locale: resolveLocale(locale) }),
|
|
30296
30490
|
[locale]
|
|
30297
30491
|
);
|
|
@@ -30356,7 +30550,7 @@ var CommentImages = ({
|
|
|
30356
30550
|
const theme = useTheme();
|
|
30357
30551
|
const white = [s.white, { fontFamily: theme.fontFamily }];
|
|
30358
30552
|
const [selected, setSelected] = useState52(null);
|
|
30359
|
-
|
|
30553
|
+
useEffect35(() => {
|
|
30360
30554
|
if (selected === null) return;
|
|
30361
30555
|
onPreviewChange(true);
|
|
30362
30556
|
return () => onPreviewChange(false);
|
|
@@ -30612,7 +30806,7 @@ var s = StyleSheet29.create({
|
|
|
30612
30806
|
});
|
|
30613
30807
|
|
|
30614
30808
|
// src/sections/discussion/SwipeReply.tsx
|
|
30615
|
-
import { useMemo as
|
|
30809
|
+
import { useMemo as useMemo39, useRef as useRef36 } from "react";
|
|
30616
30810
|
import { Animated, PanResponder as PanResponder2, StyleSheet as StyleSheet30, Text as Text23, View as View35 } from "react-native";
|
|
30617
30811
|
import { jsx as jsx40, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
30618
30812
|
var SwipeReply = ({
|
|
@@ -30624,7 +30818,7 @@ var SwipeReply = ({
|
|
|
30624
30818
|
}) => {
|
|
30625
30819
|
const theme = useTheme();
|
|
30626
30820
|
const offset = useRef36(new Animated.Value(0)).current;
|
|
30627
|
-
const gesture =
|
|
30821
|
+
const gesture = useMemo39(() => {
|
|
30628
30822
|
const reset = () => Animated.spring(offset, { toValue: 0, useNativeDriver: true }).start();
|
|
30629
30823
|
return PanResponder2.create({
|
|
30630
30824
|
onMoveShouldSetPanResponder: (_, value6) => enabled && value6.dx < -12 && Math.abs(value6.dx) > Math.abs(value6.dy) * 1.5,
|
|
@@ -31728,7 +31922,7 @@ var styles15 = StyleSheet32.create({
|
|
|
31728
31922
|
});
|
|
31729
31923
|
|
|
31730
31924
|
// src/sections/Streaming.tsx
|
|
31731
|
-
import { useMemo as
|
|
31925
|
+
import { useMemo as useMemo40, useRef as useRef38, useState as useState54 } from "react";
|
|
31732
31926
|
import {
|
|
31733
31927
|
ActivityIndicator as ActivityIndicator5,
|
|
31734
31928
|
Alert as Alert6,
|
|
@@ -31757,7 +31951,7 @@ var StreamingView = ({
|
|
|
31757
31951
|
const defaultT = useAccountT(locale);
|
|
31758
31952
|
const t = translate2 != null ? translate2 : defaultT;
|
|
31759
31953
|
const inherited = useTheme();
|
|
31760
|
-
const theme =
|
|
31954
|
+
const theme = useMemo40(
|
|
31761
31955
|
() => override ? resolveTheme({ ...inherited, ...override }) : inherited,
|
|
31762
31956
|
[inherited, override]
|
|
31763
31957
|
);
|
|
@@ -31927,7 +32121,7 @@ var s4 = StyleSheet33.create({
|
|
|
31927
32121
|
});
|
|
31928
32122
|
|
|
31929
32123
|
// src/sections/AccountDeletion.tsx
|
|
31930
|
-
import { useMemo as
|
|
32124
|
+
import { useMemo as useMemo41 } from "react";
|
|
31931
32125
|
import {
|
|
31932
32126
|
ActivityIndicator as ActivityIndicator6,
|
|
31933
32127
|
Alert as Alert7,
|
|
@@ -31959,7 +32153,7 @@ var AccountDeletionView = ({
|
|
|
31959
32153
|
const defaultT = useAccountT(locale);
|
|
31960
32154
|
const t = translate2 != null ? translate2 : defaultT;
|
|
31961
32155
|
const inherited = useTheme();
|
|
31962
|
-
const theme =
|
|
32156
|
+
const theme = useMemo41(
|
|
31963
32157
|
() => override ? resolveTheme({ ...inherited, ...override }) : inherited,
|
|
31964
32158
|
[inherited, override]
|
|
31965
32159
|
);
|
|
@@ -32188,7 +32382,7 @@ var s5 = StyleSheet34.create({
|
|
|
32188
32382
|
});
|
|
32189
32383
|
|
|
32190
32384
|
// src/sections/ProfileSettings.tsx
|
|
32191
|
-
import { useEffect as
|
|
32385
|
+
import { useEffect as useEffect36, useMemo as useMemo42 } from "react";
|
|
32192
32386
|
import {
|
|
32193
32387
|
ActivityIndicator as ActivityIndicator7,
|
|
32194
32388
|
KeyboardAvoidingView as KeyboardAvoidingView2,
|
|
@@ -32223,7 +32417,7 @@ var ProfileSettingsView = ({
|
|
|
32223
32417
|
const defaultT = useAccountT(locale);
|
|
32224
32418
|
const t = translate2 != null ? translate2 : defaultT;
|
|
32225
32419
|
const inherited = useTheme();
|
|
32226
|
-
const theme =
|
|
32420
|
+
const theme = useMemo42(
|
|
32227
32421
|
() => override ? resolveTheme({ ...inherited, ...override }) : inherited,
|
|
32228
32422
|
[inherited, override]
|
|
32229
32423
|
);
|
|
@@ -32235,7 +32429,7 @@ var ProfileSettingsView = ({
|
|
|
32235
32429
|
} catch (e) {
|
|
32236
32430
|
}
|
|
32237
32431
|
};
|
|
32238
|
-
|
|
32432
|
+
useEffect36(() => {
|
|
32239
32433
|
if (flow.settings) flow.open(mode);
|
|
32240
32434
|
}, [mode, flow.scopeKey, Boolean(flow.settings)]);
|
|
32241
32435
|
const text6 = { color: theme.text, fontFamily: theme.fontFamily };
|
|
@@ -32740,7 +32934,7 @@ var AccountPaymentPlanSection = ({
|
|
|
32740
32934
|
};
|
|
32741
32935
|
|
|
32742
32936
|
// src/sections/NotificationPreferences.tsx
|
|
32743
|
-
import { useEffect as
|
|
32937
|
+
import { useEffect as useEffect37, useMemo as useMemo43 } from "react";
|
|
32744
32938
|
import {
|
|
32745
32939
|
ActivityIndicator as ActivityIndicator8,
|
|
32746
32940
|
Pressable as Pressable21,
|
|
@@ -32769,7 +32963,7 @@ var NotificationPreferencesView = ({
|
|
|
32769
32963
|
const defaultT = useAccountT(locale);
|
|
32770
32964
|
const t = translate2 != null ? translate2 : defaultT;
|
|
32771
32965
|
const inherited = useTheme();
|
|
32772
|
-
const theme =
|
|
32966
|
+
const theme = useMemo43(
|
|
32773
32967
|
() => override ? resolveTheme({ ...inherited, ...override }) : inherited,
|
|
32774
32968
|
[inherited, override]
|
|
32775
32969
|
);
|
|
@@ -32781,7 +32975,7 @@ var NotificationPreferencesView = ({
|
|
|
32781
32975
|
} catch (e) {
|
|
32782
32976
|
}
|
|
32783
32977
|
};
|
|
32784
|
-
|
|
32978
|
+
useEffect37(() => {
|
|
32785
32979
|
var _a3;
|
|
32786
32980
|
if ((_a3 = flow.preferences) == null ? void 0 : _a3.available) flow.begin();
|
|
32787
32981
|
}, [flow.scopeKey, Boolean(flow.preferences), (_a2 = flow.preferences) == null ? void 0 : _a2.available]);
|
|
@@ -32951,7 +33145,7 @@ import {
|
|
|
32951
33145
|
} from "react-native";
|
|
32952
33146
|
|
|
32953
33147
|
// src/auth/LoginForm.tsx
|
|
32954
|
-
import { useEffect as
|
|
33148
|
+
import { useEffect as useEffect38, useState as useState56 } from "react";
|
|
32955
33149
|
import { Pressable as Pressable23, StyleSheet as StyleSheet38, Text as Text31, View as View49 } from "react-native";
|
|
32956
33150
|
|
|
32957
33151
|
// src/auth/PasswordInput.tsx
|
|
@@ -33003,7 +33197,7 @@ var LoginForm = ({
|
|
|
33003
33197
|
const theme = useTheme();
|
|
33004
33198
|
const [email, setEmail] = useState56(initialEmail);
|
|
33005
33199
|
const [password, setPassword] = useState56("");
|
|
33006
|
-
|
|
33200
|
+
useEffect38(() => {
|
|
33007
33201
|
if (initialEmail && !email) setEmail(initialEmail);
|
|
33008
33202
|
}, [email, initialEmail]);
|
|
33009
33203
|
const submit = () => void onSubmit({ email, password });
|
|
@@ -33127,7 +33321,7 @@ var EmailCodeForm = ({
|
|
|
33127
33321
|
};
|
|
33128
33322
|
|
|
33129
33323
|
// src/auth/ForgotPasswordForm.tsx
|
|
33130
|
-
import { useEffect as
|
|
33324
|
+
import { useEffect as useEffect39, useState as useState58 } from "react";
|
|
33131
33325
|
import { Pressable as Pressable24, StyleSheet as StyleSheet39, Text as Text32, View as View51 } from "react-native";
|
|
33132
33326
|
import { jsx as jsx56, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
33133
33327
|
var ForgotPasswordForm = ({
|
|
@@ -33142,7 +33336,7 @@ var ForgotPasswordForm = ({
|
|
|
33142
33336
|
}) => {
|
|
33143
33337
|
const theme = useTheme();
|
|
33144
33338
|
const [email, setEmail] = useState58(initialEmail);
|
|
33145
|
-
|
|
33339
|
+
useEffect39(() => {
|
|
33146
33340
|
if (initialEmail && !email) setEmail(initialEmail);
|
|
33147
33341
|
}, [email, initialEmail]);
|
|
33148
33342
|
const submit = () => void onSubmit(email);
|
|
@@ -33190,7 +33384,7 @@ var styles18 = StyleSheet39.create({
|
|
|
33190
33384
|
});
|
|
33191
33385
|
|
|
33192
33386
|
// src/auth/RegisterForm.tsx
|
|
33193
|
-
import { useEffect as
|
|
33387
|
+
import { useEffect as useEffect40, useMemo as useMemo44, useState as useState59 } from "react";
|
|
33194
33388
|
import { Linking as Linking10, Pressable as Pressable25, StyleSheet as StyleSheet40, View as View52 } from "react-native";
|
|
33195
33389
|
import { Fragment as Fragment29, jsx as jsx57, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
33196
33390
|
var emptyRegistration = (email) => ({
|
|
@@ -33219,7 +33413,7 @@ var RegisterForm = ({
|
|
|
33219
33413
|
onFieldChange
|
|
33220
33414
|
}) => {
|
|
33221
33415
|
var _a2, _b, _c, _d, _e, _f;
|
|
33222
|
-
const t =
|
|
33416
|
+
const t = useMemo44(() => createTranslator({ locale }), [locale]);
|
|
33223
33417
|
const [values2, setValues] = useState59(
|
|
33224
33418
|
() => emptyRegistration(initialEmail)
|
|
33225
33419
|
);
|
|
@@ -33227,22 +33421,22 @@ var RegisterForm = ({
|
|
|
33227
33421
|
const [refreshingProof, setRefreshingProof] = useState59(false);
|
|
33228
33422
|
const [refreshCode, setRefreshCode] = useState59("");
|
|
33229
33423
|
const countriesQuery = hooks_exports.useCountries();
|
|
33230
|
-
const countries =
|
|
33424
|
+
const countries = useMemo44(() => {
|
|
33231
33425
|
var _a3;
|
|
33232
33426
|
return (_a3 = countriesQuery.data) != null ? _a3 : [];
|
|
33233
33427
|
}, [countriesQuery.data]);
|
|
33234
33428
|
const statesQuery = hooks_exports.useStates(values2.countryId, {
|
|
33235
33429
|
enabled: requireAddress && Boolean(values2.countryId)
|
|
33236
33430
|
});
|
|
33237
|
-
const states =
|
|
33431
|
+
const states = useMemo44(() => {
|
|
33238
33432
|
var _a3;
|
|
33239
33433
|
return (_a3 = statesQuery.data) != null ? _a3 : [];
|
|
33240
33434
|
}, [statesQuery.data]);
|
|
33241
|
-
|
|
33435
|
+
useEffect40(() => {
|
|
33242
33436
|
if (initialEmail && !values2.email)
|
|
33243
33437
|
setValues((current5) => ({ ...current5, email: initialEmail }));
|
|
33244
33438
|
}, [initialEmail, values2.email]);
|
|
33245
|
-
|
|
33439
|
+
useEffect40(() => {
|
|
33246
33440
|
var _a3;
|
|
33247
33441
|
if (!requireAddress || values2.countryId || countries.length === 0) return;
|
|
33248
33442
|
const preferred = (_a3 = countries.find((country) => {
|
|
@@ -33263,11 +33457,11 @@ var RegisterForm = ({
|
|
|
33263
33457
|
setValues((current5) => ({ ...current5, [field]: value6 }));
|
|
33264
33458
|
onFieldChange == null ? void 0 : onFieldChange(field);
|
|
33265
33459
|
};
|
|
33266
|
-
const countryOptions =
|
|
33460
|
+
const countryOptions = useMemo44(
|
|
33267
33461
|
() => countries.map((country) => ({ label: country.name, value: String(country.id) })),
|
|
33268
33462
|
[countries]
|
|
33269
33463
|
);
|
|
33270
|
-
const stateOptions =
|
|
33464
|
+
const stateOptions = useMemo44(
|
|
33271
33465
|
() => states.map((state) => ({ label: state.name, value: String(state.id) })),
|
|
33272
33466
|
[states]
|
|
33273
33467
|
);
|
|
@@ -33866,7 +34060,7 @@ function AccountEmailEnrichment({
|
|
|
33866
34060
|
}
|
|
33867
34061
|
|
|
33868
34062
|
// src/auth/AuthModal.tsx
|
|
33869
|
-
import { useCallback as
|
|
34063
|
+
import { useCallback as useCallback17, useEffect as useEffect41, useRef as useRef39 } from "react";
|
|
33870
34064
|
import { Image as Image8, Modal as Modal7, Pressable as Pressable26, ScrollView as ScrollView4, StyleSheet as StyleSheet42, Text as Text34, View as View55 } from "react-native";
|
|
33871
34065
|
import { jsx as jsx60, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
33872
34066
|
var Tab = ({
|
|
@@ -33901,7 +34095,7 @@ var CredentialAuthModal = ({
|
|
|
33901
34095
|
}) => {
|
|
33902
34096
|
const theme = useTheme();
|
|
33903
34097
|
const t = useAccountT();
|
|
33904
|
-
const closeAfterAuth =
|
|
34098
|
+
const closeAfterAuth = useCallback17(
|
|
33905
34099
|
(profile) => {
|
|
33906
34100
|
onAuthenticated == null ? void 0 : onAuthenticated(profile);
|
|
33907
34101
|
onClose();
|
|
@@ -34094,7 +34288,7 @@ var PhoneAccountModal = ({
|
|
|
34094
34288
|
onCancelled: onClose
|
|
34095
34289
|
});
|
|
34096
34290
|
const prepared = useRef39(false);
|
|
34097
|
-
|
|
34291
|
+
useEffect41(() => {
|
|
34098
34292
|
if (prepared.current) return;
|
|
34099
34293
|
prepared.current = true;
|
|
34100
34294
|
if (initialEmail) flow.emailAuth.showLogin(initialEmail);
|
|
@@ -34184,7 +34378,7 @@ var styles20 = StyleSheet42.create({
|
|
|
34184
34378
|
});
|
|
34185
34379
|
|
|
34186
34380
|
// src/auth/ResetPasswordForm.tsx
|
|
34187
|
-
import { useMemo as
|
|
34381
|
+
import { useMemo as useMemo45, useState as useState60 } from "react";
|
|
34188
34382
|
import { StyleSheet as StyleSheet43, Text as Text35, View as View56 } from "react-native";
|
|
34189
34383
|
import { jsx as jsx61, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
34190
34384
|
var ResetPasswordForm = ({
|
|
@@ -34197,7 +34391,7 @@ var ResetPasswordForm = ({
|
|
|
34197
34391
|
const [confirmation, setConfirmation] = useState60("");
|
|
34198
34392
|
const [submitted, setSubmitted] = useState60(false);
|
|
34199
34393
|
const [success, setSuccess] = useState60(false);
|
|
34200
|
-
const validation =
|
|
34394
|
+
const validation = useMemo45(() => {
|
|
34201
34395
|
if (!submitted)
|
|
34202
34396
|
return {};
|
|
34203
34397
|
return {
|
|
@@ -34256,7 +34450,7 @@ var styles21 = StyleSheet43.create({
|
|
|
34256
34450
|
});
|
|
34257
34451
|
|
|
34258
34452
|
// src/EmbeddedCheckout.tsx
|
|
34259
|
-
import { useEffect as
|
|
34453
|
+
import { useEffect as useEffect42, useRef as useRef40, useState as useState61 } from "react";
|
|
34260
34454
|
import { Pressable as Pressable27, ScrollView as ScrollView5, StyleSheet as StyleSheet44, Text as Text36, View as View57 } from "react-native";
|
|
34261
34455
|
import { Fragment as Fragment32, jsx as jsx62, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
34262
34456
|
var Flow = ({
|
|
@@ -34303,7 +34497,7 @@ var Flow = ({
|
|
|
34303
34497
|
orderFixed: checkout.orderFixed
|
|
34304
34498
|
});
|
|
34305
34499
|
const leaveAllowed = canLeavePayment(checkout);
|
|
34306
|
-
|
|
34500
|
+
useEffect42(() => {
|
|
34307
34501
|
if (visibleView === view) return;
|
|
34308
34502
|
if (visibleView === "checkout") setView("checkout");
|
|
34309
34503
|
else {
|
|
@@ -34311,7 +34505,7 @@ var Flow = ({
|
|
|
34311
34505
|
setSelectionView("tickets");
|
|
34312
34506
|
}
|
|
34313
34507
|
}, [view, visibleView]);
|
|
34314
|
-
|
|
34508
|
+
useEffect42(() => {
|
|
34315
34509
|
onViewChange == null ? void 0 : onViewChange(visibleView);
|
|
34316
34510
|
}, [onViewChange, visibleView]);
|
|
34317
34511
|
const enterCheckout = (from) => {
|
|
@@ -34703,6 +34897,7 @@ export {
|
|
|
34703
34897
|
bundleSubmitAction,
|
|
34704
34898
|
bundleSubmitState,
|
|
34705
34899
|
bundlesFromCatalog,
|
|
34900
|
+
calendarTicketRows,
|
|
34706
34901
|
callHost,
|
|
34707
34902
|
canLeavePayment,
|
|
34708
34903
|
captureSessionAction,
|
|
@@ -34711,6 +34906,8 @@ export {
|
|
|
34711
34906
|
cardFormShouldPrepare,
|
|
34712
34907
|
cartTicketCount,
|
|
34713
34908
|
cartTicketSlots,
|
|
34909
|
+
catalogDate,
|
|
34910
|
+
catalogQuantities,
|
|
34714
34911
|
changeBillingEmail,
|
|
34715
34912
|
changeBillingField,
|
|
34716
34913
|
changeBillingPhone,
|