tf-checkout-react 1.0.103 → 1.0.106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/api/index.d.ts +3 -1
  2. package/dist/components/common/CustomField.d.ts +1 -1
  3. package/dist/components/common/DatePickerField.d.ts +14 -0
  4. package/dist/components/common/RedirectModal.d.ts +7 -0
  5. package/dist/components/countdown/index.d.ts +3 -1
  6. package/dist/components/orderDetailsContainer/ticketsTable.d.ts +2 -0
  7. package/dist/components/rsvpContainer/index.d.ts +7 -0
  8. package/dist/components/ticketResale/index.d.ts +5 -3
  9. package/dist/components/ticketsContainer/AccessCodeSection.d.ts +7 -0
  10. package/dist/components/ticketsContainer/PromoCodeSection.d.ts +5 -9
  11. package/dist/components/ticketsContainer/TicketsSection.d.ts +6 -3
  12. package/dist/components/ticketsContainer/index.d.ts +9 -2
  13. package/dist/components/timerWidget/index.d.ts +3 -3
  14. package/dist/images/cross.svg +44 -0
  15. package/dist/images/done.svg +3 -3
  16. package/dist/index.d.ts +2 -0
  17. package/dist/tf-checkout-react.cjs.development.js +639 -223
  18. package/dist/tf-checkout-react.cjs.development.js.map +1 -1
  19. package/dist/tf-checkout-react.cjs.production.min.js +1 -1
  20. package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
  21. package/dist/tf-checkout-react.esm.js +645 -231
  22. package/dist/tf-checkout-react.esm.js.map +1 -1
  23. package/dist/tf-checkout-styles.css +1 -1
  24. package/package.json +89 -89
  25. package/src/.DS_Store +0 -0
  26. package/src/.d.ts +2 -2
  27. package/src/api/index.ts +300 -278
  28. package/src/assets/images/cross.svg +44 -0
  29. package/src/assets/images/done.svg +3 -3
  30. package/src/components/.DS_Store +0 -0
  31. package/src/components/billing-info-container/index.tsx +811 -799
  32. package/src/components/billing-info-container/style.css +105 -105
  33. package/src/components/billing-info-container/utils.ts +225 -224
  34. package/src/components/common/CheckboxField.tsx +41 -41
  35. package/src/components/common/CustomField.tsx +87 -84
  36. package/src/components/common/DatePickerField.tsx +98 -0
  37. package/src/components/common/FormikPhoneNumberField.tsx +51 -51
  38. package/src/components/common/Loader.tsx +9 -9
  39. package/src/components/common/RadioField.tsx +35 -35
  40. package/src/components/common/RedirectModal.tsx +43 -0
  41. package/src/components/common/SelectField.tsx +80 -80
  42. package/src/components/common/SnackbarAlert.tsx +53 -53
  43. package/src/components/common/index.tsx +4 -4
  44. package/src/components/confirmModal/index.tsx +51 -51
  45. package/src/components/confirmModal/style.css +21 -21
  46. package/src/components/confirmationContainer/config.ts +72 -72
  47. package/src/components/confirmationContainer/index.tsx +197 -197
  48. package/src/components/confirmationContainer/social-buttons.tsx +94 -94
  49. package/src/components/confirmationContainer/style.css +202 -202
  50. package/src/components/countdown/index.tsx +98 -89
  51. package/src/components/countdown/style.css +9 -9
  52. package/src/components/index.ts +7 -7
  53. package/src/components/loginModal/index.tsx +209 -209
  54. package/src/components/loginModal/style.css +71 -71
  55. package/src/components/myTicketsContainer/index.tsx +196 -196
  56. package/src/components/myTicketsContainer/row.tsx +41 -41
  57. package/src/components/myTicketsContainer/style.css +39 -39
  58. package/src/components/myTicketsContainer/tableConfig.tsx +34 -34
  59. package/src/components/orderDetailsContainer/index.tsx +252 -249
  60. package/src/components/orderDetailsContainer/style.css +72 -72
  61. package/src/components/orderDetailsContainer/ticketsTable.tsx +130 -124
  62. package/src/components/paymentContainer/index.tsx +285 -284
  63. package/src/components/registerModal/index.tsx +190 -190
  64. package/src/components/rsvpContainer/index.tsx +126 -0
  65. package/src/components/stripePayment/index.tsx +254 -253
  66. package/src/components/stripePayment/style.css +59 -59
  67. package/src/components/ticketResale/index.tsx +74 -56
  68. package/src/components/ticketResaleModal/index.tsx +215 -210
  69. package/src/components/ticketResaleModal/style.css +28 -28
  70. package/src/components/ticketsContainer/AccessCodeSection.tsx +50 -0
  71. package/src/components/ticketsContainer/PromoCodeSection.tsx +88 -99
  72. package/src/components/ticketsContainer/ReferralLogic.tsx +31 -33
  73. package/src/components/ticketsContainer/TicketRow.tsx +83 -83
  74. package/src/components/ticketsContainer/TicketsSection.tsx +90 -81
  75. package/src/components/ticketsContainer/index.tsx +464 -430
  76. package/src/components/ticketsContainer/style.css +181 -181
  77. package/src/components/ticketsContainer/utils.ts +11 -11
  78. package/src/components/timerWidget/index.tsx +87 -70
  79. package/src/components/timerWidget/style.css +34 -26
  80. package/src/components/waitingList/index.tsx +178 -178
  81. package/src/components/waitingList/style.css +26 -26
  82. package/src/env.ts +20 -20
  83. package/src/index.ts +15 -13
  84. package/src/normalizers/index.ts +45 -45
  85. package/src/types/billing-info-data.ts +37 -37
  86. package/src/types/payment-field.ts +7 -7
  87. package/src/types/referral-promotion.ts +7 -7
  88. package/src/utils/createCheckoutDataBodyWithDefaultHolder.ts +59 -59
  89. package/src/utils/downloadPDF.tsx +30 -30
  90. package/src/utils/formikErrorFocus.ts +24 -24
  91. package/src/utils/getImage.ts +14 -14
  92. package/src/utils/getQueryVariable.ts +13 -13
  93. package/src/utils/index.ts +5 -5
  94. package/src/utils/setConfigs.ts +26 -26
  95. package/src/utils/showZero.tsx +10 -10
  96. package/src/validators/index.ts +20 -20
@@ -34,20 +34,22 @@ var styles$1 = require('@mui/material/styles');
34
34
  var Backdrop = _interopDefault(require('@mui/material/Backdrop'));
35
35
  var Countdown$1 = _interopDefault(require('react-countdown'));
36
36
  var _isNumber = _interopDefault(require('lodash/isNumber'));
37
+ var SVG = _interopDefault(require('react-inlinesvg'));
38
+ var DatePicker = _interopDefault(require('@mui/lab/DatePicker'));
39
+ var AdapterMoment = _interopDefault(require('@mui/lab/AdapterMoment'));
40
+ var LocalizationProvider = _interopDefault(require('@mui/lab/LocalizationProvider'));
37
41
  var Container = _interopDefault(require('@mui/material/Container'));
38
42
  var Alert = _interopDefault(require('@mui/material/Alert'));
39
43
  var reactStripeJs = require('@stripe/react-stripe-js');
40
44
  var stripeJs = require('@stripe/stripe-js');
41
45
  var reactShare = require('react-share');
42
46
  var _some = _interopDefault(require('lodash/some'));
43
- var _every = _interopDefault(require('lodash/every'));
44
47
  var _find = _interopDefault(require('lodash/find'));
45
48
  var Button$1 = _interopDefault(require('react-bootstrap/Button'));
46
49
  var jwt_decode = _interopDefault(require('jwt-decode'));
47
50
  var _sortBy = _interopDefault(require('lodash/sortBy'));
48
51
  var FormControl = _interopDefault(require('@mui/material/FormControl'));
49
52
  var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
50
- var SVG = _interopDefault(require('react-inlinesvg'));
51
53
  var moment = _interopDefault(require('moment-timezone'));
52
54
  var privateTheming = require('@mui/private-theming');
53
55
  var Table = _interopDefault(require('@mui/material/Table'));
@@ -1121,6 +1123,13 @@ var publicRequest = /*#__PURE__*/axios.create({
1121
1123
  headers: ttfHeaders
1122
1124
  });
1123
1125
  publicRequest.interceptors.response.use(function (response) {
1126
+ var authGuestToken = _get(response, 'headers.authorization-guest');
1127
+
1128
+ if (isWindowDefined && authGuestToken) {
1129
+ window.localStorage.setItem('auth_guest_token', authGuestToken);
1130
+ publicRequest.setGuestToken(authGuestToken);
1131
+ }
1132
+
1124
1133
  return response;
1125
1134
  }, function (error) {
1126
1135
  var _error$response;
@@ -1129,7 +1138,6 @@ publicRequest.interceptors.response.use(function (response) {
1129
1138
  if (isWindowDefined) {
1130
1139
  var _error$response2, _error$response2$data;
1131
1140
 
1132
- window.localStorage.removeItem('auth_guest_token');
1133
1141
  window.localStorage.removeItem('user_data');
1134
1142
  window.localStorage.removeItem('access_token');
1135
1143
  var errorType = error == null ? void 0 : (_error$response2 = error.response) == null ? void 0 : (_error$response2$data = _error$response2.data) == null ? void 0 : _error$response2$data.error;
@@ -1140,6 +1148,13 @@ publicRequest.interceptors.response.use(function (response) {
1140
1148
  }
1141
1149
  }
1142
1150
 
1151
+ var authGuestToken = _get(error, 'response.headers.authorization-guest');
1152
+
1153
+ if (isWindowDefined && authGuestToken) {
1154
+ window.localStorage.setItem('auth_guest_token', authGuestToken);
1155
+ publicRequest.setGuestToken(authGuestToken);
1156
+ }
1157
+
1143
1158
  return Promise.reject(error);
1144
1159
  });
1145
1160
  publicRequest.interceptors.request.use(function (config) {
@@ -1325,8 +1340,14 @@ var postReferralVisits = function postReferralVisits(eventId, referralId) {
1325
1340
  referrer: "" + referralId
1326
1341
  });
1327
1342
  };
1328
- var checkTicketStatus = function checkTicketStatus(hash) {
1329
- return publicRequest.post("v1/ticket/" + hash + "/status/");
1343
+ var processTicket = function processTicket(hash) {
1344
+ return publicRequest.post("v1/ticket/" + hash + "/process/");
1345
+ };
1346
+ var declineInvitation = function declineInvitation(hash) {
1347
+ return publicRequest.post("v1/ticket/" + hash + "/decline");
1348
+ };
1349
+ var sendRSVPInfo = function sendRSVPInfo(eventId, data) {
1350
+ return publicRequest.post("v1/event/" + eventId + "/send-rsvp-info", data);
1330
1351
  };
1331
1352
 
1332
1353
  var style = {
@@ -1795,6 +1816,7 @@ var createRegisterFormData = function createRegisterFormData(values, checkoutBod
1795
1816
  bodyFormData.append('password_confirmation', values.confirmPassword);
1796
1817
  bodyFormData.append('client_id', CONFIGS.CLIENT_ID || 'e9d8f8922797b4621e562255afe90dbf');
1797
1818
  bodyFormData.append('client_secret', CONFIGS.CLIENT_SECRET || 'b89c191eff22fdcf84ac9bfd88d005355a151ec2c83b26b9');
1819
+ bodyFormData.append('check_cart_expiration', 'true');
1798
1820
 
1799
1821
  _forEach(checkoutBody.attributes, function (item, key) {
1800
1822
  bodyFormData.append(key, item);
@@ -1961,13 +1983,21 @@ var CustomField = function CustomField(_ref) {
1961
1983
  touched = _ref$form.touched,
1962
1984
  errors = _ref$form.errors,
1963
1985
  submitCount = _ref$form.submitCount,
1964
- theme = _ref.theme;
1986
+ theme = _ref.theme,
1987
+ _ref$inputProps = _ref.inputProps,
1988
+ pInputProps = _ref$inputProps === void 0 ? {} : _ref$inputProps,
1989
+ _ref$InputProps = _ref.InputProps,
1990
+ InputProps = _ref$InputProps === void 0 ? {} : _ref$InputProps,
1991
+ inputRef = _ref.inputRef;
1965
1992
  var isSelectField = type === 'select';
1966
1993
 
1967
1994
  var error = _get(errors, field.name);
1968
1995
 
1969
1996
  var isTouched = Boolean(_get(touched, field.name)) || _includes(field.name, 'holder') && !!error && !!submitCount;
1970
1997
  var customTheme = styles.useTheme();
1998
+ var inputProps = {
1999
+ sx: customTheme == null ? void 0 : customTheme.input
2000
+ };
1971
2001
  return React__default.createElement(TextField, Object.assign({
1972
2002
  id: field.name,
1973
2003
  label: label,
@@ -1984,12 +2014,11 @@ var CustomField = function CustomField(_ref) {
1984
2014
  }
1985
2015
  },
1986
2016
  InputLabelProps: {
1987
- sx: customTheme == null ? void 0 : customTheme.input,
1988
- shrink: field.name === 'holderAge' ? true : undefined
1989
- },
1990
- inputProps: {
1991
2017
  sx: customTheme == null ? void 0 : customTheme.input
1992
- }
2018
+ },
2019
+ InputProps: InputProps,
2020
+ inputProps: _extends({}, inputProps, pInputProps),
2021
+ inputRef: inputRef
1993
2022
  }, field), isSelectField ? _map(selectOptions, function (option) {
1994
2023
  return React__default.createElement("option", {
1995
2024
  key: option.value,
@@ -2176,6 +2205,20 @@ var showZero = function showZero(value) {
2176
2205
  return _isNumber(intNumber) ? intNumber >= 0 && intNumber < 10 ? '0' + intNumber : intNumber : null;
2177
2206
  };
2178
2207
 
2208
+ var getImage = function getImage(name) {
2209
+ if (name === void 0) {
2210
+ name = '';
2211
+ }
2212
+
2213
+ var image = '';
2214
+
2215
+ if (!name.trim().length) {
2216
+ return image;
2217
+ }
2218
+
2219
+ return image;
2220
+ };
2221
+
2179
2222
  var TimerWidget = function TimerWidget(_ref) {
2180
2223
  var expires_at = _ref.expires_at,
2181
2224
  buyLoading = _ref.buyLoading,
@@ -2208,9 +2251,25 @@ var TimerWidget = function TimerWidget(_ref) {
2208
2251
  return React__default.createElement("span", null, showZero(minutes), ":", showZero(seconds));
2209
2252
  };
2210
2253
 
2254
+ var hideTimer = function hideTimer() {
2255
+ var timerRl = document.querySelector('.timer');
2256
+
2257
+ if (timerRl) {
2258
+ timerRl.style.visibility = "hidden";
2259
+ }
2260
+ };
2261
+
2211
2262
  return showTimer && !!expires_at ? React__default.createElement("div", {
2212
2263
  className: "timer"
2213
2264
  }, React__default.createElement("div", {
2265
+ className: 'close-icon',
2266
+ onClick: hideTimer
2267
+ }, React__default.createElement(SVG, {
2268
+ src: getImage('cross.svg'),
2269
+ width: '10',
2270
+ height: '10',
2271
+ fill: '#fff'
2272
+ })), React__default.createElement("div", {
2214
2273
  className: "toast-message"
2215
2274
  }, React__default.createElement("p", null, "Please complete your purchase before the timer reaches zero."), React__default.createElement("p", {
2216
2275
  className: "countdown"
@@ -2224,6 +2283,8 @@ var TimerWidget = function TimerWidget(_ref) {
2224
2283
  })))) : null;
2225
2284
  };
2226
2285
 
2286
+ var TimerWidget$1 = /*#__PURE__*/React.memo(TimerWidget);
2287
+
2227
2288
  var SnackbarAlert = function SnackbarAlert(_ref) {
2228
2289
  var isOpen = _ref.isOpen,
2229
2290
  message = _ref.message,
@@ -2260,6 +2321,79 @@ var SnackbarAlert = function SnackbarAlert(_ref) {
2260
2321
  }, message)));
2261
2322
  };
2262
2323
 
2324
+ var DATE_SIZE = 32;
2325
+ var compactStyles = {
2326
+ '& > div': {
2327
+ minWidth: 256
2328
+ },
2329
+ '& > div > div, & > div > div > div, & .MuiCalendarPicker-root': {
2330
+ width: 256
2331
+ },
2332
+ '& .MuiTypography-caption': {
2333
+ width: DATE_SIZE,
2334
+ margin: 0
2335
+ },
2336
+ '& .PrivatePickersSlideTransition-root': {
2337
+ minHeight: DATE_SIZE * 6
2338
+ },
2339
+ '& .PrivatePickersSlideTransition-root [role="row"]': {
2340
+ margin: 0
2341
+ },
2342
+ '& .MuiPickersDay-dayWithMargin': {
2343
+ margin: 0
2344
+ },
2345
+ '& .MuiPickersDay-root': {
2346
+ width: DATE_SIZE,
2347
+ height: DATE_SIZE
2348
+ }
2349
+ };
2350
+ var compactStyleTheme = /*#__PURE__*/styles$1.createTheme({
2351
+ components: {
2352
+ MuiPaper: {
2353
+ defaultProps: {
2354
+ sx: compactStyles
2355
+ }
2356
+ }
2357
+ }
2358
+ });
2359
+ var DatePickerField = function DatePickerField(_ref) {
2360
+ var label = _ref.label,
2361
+ field = _ref.field,
2362
+ form = _ref.form,
2363
+ theme = _ref.theme,
2364
+ _ref$useCompact = _ref.useCompact,
2365
+ useCompact = _ref$useCompact === void 0 ? true : _ref$useCompact;
2366
+ return React__default.createElement(styles$1.ThemeProvider, {
2367
+ theme: useCompact ? compactStyleTheme : {}
2368
+ }, React__default.createElement(LocalizationProvider, {
2369
+ dateAdapter: AdapterMoment
2370
+ }, React__default.createElement(DatePicker, {
2371
+ value: field.value || '',
2372
+ onChange: function onChange(value) {
2373
+ return form.setFieldValue(field.name, value);
2374
+ },
2375
+ PopperProps: {
2376
+ placement: 'bottom-start'
2377
+ },
2378
+ showDaysOutsideCurrentMonth: true,
2379
+ disableFuture: true,
2380
+ inputFormat: "DD/MM/YYYY",
2381
+ mask: "__/__/____",
2382
+ renderInput: function renderInput(params) {
2383
+ return React__default.createElement(CustomField, Object.assign({}, params, {
2384
+ inputProps: _extends({}, params.inputProps, {
2385
+ placeholder: 'dd/mm/yyyy'
2386
+ }),
2387
+ theme: theme,
2388
+ field: field,
2389
+ form: form,
2390
+ label: label,
2391
+ type: "tel"
2392
+ }));
2393
+ }
2394
+ })));
2395
+ };
2396
+
2263
2397
  var LogicRunner = function LogicRunner(_ref) {
2264
2398
  var values = _ref.values,
2265
2399
  setStates = _ref.setStates,
@@ -2515,7 +2649,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2515
2649
 
2516
2650
  var hideTtfOptIn = _get(cartInfoData, 'hide_ttf_opt_in', true);
2517
2651
 
2518
- var expirationTime = _get(cartInfoData, 'expires_at');
2652
+ var expirationTime = _get(cartInfoData, 'expiresAt');
2519
2653
 
2520
2654
  var flagRequirePhone = getQueryVariable('phone_required') === 'true'; // Get prevProps
2521
2655
 
@@ -2716,7 +2850,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2716
2850
  switch (_context5.prev = _context5.next) {
2717
2851
  case 0:
2718
2852
  if (!(skipPage && !_isEmpty(ticketsQuantity) && !showDOB)) {
2719
- _context5.next = 16;
2853
+ _context5.next = 17;
2720
2854
  break;
2721
2855
  }
2722
2856
 
@@ -2728,29 +2862,30 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2728
2862
 
2729
2863
  case 6:
2730
2864
  res = _context5.sent;
2865
+ removeReferralKey();
2731
2866
  onSkipBillingPage(_get(res, 'data.data.attributes'));
2732
2867
  setLoading(false);
2733
- _context5.next = 14;
2868
+ _context5.next = 15;
2734
2869
  break;
2735
2870
 
2736
- case 11:
2737
- _context5.prev = 11;
2871
+ case 12:
2872
+ _context5.prev = 12;
2738
2873
  _context5.t0 = _context5["catch"](3);
2739
2874
  onSubmitError(_context5.t0);
2740
2875
 
2741
- case 14:
2742
- _context5.next = 17;
2876
+ case 15:
2877
+ _context5.next = 18;
2743
2878
  break;
2744
2879
 
2745
- case 16:
2880
+ case 17:
2746
2881
  setLoading(false);
2747
2882
 
2748
- case 17:
2883
+ case 18:
2749
2884
  case "end":
2750
2885
  return _context5.stop();
2751
2886
  }
2752
2887
  }
2753
- }, _callee5, null, [[3, 11]]);
2888
+ }, _callee5, null, [[3, 12]]);
2754
2889
  }));
2755
2890
 
2756
2891
  return function collectPaymentData() {
@@ -2775,10 +2910,19 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2775
2910
  }
2776
2911
 
2777
2912
  return checkoutBody;
2913
+ };
2914
+
2915
+ var removeReferralKey = function removeReferralKey() {
2916
+ localStorage.removeItem('referral_key');
2778
2917
  }; // Displaying loader
2779
2918
 
2780
2919
 
2781
- if (loading) {
2920
+ if (loading || enableTimer && !expirationTime && typeof window !== 'undefined') {
2921
+ if (expirationTime === 0) {
2922
+ // Redirect to homepage (countdown finished and browser reloaded case)
2923
+ window.location.href = '/';
2924
+ }
2925
+
2782
2926
  return React__default.createElement(Backdrop, {
2783
2927
  sx: {
2784
2928
  color: '#fff'
@@ -2791,7 +2935,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2791
2935
 
2792
2936
  return React__default.createElement(styles$1.ThemeProvider, {
2793
2937
  theme: themeMui
2794
- }, expirationTime && enableTimer && React__default.createElement(TimerWidget, {
2938
+ }, !!expirationTime && enableTimer && React__default.createElement(TimerWidget$1, {
2795
2939
  expires_at: expirationTime,
2796
2940
  onCountdownFinish: onCountdownFinish
2797
2941
  }), React__default.createElement(formik.Formik, {
@@ -2813,7 +2957,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2813
2957
  _context6.prev = 0;
2814
2958
 
2815
2959
  if (!isLoggedIn) {
2816
- _context6.next = 15;
2960
+ _context6.next = 16;
2817
2961
  break;
2818
2962
  }
2819
2963
 
@@ -2841,10 +2985,11 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2841
2985
 
2842
2986
  case 12:
2843
2987
  _res = _context6.sent;
2988
+ removeReferralKey();
2844
2989
  handleSubmit(values, formikHelpers, eventId, _res);
2845
2990
  return _context6.abrupt("return");
2846
2991
 
2847
- case 15:
2992
+ case 16:
2848
2993
  checkoutBodyForRegistration = createCheckoutDataBody(ticketsQuantity.length, values, {
2849
2994
  emailLogged: emailLogged,
2850
2995
  firstNameLogged: firstNameLogged,
@@ -2852,11 +2997,11 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2852
2997
  }, showDOB);
2853
2998
  bodyFormData = createRegisterFormData(values, checkoutBodyForRegistration);
2854
2999
  access_token_register = null;
2855
- _context6.prev = 18;
2856
- _context6.next = 21;
3000
+ _context6.prev = 19;
3001
+ _context6.next = 22;
2857
3002
  return register(bodyFormData);
2858
3003
 
2859
- case 21:
3004
+ case 22:
2860
3005
  resRegister = _context6.sent;
2861
3006
  access_token_register = _get(resRegister, 'data.data.attributes.access_token');
2862
3007
  refreshToken = _get(resRegister, 'data.data.attributes.refresh_token');
@@ -2866,12 +3011,12 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2866
3011
  refreshToken: refreshToken
2867
3012
  };
2868
3013
  onRegisterSuccess(tokens);
2869
- _context6.next = 33;
3014
+ _context6.next = 34;
2870
3015
  break;
2871
3016
 
2872
- case 29:
2873
- _context6.prev = 29;
2874
- _context6.t0 = _context6["catch"](18);
3017
+ case 30:
3018
+ _context6.prev = 30;
3019
+ _context6.t0 = _context6["catch"](19);
2875
3020
 
2876
3021
  if (axios.isAxiosError(_context6.t0)) {
2877
3022
  _error = _context6.t0 == null ? void 0 : (_e$response = _context6.t0.response) == null ? void 0 : (_e$response$data = _e$response.data) == null ? void 0 : _e$response$data.message;
@@ -2900,11 +3045,11 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2900
3045
 
2901
3046
  return _context6.abrupt("return");
2902
3047
 
2903
- case 33:
2904
- _context6.next = 35;
3048
+ case 34:
3049
+ _context6.next = 36;
2905
3050
  return getProfileData(access_token_register);
2906
3051
 
2907
- case 35:
3052
+ case 36:
2908
3053
  profileData = _context6.sent;
2909
3054
  profileSpecifiedData = _get(profileData, 'data.data');
2910
3055
  profileDataObj = setLoggedUserData(profileSpecifiedData);
@@ -2914,17 +3059,18 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2914
3059
  }
2915
3060
 
2916
3061
  checkoutBody = collectCheckoutBody(values);
2917
- _context6.next = 42;
3062
+ _context6.next = 43;
2918
3063
  return postOnCheckout(checkoutBody, access_token_register);
2919
3064
 
2920
- case 42:
3065
+ case 43:
2921
3066
  res = _context6.sent;
3067
+ removeReferralKey();
2922
3068
  handleSubmit(values, formikHelpers, eventId, res);
2923
- _context6.next = 49;
3069
+ _context6.next = 51;
2924
3070
  break;
2925
3071
 
2926
- case 46:
2927
- _context6.prev = 46;
3072
+ case 48:
3073
+ _context6.prev = 48;
2928
3074
  _context6.t1 = _context6["catch"](0);
2929
3075
 
2930
3076
  if (axios.isAxiosError(_context6.t1)) {
@@ -2944,12 +3090,12 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2944
3090
  onSubmitError(_context6.t1);
2945
3091
  }
2946
3092
 
2947
- case 49:
3093
+ case 51:
2948
3094
  case "end":
2949
3095
  return _context6.stop();
2950
3096
  }
2951
3097
  }
2952
- }, _callee6, null, [[0, 46], [18, 29]]);
3098
+ }, _callee6, null, [[0, 48], [19, 30]]);
2953
3099
  }));
2954
3100
 
2955
3101
  function onSubmit(_x2, _x3) {
@@ -3027,10 +3173,6 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
3027
3173
  el.required = flagRequirePhone;
3028
3174
  }
3029
3175
 
3030
- if (el.name === 'street_address') {
3031
- el.required = true;
3032
- }
3033
-
3034
3176
  return true;
3035
3177
  }), function (element) {
3036
3178
  return ['password', 'confirmPassword', 'password-info'].includes(element.name) && isLoggedIn ? null : React__default.createElement(React__default.Fragment, {
@@ -3044,7 +3186,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
3044
3186
  validate: getValidateFunctions(element, states, props.values),
3045
3187
  setFieldValue: props.setFieldValue,
3046
3188
  onBlur: props.handleBlur,
3047
- component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? SelectField : element.type === 'phone' ? FormikPhoneNumberField : CustomField,
3189
+ component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? SelectField : element.type === 'phone' ? FormikPhoneNumberField : element.type === 'date' ? DatePickerField : CustomField,
3048
3190
  selectOptions: element.name === 'country' ? countries : element.name === 'state' ? states : [],
3049
3191
  theme: theme
3050
3192
  })));
@@ -3186,7 +3328,7 @@ var CheckoutForm = function CheckoutForm(_ref) {
3186
3328
  while (1) {
3187
3329
  switch (_context.prev = _context.next) {
3188
3330
  case 0:
3189
- handleSetLoading(true);
3331
+ setStripeError(null);
3190
3332
  _context.prev = 1;
3191
3333
  event.preventDefault();
3192
3334
 
@@ -3246,17 +3388,18 @@ var CheckoutForm = function CheckoutForm(_ref) {
3246
3388
  return _context.abrupt("return");
3247
3389
 
3248
3390
  case 20:
3249
- _context.next = 22;
3391
+ handleSetLoading(true);
3392
+ _context.next = 23;
3250
3393
  return stripe.confirmCardPayment(stripe_client_secret, {
3251
3394
  payment_method: paymentMethodReq.paymentMethod.id
3252
3395
  });
3253
3396
 
3254
- case 22:
3397
+ case 23:
3255
3398
  _yield$stripe$confirm = _context.sent;
3256
3399
  _error = _yield$stripe$confirm.error;
3257
3400
 
3258
3401
  if (!_error) {
3259
- _context.next = 28;
3402
+ _context.next = 29;
3260
3403
  break;
3261
3404
  }
3262
3405
 
@@ -3264,22 +3407,22 @@ var CheckoutForm = function CheckoutForm(_ref) {
3264
3407
  handleSetLoading(false);
3265
3408
  return _context.abrupt("return");
3266
3409
 
3267
- case 28:
3410
+ case 29:
3268
3411
  onSubmit(null);
3269
- _context.next = 34;
3412
+ _context.next = 35;
3270
3413
  break;
3271
3414
 
3272
- case 31:
3273
- _context.prev = 31;
3415
+ case 32:
3416
+ _context.prev = 32;
3274
3417
  _context.t0 = _context["catch"](1);
3275
3418
  onSubmit(_context.t0);
3276
3419
 
3277
- case 34:
3420
+ case 35:
3278
3421
  case "end":
3279
3422
  return _context.stop();
3280
3423
  }
3281
3424
  }
3282
- }, _callee, null, [[1, 31]]);
3425
+ }, _callee, null, [[1, 32]]);
3283
3426
  }));
3284
3427
 
3285
3428
  return function handleSubmit(_x) {
@@ -3589,37 +3732,36 @@ var PaymentContainer = function PaymentContainer(_ref) {
3589
3732
  _context3.prev = 0;
3590
3733
 
3591
3734
  if (!error) {
3592
- _context3.next = 4;
3735
+ _context3.next = 3;
3593
3736
  break;
3594
3737
  }
3595
3738
 
3596
- setPaymentIsLoading(false);
3597
3739
  throw error;
3598
3740
 
3599
- case 4:
3741
+ case 3:
3600
3742
  order_hash = reviewData.order_details.order_hash;
3601
3743
 
3602
3744
  if (!(total === "0.00")) {
3603
- _context3.next = 11;
3745
+ _context3.next = 10;
3604
3746
  break;
3605
3747
  }
3606
3748
 
3607
- _context3.next = 8;
3749
+ _context3.next = 7;
3608
3750
  return handleFreeSuccess(order_hash);
3609
3751
 
3610
- case 8:
3752
+ case 7:
3611
3753
  _context3.t0 = _context3.sent;
3612
- _context3.next = 14;
3754
+ _context3.next = 13;
3613
3755
  break;
3614
3756
 
3615
- case 11:
3616
- _context3.next = 13;
3757
+ case 10:
3758
+ _context3.next = 12;
3617
3759
  return handlePaymentSuccess(order_hash);
3618
3760
 
3619
- case 13:
3761
+ case 12:
3620
3762
  _context3.t0 = _context3.sent;
3621
3763
 
3622
- case 14:
3764
+ case 13:
3623
3765
  paymentSuccessResponse = _context3.t0;
3624
3766
 
3625
3767
  if (paymentSuccessResponse.status === 200) {
@@ -3630,10 +3772,11 @@ var PaymentContainer = function PaymentContainer(_ref) {
3630
3772
  _context3.next = 22;
3631
3773
  break;
3632
3774
 
3633
- case 18:
3634
- _context3.prev = 18;
3775
+ case 17:
3776
+ _context3.prev = 17;
3635
3777
  _context3.t1 = _context3["catch"](0);
3636
3778
  setError(_get(_context3.t1, 'response.data.message'));
3779
+ setPaymentIsLoading(false);
3637
3780
  onPaymentError(_context3.t1.response);
3638
3781
 
3639
3782
  case 22:
@@ -3641,7 +3784,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3641
3784
  return _context3.stop();
3642
3785
  }
3643
3786
  }
3644
- }, _callee3, null, [[0, 18]]);
3787
+ }, _callee3, null, [[0, 17]]);
3645
3788
  }));
3646
3789
 
3647
3790
  return function handlePaymentMiddleWare(_x) {
@@ -3654,7 +3797,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3654
3797
  theme: themeMui
3655
3798
  }, React__default.createElement("div", {
3656
3799
  className: "payment_page"
3657
- }, !paymentIsLoading && !error && enableTimer && React__default.createElement(TimerWidget, {
3800
+ }, enableTimer && React__default.createElement(TimerWidget$1, {
3658
3801
  expires_at: _get(reviewData, 'expires_at', 0),
3659
3802
  buyLoading: paymentIsLoading,
3660
3803
  onCountdownFinish: onCountdownFinish
@@ -3712,6 +3855,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3712
3855
  disabled: paymentIsLoading,
3713
3856
  type: "button",
3714
3857
  onClick: function onClick() {
3858
+ setPaymentIsLoading(true);
3715
3859
  handlePaymentMiddleWare(null);
3716
3860
  }
3717
3861
  }, paymentIsLoading ? React__default.createElement(CircularProgress, {
@@ -4148,11 +4292,12 @@ var TicketsSection = function TicketsSection(_ref) {
4148
4292
  var ticketsList = _ref.ticketsList,
4149
4293
  selectedTickets = _ref.selectedTickets,
4150
4294
  handleTicketSelect = _ref.handleTicketSelect,
4151
- promoCodeIsApplied = _ref.promoCodeIsApplied;
4152
-
4153
- var sortedTicketsList = _sortBy(ticketsList, 'sortOrder');
4154
-
4155
- return React__default.createElement(React__default.Fragment, null, sortedTicketsList.map(function (ticket, i, arr) {
4295
+ codeIsApplied = _ref.codeIsApplied,
4296
+ sortBySoldOut = _ref.sortBySoldOut,
4297
+ ticketsHeaderComponent = _ref.ticketsHeaderComponent,
4298
+ hideTicketsHeader = _ref.hideTicketsHeader;
4299
+ var sortedTicketsList = sortBySoldOut ? _sortBy(_sortBy(ticketsList, 'sortOrder'), 'soldOut') : _sortBy(ticketsList, 'sortOrder');
4300
+ return React__default.createElement(React__default.Fragment, null, !hideTicketsHeader && ticketsHeaderComponent, sortedTicketsList.map(function (ticket, i, arr) {
4156
4301
  var isSoldOut = ticket.sold_out || !ticket.displayTicket || ticket.soldOut;
4157
4302
 
4158
4303
  var ticketSelect = function ticketSelect(event) {
@@ -4162,12 +4307,12 @@ var TicketsSection = function TicketsSection(_ref) {
4162
4307
 
4163
4308
  var ticketIsDiscounted = false;
4164
4309
 
4165
- if (ticket.oldPrice && promoCodeIsApplied && !isSoldOut && ticket.oldPrice !== ticket.price) {
4310
+ if (ticket.oldPrice && codeIsApplied && !isSoldOut && ticket.oldPrice !== ticket.price) {
4166
4311
  ticketIsDiscounted = true;
4167
4312
  }
4168
4313
 
4169
- var ticketIsFree = (+ticket.cost || +ticket.price) === 0;
4170
- var ticketPrice = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : "$ " + (+ticket.cost || +ticket.price).toFixed(2);
4314
+ var ticketIsFree = +ticket.price === 0;
4315
+ var ticketPrice = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : "$ " + (+ticket.price).toFixed(2);
4171
4316
  return React__default.createElement("div", {
4172
4317
  key: ticket.id || ticket.name,
4173
4318
  className: "event-detail__tier " + (isSoldOut ? 'disabled' : '')
@@ -4359,31 +4504,14 @@ var WaitingList = function WaitingList(_ref) {
4359
4504
  }) : 'ADD TO WAITING LIST')))));
4360
4505
  };
4361
4506
 
4362
- var getImage = function getImage(name) {
4363
- if (name === void 0) {
4364
- name = '';
4365
- }
4366
-
4367
- var image = '';
4368
-
4369
- if (!name.trim().length) {
4370
- return image;
4371
- }
4372
-
4373
- return image;
4374
- };
4375
-
4376
4507
  var PromoCodeSection = function PromoCodeSection(_ref) {
4377
- var promoCode = _ref.promoCode,
4378
- promoCodeIsApplied = _ref.promoCodeIsApplied,
4508
+ var code = _ref.code,
4509
+ codeIsApplied = _ref.codeIsApplied,
4379
4510
  showPromoInput = _ref.showPromoInput,
4380
- isPromotionsEnabled = _ref.isPromotionsEnabled,
4381
- setPromoCode = _ref.setPromoCode,
4382
- setPromoCodeUpdated = _ref.setPromoCodeUpdated,
4511
+ setCode = _ref.setCode,
4383
4512
  setShowPromoInput = _ref.setShowPromoInput,
4384
- isAccessCodeEnabled = _ref.isAccessCodeEnabled,
4385
- isPromoLoading = _ref.isPromoLoading;
4386
- var isPromoCodeHasValue = !!promoCode.trim();
4513
+ updateTickets = _ref.updateTickets;
4514
+ var isPromoCodeHasValue = !!code.trim();
4387
4515
 
4388
4516
  var renderInputField = function renderInputField() {
4389
4517
  return React__default.createElement("div", {
@@ -4392,30 +4520,30 @@ var PromoCodeSection = function PromoCodeSection(_ref) {
4392
4520
  className: "promo-code-block"
4393
4521
  }, React__default.createElement("p", {
4394
4522
  className: "promo-code-text"
4395
- }, isAccessCodeEnabled ? 'Access code required' : 'Promo code')), React__default.createElement("input", {
4523
+ }, "Promo code")), React__default.createElement("input", {
4396
4524
  className: "promo-code-input",
4397
4525
  placeholder: "",
4398
4526
  onChange: function onChange(e) {
4399
- setPromoCode(e.target.value);
4527
+ setCode(e.target.value);
4400
4528
  },
4401
4529
  onKeyPress: function onKeyPress(event) {
4402
4530
  if (event.key === 'Enter' && isPromoCodeHasValue) {
4403
- setPromoCodeUpdated(promoCode);
4404
4531
  setShowPromoInput(false);
4532
+ updateTickets(true);
4405
4533
  }
4406
4534
  }
4407
4535
  }), React__default.createElement(Button$1, {
4408
4536
  className: "promo-submit-button",
4409
4537
  onClick: function onClick() {
4410
4538
  if (isPromoCodeHasValue) {
4411
- setPromoCodeUpdated(promoCode);
4412
4539
  setShowPromoInput(false);
4540
+ updateTickets(true);
4413
4541
  }
4414
4542
  }
4415
- }, isAccessCodeEnabled ? 'ENTER' : 'APPLY'));
4543
+ }, "APPLY"));
4416
4544
  };
4417
4545
 
4418
- return isPromoLoading ? React__default.createElement(Loader, null) : React__default.createElement("div", null, promoCodeIsApplied ? React__default.createElement("div", {
4546
+ return React__default.createElement("div", null, codeIsApplied ? React__default.createElement("div", {
4419
4547
  className: "alert-info"
4420
4548
  }, React__default.createElement(SVG, {
4421
4549
  src: getImage('done.svg'),
@@ -4424,13 +4552,45 @@ var PromoCodeSection = function PromoCodeSection(_ref) {
4424
4552
  }
4425
4553
  }), React__default.createElement("p", {
4426
4554
  className: "promo-code-success"
4427
- }, "PROMO CODE APPLIED SUCCESSFULLY")) : null, showPromoInput && renderInputField(), isPromotionsEnabled && !showPromoInput && !isAccessCodeEnabled ? React__default.createElement(Button$1, {
4555
+ }, "PROMO CODE APPLIED SUCCESSFULLY")) : null, !showPromoInput && React__default.createElement(Button$1, {
4428
4556
  className: "promo-code-button",
4429
4557
  placeholder: "Promo Codes",
4430
4558
  onClick: function onClick() {
4431
4559
  setShowPromoInput(true);
4432
4560
  }
4433
- }, "Got a promo code? Click here") : !isPromotionsEnabled && !showPromoInput && isAccessCodeEnabled && !promoCodeIsApplied ? renderInputField() : null);
4561
+ }, "Got a promo code? Click here"), showPromoInput && renderInputField());
4562
+ };
4563
+
4564
+ var AccessCodeSection = function AccessCodeSection(_ref) {
4565
+ var code = _ref.code,
4566
+ setCode = _ref.setCode,
4567
+ updateTickets = _ref.updateTickets;
4568
+ var isAccessCodeHasValue = !!code.trim();
4569
+ return React__default.createElement("div", {
4570
+ className: "access-code-block"
4571
+ }, React__default.createElement("div", {
4572
+ className: "access-code-block"
4573
+ }, React__default.createElement("p", {
4574
+ className: "access-code-text"
4575
+ }, "Access code required")), React__default.createElement("input", {
4576
+ className: "access-code-input",
4577
+ placeholder: "",
4578
+ onChange: function onChange(e) {
4579
+ setCode(e.target.value);
4580
+ },
4581
+ onKeyPress: function onKeyPress(event) {
4582
+ if (event.key === 'Enter' && isAccessCodeHasValue) {
4583
+ updateTickets(true);
4584
+ }
4585
+ }
4586
+ }), React__default.createElement(Button$1, {
4587
+ className: "access-submit-button",
4588
+ onClick: function onClick() {
4589
+ if (isAccessCodeHasValue) {
4590
+ updateTickets(true);
4591
+ }
4592
+ }
4593
+ }, "ENTER"));
4434
4594
  };
4435
4595
 
4436
4596
  var isTimeExpired = function isTimeExpired(startDate, timezone) {
@@ -4445,8 +4605,11 @@ function Countdown(_ref) {
4445
4605
  title = _ref$title === void 0 ? '' : _ref$title,
4446
4606
  _ref$message = _ref.message,
4447
4607
  message = _ref$message === void 0 ? '' : _ref$message,
4608
+ _ref$disableLeadingZe = _ref.disableLeadingZero,
4609
+ disableLeadingZero = _ref$disableLeadingZe === void 0 ? false : _ref$disableLeadingZe,
4448
4610
  _ref$callback = _ref.callback,
4449
- callback = _ref$callback === void 0 ? function () {} : _ref$callback;
4611
+ callback = _ref$callback === void 0 ? function () {} : _ref$callback,
4612
+ isLoggedIn = _ref.isLoggedIn;
4450
4613
 
4451
4614
  var _useState = React.useState(''),
4452
4615
  duration = _useState[0],
@@ -4468,6 +4631,7 @@ function Countdown(_ref) {
4468
4631
  clearInterval(timer);
4469
4632
  setTimeExpired(true);
4470
4633
  callback();
4634
+ return;
4471
4635
  }
4472
4636
 
4473
4637
  var currentDate = moment.tz(moment(), timezone).format('YYYY-MM-DD HH:mm:ss');
@@ -4485,7 +4649,11 @@ function Countdown(_ref) {
4485
4649
 
4486
4650
  for (var date in dateArr) {
4487
4651
  var unit = dateArr[date] === 1 ? date : date + 's';
4488
- var val = String(dateArr[date]).length === 1 ? '0' + dateArr[date] : dateArr[date];
4652
+ var val = dateArr[date];
4653
+
4654
+ if (!disableLeadingZero && String(dateArr[date]).length === 1) {
4655
+ val = '0' + dateArr[date];
4656
+ }
4489
4657
 
4490
4658
  if (timeLeft) {
4491
4659
  timeLeft += ", " + val + " " + unit;
@@ -4503,7 +4671,7 @@ function Countdown(_ref) {
4503
4671
  };
4504
4672
  }, [timeExpired]);
4505
4673
  return React__default.createElement(React__default.Fragment, null, !timeExpired && duration && React__default.createElement("div", {
4506
- className: 'countdown'
4674
+ className: "countdown " + (!isLoggedIn ? 'countdown-on-bottom' : '')
4507
4675
  }, React__default.createElement("div", null, React__default.createElement("p", {
4508
4676
  className: 'title'
4509
4677
  }, title), React__default.createElement("p", null, duration)), React__default.createElement("p", {
@@ -4518,7 +4686,8 @@ var ReferralLogic = function ReferralLogic(props) {
4518
4686
  if (isWindowDefined) {
4519
4687
  var params = new URL("" + window.location).searchParams;
4520
4688
  var referralId = params.get('ttf_r') || '';
4521
- var isAlreadyCounted = !!localStorage.getItem('referral_key');
4689
+ var referralValue = [eventId, '.', referralId].join('');
4690
+ var isAlreadyCounted = localStorage.getItem('referral_key') === referralValue;
4522
4691
 
4523
4692
  if (referralId && eventId && !isAlreadyCounted) {
4524
4693
  _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
@@ -4531,7 +4700,7 @@ var ReferralLogic = function ReferralLogic(props) {
4531
4700
  return postReferralVisits("" + eventId, referralId);
4532
4701
 
4533
4702
  case 3:
4534
- localStorage.setItem('referral_key', [eventId, '.', referralId].join(''));
4703
+ localStorage.setItem('referral_key', referralValue);
4535
4704
  _context.next = 8;
4536
4705
  break;
4537
4706
 
@@ -4579,7 +4748,17 @@ var TicketsContainer = function TicketsContainer(_ref) {
4579
4748
  _ref$hideWaitingList = _ref.hideWaitingList,
4580
4749
  hideWaitingList = _ref$hideWaitingList === void 0 ? false : _ref$hideWaitingList,
4581
4750
  _ref$isButtonScrollab = _ref.isButtonScrollable,
4582
- isButtonScrollable = _ref$isButtonScrollab === void 0 ? false : _ref$isButtonScrollab;
4751
+ isButtonScrollable = _ref$isButtonScrollab === void 0 ? false : _ref$isButtonScrollab,
4752
+ _ref$sortBySoldOut = _ref.sortBySoldOut,
4753
+ sortBySoldOut = _ref$sortBySoldOut === void 0 ? false : _ref$sortBySoldOut,
4754
+ _ref$disableCountdown = _ref.disableCountdownLeadingZero,
4755
+ disableCountdownLeadingZero = _ref$disableCountdown === void 0 ? false : _ref$disableCountdown,
4756
+ _ref$isLoggedIn = _ref.isLoggedIn,
4757
+ isLoggedIn = _ref$isLoggedIn === void 0 ? false : _ref$isLoggedIn,
4758
+ ActionsSectionComponent = _ref.actionsSectionComponent,
4759
+ ticketsHeaderComponent = _ref.ticketsHeaderComponent,
4760
+ _ref$hideTicketsHeade = _ref.hideTicketsHeader,
4761
+ hideTicketsHeader = _ref$hideTicketsHeade === void 0 ? false : _ref$hideTicketsHeade;
4583
4762
 
4584
4763
  var _useState = React.useState({}),
4585
4764
  selectedTickets = _useState[0],
@@ -4607,33 +4786,37 @@ var TicketsContainer = function TicketsContainer(_ref) {
4607
4786
  showWaitingList = _useState6[0],
4608
4787
  setShowWaitingList = _useState6[1];
4609
4788
 
4610
- var _useState7 = React.useState(false),
4789
+ var _useState7 = React.useState(true),
4611
4790
  isLoading = _useState7[0],
4612
4791
  setIsLoading = _useState7[1];
4613
4792
 
4614
4793
  var _useState8 = React.useState(false),
4615
- isPromoLoading = _useState8[0],
4616
- setIsPromoLoading = _useState8[1];
4794
+ codeIsLoading = _useState8[0],
4795
+ setCodeIsLoading = _useState8[1];
4617
4796
 
4618
4797
  var _useState9 = React.useState(false),
4619
4798
  handleBookIsLoading = _useState9[0],
4620
4799
  setHandleBookIsLoading = _useState9[1];
4621
4800
 
4622
- var _useState10 = React.useState(''),
4623
- promoCode = _useState10[0],
4624
- setPromoCode = _useState10[1];
4801
+ var _useState10 = React.useState(getQueryVariable('r') || queryPromoCode),
4802
+ code = _useState10[0],
4803
+ setCode = _useState10[1];
4625
4804
 
4626
- var _useState11 = React.useState(getQueryVariable('r') || queryPromoCode),
4627
- promoCodeUpdated = _useState11[0],
4628
- setPromoCodeUpdated = _useState11[1];
4805
+ var _useState11 = React.useState(false),
4806
+ showPromoInput = _useState11[0],
4807
+ setShowPromoInput = _useState11[1];
4629
4808
 
4630
4809
  var _useState12 = React.useState(false),
4631
- showPromoInput = _useState12[0],
4632
- setShowPromoInput = _useState12[1];
4810
+ codeIsApplied = _useState12[0],
4811
+ setCodeIsApplied = _useState12[1];
4812
+
4813
+ var _useState13 = React.useState(isAccessCodeEnabled),
4814
+ showAccessCodeSection = _useState13[0],
4815
+ setShowAccessCodeSection = _useState13[1];
4633
4816
 
4634
- var _useState13 = React.useState(false),
4635
- promoCodeIsApplied = _useState13[0],
4636
- setPromoCodeIsApplied = _useState13[1];
4817
+ var _useState14 = React.useState(isPromotionsEnabled),
4818
+ showPromoCodeSection = _useState14[0],
4819
+ setShowPromoCodeSection = _useState14[1];
4637
4820
 
4638
4821
  var ticketsContainerRef = React.useRef(null);
4639
4822
  React.useEffect(function () {
@@ -4651,8 +4834,8 @@ var TicketsContainer = function TicketsContainer(_ref) {
4651
4834
  }
4652
4835
  }, []);
4653
4836
  React.useEffect(function () {
4654
- !!eventId && getTicketsApi(!!promoCodeUpdated);
4655
- }, [eventId, promoCodeUpdated]);
4837
+ !!eventId && getTicketsApi();
4838
+ }, [eventId]);
4656
4839
 
4657
4840
  var handleLogout = function handleLogout() {
4658
4841
  if (isWindowDefined) {
@@ -4701,7 +4884,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4701
4884
  }
4702
4885
 
4703
4886
  function _getTicketsApi() {
4704
- _getTicketsApi = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(isUpdateingPromoCode) {
4887
+ _getTicketsApi = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(isUpdateingCode) {
4705
4888
  var response, eventResponse, attributes, _event2;
4706
4889
 
4707
4890
  return runtime_1.wrap(function _callee2$(_context2) {
@@ -4709,27 +4892,27 @@ var TicketsContainer = function TicketsContainer(_ref) {
4709
4892
  switch (_context2.prev = _context2.next) {
4710
4893
  case 0:
4711
4894
  _context2.prev = 0;
4712
- !isUpdateingPromoCode && setIsLoading(true);
4713
- setIsPromoLoading(true);
4714
- _context2.next = 5;
4715
- return getTickets(eventId, promoCodeUpdated);
4895
+ isUpdateingCode ? setCodeIsLoading(true) : setIsLoading(true);
4896
+ _context2.next = 4;
4897
+ return getTickets(eventId, code);
4716
4898
 
4717
- case 5:
4899
+ case 4:
4718
4900
  response = _context2.sent;
4719
- _context2.next = 8;
4901
+ _context2.next = 7;
4720
4902
  return getEvent(eventId);
4721
4903
 
4722
- case 8:
4904
+ case 7:
4723
4905
  eventResponse = _context2.sent;
4724
4906
 
4725
4907
  if (response.data.success) {
4726
- setCustomHeader(response);
4727
4908
  attributes = _get(response, 'data.data.attributes');
4728
- setPromoCodeIsApplied(attributes.ValidPromoCode);
4909
+ setCodeIsApplied(attributes.ValidPromoCode);
4729
4910
  setTickets(_get(attributes, 'tickets'));
4730
4911
  setShowWaitingList(attributes.showWaitingList);
4731
4912
  onGetTicketsSuccess(response.data);
4732
- setPromoCode('');
4913
+ setCode('');
4914
+ setShowAccessCodeSection(attributes.is_access_code);
4915
+ setShowPromoCodeSection(attributes.isPromotionsEnabled);
4733
4916
  }
4734
4917
 
4735
4918
  if (eventResponse.data.success) {
@@ -4737,29 +4920,29 @@ var TicketsContainer = function TicketsContainer(_ref) {
4737
4920
  setEvent(_event2);
4738
4921
  }
4739
4922
 
4740
- _context2.next = 16;
4923
+ _context2.next = 15;
4741
4924
  break;
4742
4925
 
4743
- case 13:
4744
- _context2.prev = 13;
4926
+ case 12:
4927
+ _context2.prev = 12;
4745
4928
  _context2.t0 = _context2["catch"](0);
4746
4929
 
4747
4930
  if (axios.isAxiosError(_context2.t0)) {
4748
4931
  onGetTicketsError(_context2.t0);
4749
4932
  }
4750
4933
 
4751
- case 16:
4752
- _context2.prev = 16;
4934
+ case 15:
4935
+ _context2.prev = 15;
4753
4936
  setIsLoading(false);
4754
- setIsPromoLoading(false);
4755
- return _context2.finish(16);
4937
+ setCodeIsLoading(false);
4938
+ return _context2.finish(15);
4756
4939
 
4757
- case 20:
4940
+ case 19:
4758
4941
  case "end":
4759
4942
  return _context2.stop();
4760
4943
  }
4761
4944
  }
4762
- }, _callee2, null, [[0, 13, 16, 20]]);
4945
+ }, _callee2, null, [[0, 12, 15, 19]]);
4763
4946
  }));
4764
4947
  return _getTicketsApi.apply(this, arguments);
4765
4948
  }
@@ -4786,7 +4969,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4786
4969
  var _ref3 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
4787
4970
  var _product_options, _product_options2, _ticket_types;
4788
4971
 
4789
- var ticket, optionName, ticketId, ticketQuantity, data, result, _result$data$data$att, _result$data, _result$data$data, _result$data$data$att2, _result$data$data$att3, _result$data2, _result$data2$data, _result$data2$data$at, _result$data$data$att4, _result$data3, _result$data3$data, _result$data3$data$at, _result$data$data$att5, _result$data4, _result$data4$data, _result$data4$data$at, skipBillingPage, nameIsRequired, ageIsRequired, phoneIsRequired, hash, _isWindowDefined, userData, access_token, checkoutBody, checkoutResult;
4972
+ var ticket, optionName, ticketId, ticketQuantity, data, result, _result$data$data$att, _result$data, _result$data$data, _result$data$data$att2, _result$data$data$att3, _result$data2, _result$data2$data, _result$data2$data$at, _result$data$data$att4, _result$data3, _result$data3$data, _result$data3$data$at, _result$data$data$att5, _result$data4, _result$data4$data, _result$data4$data$at, skipBillingPage, nameIsRequired, ageIsRequired, phoneIsRequired, hash, total, _isWindowDefined, userData, access_token, checkoutBody, checkoutResult;
4790
4973
 
4791
4974
  return runtime_1.wrap(function _callee$(_context) {
4792
4975
  while (1) {
@@ -4819,19 +5002,19 @@ var TicketsContainer = function TicketsContainer(_ref) {
4819
5002
  result = _context.sent;
4820
5003
 
4821
5004
  if (!(result.status === 200)) {
4822
- _context.next = 27;
5005
+ _context.next = 28;
4823
5006
  break;
4824
5007
  }
4825
5008
 
4826
- setCustomHeader(result);
4827
5009
  skipBillingPage = (_result$data$data$att = result == null ? void 0 : (_result$data = result.data) == null ? void 0 : (_result$data$data = _result$data.data) == null ? void 0 : (_result$data$data$att2 = _result$data$data.attributes) == null ? void 0 : _result$data$data$att2.skip_billing_page) != null ? _result$data$data$att : false;
4828
5010
  nameIsRequired = (_result$data$data$att3 = result == null ? void 0 : (_result$data2 = result.data) == null ? void 0 : (_result$data2$data = _result$data2.data) == null ? void 0 : (_result$data2$data$at = _result$data2$data.attributes) == null ? void 0 : _result$data2$data$at.names_required) != null ? _result$data$data$att3 : false;
4829
5011
  ageIsRequired = (_result$data$data$att4 = result == null ? void 0 : (_result$data3 = result.data) == null ? void 0 : (_result$data3$data = _result$data3.data) == null ? void 0 : (_result$data3$data$at = _result$data3$data.attributes) == null ? void 0 : _result$data3$data$at.age_required) != null ? _result$data$data$att4 : false;
4830
5012
  phoneIsRequired = (_result$data$data$att5 = result == null ? void 0 : (_result$data4 = result.data) == null ? void 0 : (_result$data4$data = _result$data4.data) == null ? void 0 : (_result$data4$data$at = _result$data4$data.attributes) == null ? void 0 : _result$data4$data$at.phone_required) != null ? _result$data$data$att5 : false;
4831
5013
  hash = '';
5014
+ total = '';
4832
5015
 
4833
5016
  if (!skipBillingPage) {
4834
- _context.next = 26;
5017
+ _context.next = 27;
4835
5018
  break;
4836
5019
  }
4837
5020
 
@@ -4846,40 +5029,42 @@ var TicketsContainer = function TicketsContainer(_ref) {
4846
5029
  case 24:
4847
5030
  checkoutResult = _context.sent;
4848
5031
  hash = _get(checkoutResult, 'data.data.attributes.hash');
5032
+ total = _get(checkoutResult, 'data.data.attributes.total');
4849
5033
 
4850
- case 26:
5034
+ case 27:
4851
5035
  onAddToCartSuccess({
4852
5036
  skip_billing_page: skipBillingPage,
4853
5037
  names_required: nameIsRequired,
4854
5038
  phone_required: phoneIsRequired,
4855
5039
  age_required: ageIsRequired,
4856
5040
  event_id: String(eventId),
4857
- hash: hash
5041
+ hash: hash,
5042
+ total: total
4858
5043
  });
4859
5044
 
4860
- case 27:
4861
- _context.next = 32;
5045
+ case 28:
5046
+ _context.next = 33;
4862
5047
  break;
4863
5048
 
4864
- case 29:
4865
- _context.prev = 29;
5049
+ case 30:
5050
+ _context.prev = 30;
4866
5051
  _context.t0 = _context["catch"](6);
4867
5052
 
4868
5053
  if (axios.isAxiosError(_context.t0)) {
4869
5054
  onAddToCartError(_context.t0);
4870
5055
  }
4871
5056
 
4872
- case 32:
4873
- _context.prev = 32;
5057
+ case 33:
5058
+ _context.prev = 33;
4874
5059
  setHandleBookIsLoading(false);
4875
- return _context.finish(32);
5060
+ return _context.finish(33);
4876
5061
 
4877
- case 35:
5062
+ case 36:
4878
5063
  case "end":
4879
5064
  return _context.stop();
4880
5065
  }
4881
5066
  }
4882
- }, _callee, null, [[6, 29, 32, 35]]);
5067
+ }, _callee, null, [[6, 30, 33, 36]]);
4883
5068
  }));
4884
5069
 
4885
5070
  return function handleBook() {
@@ -4887,14 +5072,10 @@ var TicketsContainer = function TicketsContainer(_ref) {
4887
5072
  };
4888
5073
  }();
4889
5074
 
4890
- var updateTickets = function updateTickets() {
4891
- getTicketsApi();
5075
+ var updateTickets = function updateTickets(isUpdateingCode) {
5076
+ getTicketsApi(isUpdateingCode);
4892
5077
  };
4893
5078
 
4894
- var isAllTicketsSoldOut = _every(tickets, function (item) {
4895
- return item.sold_out || item.soldOut;
4896
- });
4897
-
4898
5079
  var isTicketOnSale = _some(tickets, function (item) {
4899
5080
  return item.salesStarted && !item.salesEnded && !item.soldOut;
4900
5081
  });
@@ -4928,9 +5109,15 @@ var TicketsContainer = function TicketsContainer(_ref) {
4928
5109
  };
4929
5110
 
4930
5111
  var bookButtonIsDisabled = handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0;
5112
+ var wrappedActionsSectionComponent = React__default.isValidElement(ActionsSectionComponent) ? React__default.cloneElement(ActionsSectionComponent, {
5113
+ handleGetTicketClick: handleGetTicketClick,
5114
+ isTicketOnSale: isTicketOnSale
5115
+ }) : null;
5116
+ var externalUrl = event == null ? void 0 : event.redirectUrl;
5117
+ var eventSaleIsNotStarted = !(event != null && event.salesStarted) && (event == null ? void 0 : event.salesStart);
4931
5118
  return React__default.createElement(privateTheming.ThemeProvider, {
4932
5119
  theme: themeMui
4933
- }, React__default.createElement(ReferralLogic, {
5120
+ }, !isLoading && React__default.createElement(ReferralLogic, {
4934
5121
  eventId: eventId
4935
5122
  }), React__default.createElement("div", {
4936
5123
  className: "get-tickets-page " + theme,
@@ -4941,32 +5128,37 @@ var TicketsContainer = function TicketsContainer(_ref) {
4941
5128
  ticketsList: tickets,
4942
5129
  selectedTickets: selectedTickets,
4943
5130
  handleTicketSelect: handleTicketSelect,
4944
- promoCodeIsApplied: promoCodeIsApplied
4945
- }), event != null && event.salesEnded ? React__default.createElement("p", {
4946
- className: 'event-closed-message'
4947
- }, "Sales for this event are closed.") : !(event != null && event.salesStarted) && event != null && event.salesStart ? React__default.createElement(Countdown, {
5131
+ codeIsApplied: codeIsApplied,
5132
+ sortBySoldOut: sortBySoldOut,
5133
+ ticketsHeaderComponent: ticketsHeaderComponent,
5134
+ hideTicketsHeader: hideTicketsHeader || _isEmpty(tickets)
5135
+ }), externalUrl ? null : event != null && event.salesEnded ? React__default.createElement("p", {
5136
+ className: "event-closed-message " + (!isLoggedIn ? 'event-closed-on-bottom' : '')
5137
+ }, "Sales for this event are closed.") : eventSaleIsNotStarted ? React__default.createElement(Countdown, {
4948
5138
  startDate: event.salesStart,
4949
5139
  timezone: event.timezone,
4950
5140
  title: "Sales start in:",
4951
5141
  message: "No tickets are currently available for this event.",
4952
- callback: updateTickets
5142
+ callback: updateTickets,
5143
+ disableLeadingZero: disableCountdownLeadingZero,
5144
+ isLoggedIn: isLoggedIn
4953
5145
  }) : null, showWaitingList && event.salesStarted && !hideWaitingList && React__default.createElement(WaitingList, {
4954
5146
  tickets: tickets,
4955
5147
  eventId: eventId
4956
- }), React__default.createElement(PromoCodeSection, {
4957
- promoCode: promoCode,
4958
- promoCodeIsApplied: promoCodeIsApplied,
5148
+ }), codeIsLoading ? React__default.createElement(Loader, null) : showAccessCodeSection ? React__default.createElement(AccessCodeSection, {
5149
+ code: code,
5150
+ setCode: setCode,
5151
+ updateTickets: updateTickets
5152
+ }) : showPromoCodeSection ? React__default.createElement(PromoCodeSection, {
5153
+ code: code,
5154
+ codeIsApplied: codeIsApplied,
4959
5155
  showPromoInput: showPromoInput,
4960
- setPromoCode: setPromoCode,
4961
- setPromoCodeUpdated: setPromoCodeUpdated,
4962
5156
  setShowPromoInput: setShowPromoInput,
4963
- isPromotionsEnabled: isPromotionsEnabled,
4964
- isAccessCodeEnabled: isAccessCodeEnabled,
4965
- isAllTicketsSoldOut: isAllTicketsSoldOut,
4966
- isPromoLoading: isPromoLoading
4967
- }), (isTicketOnSale || !(event != null && event.salesEnded)) && React__default.createElement(Button$1, {
5157
+ setCode: setCode,
5158
+ updateTickets: updateTickets
5159
+ }) : null, wrappedActionsSectionComponent, !wrappedActionsSectionComponent && !eventSaleIsNotStarted && isTicketOnSale && !(event != null && event.salesEnded) && !externalUrl && React__default.createElement(Button$1, {
4968
5160
  "aria-hidden": true,
4969
- className: "book-button \n " + (bookButtonIsDisabled ? 'disabled' : '') + " \n " + (isButtonScrollable ? 'is-scrollable' : '') + "\n ",
5161
+ className: "book-button \n " + (bookButtonIsDisabled ? 'disabled' : '') + " \n " + (isButtonScrollable ? 'is-scrollable' : '') + "\n " + (!isLoggedIn ? 'on-bottom' : '') + "\n ",
4970
5162
  onClick: handleGetTicketClick
4971
5163
  }, getTicketsLabel || 'GET TICKETS'), isLogged && !hideSessionButtons ? React__default.createElement("div", {
4972
5164
  className: "session-wrapper"
@@ -5260,7 +5452,7 @@ var TicketsTable = function TicketsTable(_ref) {
5260
5452
 
5261
5453
  return React__default.createElement(React.Fragment, {
5262
5454
  key: index
5263
- }, React__default.createElement(TableRow, null, React__default.createElement(TableCell, null, ticket.hash), React__default.createElement(TableCell, null, ticket.ticket_type), React__default.createElement(TableCell, null, ticket.holder_name), React__default.createElement(TableCell, null, ticket.status), React__default.createElement(TableCell, null, React__default.createElement("span", {
5455
+ }, React__default.createElement(TableRow, null, React__default.createElement(TableCell, null, ticket.hash), React__default.createElement(TableCell, null, ticket.ticket_type), React__default.createElement(TableCell, null, ticket.holder_name), React__default.createElement(TableCell, null, ticket.status), React__default.createElement(TableCell, null, ticket.status !== "Sold" && React__default.createElement("span", {
5264
5456
  "aria-hidden": true,
5265
5457
  className: "action-button",
5266
5458
  onClick: function onClick() {
@@ -5366,7 +5558,8 @@ var TicketResaleModal = function TicketResaleModal(_ref) {
5366
5558
  holder_name = ticket.holder_name,
5367
5559
  event_name = ticket.event_name,
5368
5560
  currency = ticket.currency,
5369
- resale_fee_amount = ticket.resale_fee_amount;
5561
+ resale_fee_amount = ticket.resale_fee_amount,
5562
+ ticket_type_is_active = ticket.ticket_type_is_active;
5370
5563
  return React__default.createElement(Modal, {
5371
5564
  open: true,
5372
5565
  onClose: onClose,
@@ -5439,7 +5632,7 @@ var TicketResaleModal = function TicketResaleModal(_ref) {
5439
5632
  label: 'Confirm Email address',
5440
5633
  type: 'text',
5441
5634
  component: CustomField
5442
- }))))), React__default.createElement("div", null, React__default.createElement(formik.Field, {
5635
+ }))))), ticket_type_is_active && React__default.createElement("div", null, React__default.createElement(formik.Field, {
5443
5636
  name: 'to',
5444
5637
  label: 'I will sell my ticket to anyone who wants to buy it',
5445
5638
  type: 'radio',
@@ -5578,7 +5771,15 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
5578
5771
  }, []);
5579
5772
 
5580
5773
  var handleSellTicket = function handleSellTicket(ticket) {
5581
- setActiveTicket(ticket);
5774
+ var ticketTypesArr = data.items.ticket_types;
5775
+
5776
+ var sellTicketType = _find(ticketTypesArr, function (ticketType) {
5777
+ return ticketType.hash === ticket.ticket_type_hash;
5778
+ });
5779
+
5780
+ setActiveTicket(_extends({}, ticket, {
5781
+ ticket_type_is_active: sellTicketType == null ? void 0 : sellTicketType.active
5782
+ }));
5582
5783
  setShowResaleModal(true);
5583
5784
  };
5584
5785
 
@@ -5757,80 +5958,293 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
5757
5958
  };
5758
5959
 
5759
5960
  var TicketResaleContainer = function TicketResaleContainer(_ref) {
5760
- var _ref$onCheckTicketSta = _ref.onCheckTicketStatusSuccess,
5761
- onCheckTicketStatusSuccess = _ref$onCheckTicketSta === void 0 ? function () {} : _ref$onCheckTicketSta,
5762
- _ref$onCheckTicketSta2 = _ref.onCheckTicketStatusError,
5763
- onCheckTicketStatusError = _ref$onCheckTicketSta2 === void 0 ? function () {} : _ref$onCheckTicketSta2,
5961
+ var _ref$onProcessTicketS = _ref.onProcessTicketSuccess,
5962
+ onProcessTicketSuccess = _ref$onProcessTicketS === void 0 ? function () {} : _ref$onProcessTicketS,
5963
+ _ref$onProcessTicketE = _ref.onProcessTicketError,
5964
+ onProcessTicketError = _ref$onProcessTicketE === void 0 ? function () {} : _ref$onProcessTicketE,
5965
+ _ref$onDeclineTicketP = _ref.onDeclineTicketPurchaseSuccess,
5966
+ onDeclineTicketPurchaseSuccess = _ref$onDeclineTicketP === void 0 ? function () {} : _ref$onDeclineTicketP,
5967
+ _ref$onDeclineTicketP2 = _ref.onDeclineTicketPurchaseError,
5968
+ onDeclineTicketPurchaseError = _ref$onDeclineTicketP2 === void 0 ? function () {} : _ref$onDeclineTicketP2,
5764
5969
  orderHash = _ref.orderHash;
5765
5970
  var isWindowDefined = typeof window !== 'undefined';
5766
5971
 
5767
- var _useState = React.useState(null),
5972
+ var _useState = React.useState(''),
5768
5973
  error = _useState[0],
5769
5974
  setError = _useState[1];
5770
5975
 
5976
+ var _useState2 = React.useState(''),
5977
+ successMessage = _useState2[0],
5978
+ setSuccessMessage = _useState2[1];
5979
+
5771
5980
  React.useEffect(function () {
5772
5981
  _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
5773
- var params, hash, response, data, age_required, names_required, event_id, _error$response, _error$response$data;
5982
+ var params, hash, isDeclined, response, _error$response, _error$response$data, _response, data, age_required, names_required, event_id, _error$response2, _error$response2$data;
5774
5983
 
5775
5984
  return runtime_1.wrap(function _callee$(_context) {
5776
5985
  while (1) {
5777
5986
  switch (_context.prev = _context.next) {
5778
5987
  case 0:
5779
5988
  if (!isWindowDefined) {
5780
- _context.next = 24;
5989
+ _context.next = 38;
5781
5990
  break;
5782
5991
  }
5783
5992
 
5784
5993
  params = new URL("" + window.location).searchParams;
5785
- hash = params.get('o') || orderHash || null;
5994
+ hash = params.get('invitation_hash') || orderHash || null;
5995
+ isDeclined = params.get('decline') || false;
5786
5996
 
5787
5997
  if (!hash) {
5788
- _context.next = 23;
5998
+ _context.next = 37;
5789
5999
  break;
5790
6000
  }
5791
6001
 
5792
- _context.prev = 4;
5793
- _context.next = 7;
5794
- return checkTicketStatus(hash);
6002
+ if (!isDeclined) {
6003
+ _context.next = 19;
6004
+ break;
6005
+ }
5795
6006
 
5796
- case 7:
6007
+ _context.prev = 6;
6008
+ _context.next = 9;
6009
+ return declineInvitation(hash);
6010
+
6011
+ case 9:
5797
6012
  response = _context.sent;
5798
- data = _get(response, 'data.data.attributes');
6013
+ onDeclineTicketPurchaseSuccess(response);
6014
+ setSuccessMessage("Thanks for letting us know! We'll offer this ticket to someone else!");
6015
+ _context.next = 18;
6016
+ break;
6017
+
6018
+ case 14:
6019
+ _context.prev = 14;
6020
+ _context.t0 = _context["catch"](6);
6021
+ setError(_context.t0 == null ? void 0 : (_error$response = _context.t0.response) == null ? void 0 : (_error$response$data = _error$response.data) == null ? void 0 : _error$response$data.message);
6022
+ onDeclineTicketPurchaseError(_context.t0.response);
6023
+
6024
+ case 18:
6025
+ return _context.abrupt("return");
6026
+
6027
+ case 19:
6028
+ _context.prev = 19;
6029
+ _context.next = 22;
6030
+ return processTicket(hash);
6031
+
6032
+ case 22:
6033
+ _response = _context.sent;
6034
+ data = _get(_response, 'data.data.attributes');
5799
6035
  age_required = _get(data, 'age_required', false);
5800
6036
  names_required = _get(data, 'names_required', false);
5801
6037
  event_id = _get(data, 'event_id');
5802
- onCheckTicketStatusSuccess(response.data);
6038
+ onProcessTicketSuccess(_response.data);
5803
6039
  window.location.href = "/billing/billing-info/?age_required=" + age_required + "&names_required=" + names_required + "&event_id=" + event_id;
5804
- _context.next = 21;
6040
+ _context.next = 35;
5805
6041
  break;
5806
6042
 
5807
- case 16:
5808
- _context.prev = 16;
5809
- _context.t0 = _context["catch"](4);
5810
- console.log(_context.t0);
5811
- setError(_context.t0 == null ? void 0 : (_error$response = _context.t0.response) == null ? void 0 : (_error$response$data = _error$response.data) == null ? void 0 : _error$response$data.message);
5812
- onCheckTicketStatusError(_context.t0.response);
6043
+ case 31:
6044
+ _context.prev = 31;
6045
+ _context.t1 = _context["catch"](19);
6046
+ setError(_context.t1 == null ? void 0 : (_error$response2 = _context.t1.response) == null ? void 0 : (_error$response2$data = _error$response2.data) == null ? void 0 : _error$response2$data.message);
6047
+ onProcessTicketError(_context.t1.response);
5813
6048
 
5814
- case 21:
5815
- _context.next = 24;
6049
+ case 35:
6050
+ _context.next = 38;
5816
6051
  break;
5817
6052
 
5818
- case 23:
6053
+ case 37:
5819
6054
  window.location.href = '/';
5820
6055
 
5821
- case 24:
6056
+ case 38:
5822
6057
  case "end":
5823
6058
  return _context.stop();
5824
6059
  }
5825
6060
  }
5826
- }, _callee, null, [[4, 16]]);
6061
+ }, _callee, null, [[6, 14], [19, 31]]);
5827
6062
  }))();
5828
6063
  }, []);
5829
6064
  return React__default.createElement("div", {
5830
6065
  className: "ticket-resale-page"
5831
6066
  }, React__default.createElement("div", {
5832
- className: "error-block"
5833
- }, React__default.createElement("h3", null, error)));
6067
+ className: "" + (successMessage ? 'success-block' : 'error-block')
6068
+ }, React__default.createElement("h3", null, successMessage ? successMessage : error)));
6069
+ };
6070
+
6071
+ var style$3 = {
6072
+ position: 'absolute',
6073
+ top: '10%',
6074
+ left: '50%',
6075
+ transform: 'translate(-50%, -50%)',
6076
+ minWidth: 480,
6077
+ backgroundColor: '#e3e3e3',
6078
+ border: '1px solid white',
6079
+ outline: 'none',
6080
+ padding: '14px',
6081
+ maxHeight: '85vh',
6082
+ overflow: 'auto'
6083
+ };
6084
+ var RedirectModal = function RedirectModal(_ref) {
6085
+ var _ref$message = _ref.message,
6086
+ message = _ref$message === void 0 ? 'Your cart has expired. Please click on "OK" to return to the ticket selection page.' : _ref$message,
6087
+ _ref$onClickOk = _ref.onClickOk,
6088
+ onClickOk = _ref$onClickOk === void 0 ? function () {} : _ref$onClickOk;
6089
+ return React__default.createElement(Modal, {
6090
+ open: true,
6091
+ "aria-labelledby": "modal-modal-title",
6092
+ "aria-describedby": "modal-modal-description",
6093
+ className: "redirect-modal"
6094
+ }, React__default.createElement(Box, {
6095
+ style: style$3
6096
+ }, React__default.createElement("p", null, message), React__default.createElement("div", {
6097
+ className: "footer"
6098
+ }, React__default.createElement("button", {
6099
+ onClick: onClickOk
6100
+ }, "OK"))));
6101
+ };
6102
+
6103
+ var style$4 = {
6104
+ position: 'absolute',
6105
+ top: '50%',
6106
+ left: '50%',
6107
+ transform: 'translate(-50%, -50%)',
6108
+ minWidth: 480,
6109
+ backgroundColor: '#e3e3e3',
6110
+ border: '1px solid white',
6111
+ outline: 'none',
6112
+ padding: '14px',
6113
+ maxHeight: '85vh',
6114
+ overflow: 'auto'
6115
+ };
6116
+ var RsvpContainer = function RsvpContainer(_ref) {
6117
+ var _ref$showSection = _ref.showSection,
6118
+ showSection = _ref$showSection === void 0 ? false : _ref$showSection,
6119
+ eventId = _ref.eventId;
6120
+ var userDataEncoded = typeof window !== 'undefined' ? window.localStorage.getItem('user_data') : '';
6121
+ var parsedData = JSON.parse(userDataEncoded || '{}');
6122
+
6123
+ var _useState = React.useState(false),
6124
+ loading = _useState[0],
6125
+ setLoading = _useState[1];
6126
+
6127
+ var _useState2 = React.useState({
6128
+ isOpen: false,
6129
+ text: ''
6130
+ }),
6131
+ modal = _useState2[0],
6132
+ setModal = _useState2[1];
6133
+
6134
+ var handleModalClose = function handleModalClose() {
6135
+ setModal({
6136
+ isOpen: false,
6137
+ text: ''
6138
+ });
6139
+ };
6140
+
6141
+ var handleSubmit = /*#__PURE__*/function () {
6142
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(values) {
6143
+ var requestData, _yield$sendRSVPInfo, data, _error$response$data;
6144
+
6145
+ return runtime_1.wrap(function _callee$(_context) {
6146
+ while (1) {
6147
+ switch (_context.prev = _context.next) {
6148
+ case 0:
6149
+ _context.prev = 0;
6150
+ setLoading(true);
6151
+ requestData = {
6152
+ data: {
6153
+ email: values.email
6154
+ }
6155
+ };
6156
+ _context.next = 5;
6157
+ return sendRSVPInfo(eventId, requestData);
6158
+
6159
+ case 5:
6160
+ _yield$sendRSVPInfo = _context.sent;
6161
+ data = _yield$sendRSVPInfo.data;
6162
+ setModal({
6163
+ isOpen: true,
6164
+ text: data.message
6165
+ });
6166
+ _context.next = 13;
6167
+ break;
6168
+
6169
+ case 10:
6170
+ _context.prev = 10;
6171
+ _context.t0 = _context["catch"](0);
6172
+
6173
+ if (_context.t0.response.status === 403) {
6174
+ setModal({
6175
+ isOpen: true,
6176
+ text: (_error$response$data = _context.t0.response.data) == null ? void 0 : _error$response$data.message
6177
+ });
6178
+ }
6179
+
6180
+ case 13:
6181
+ _context.prev = 13;
6182
+ setLoading(false);
6183
+ return _context.finish(13);
6184
+
6185
+ case 16:
6186
+ case "end":
6187
+ return _context.stop();
6188
+ }
6189
+ }
6190
+ }, _callee, null, [[0, 10, 13, 16]]);
6191
+ }));
6192
+
6193
+ return function handleSubmit(_x) {
6194
+ return _ref2.apply(this, arguments);
6195
+ };
6196
+ }();
6197
+
6198
+ if (!showSection) {
6199
+ return null;
6200
+ }
6201
+
6202
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(Modal, {
6203
+ open: modal.isOpen,
6204
+ onClose: handleModalClose,
6205
+ "aria-labelledby": "modal-modal-title",
6206
+ "aria-describedby": "modal-modal-description",
6207
+ className: "rsvp-modal"
6208
+ }, React__default.createElement(Box, {
6209
+ style: style$4,
6210
+ className: "rsvp-modal-box"
6211
+ }, React__default.createElement("div", {
6212
+ className: "rsvp-modal-container"
6213
+ }, React__default.createElement("div", {
6214
+ className: "rsvp-modal-header"
6215
+ }, modal.text), React__default.createElement("div", {
6216
+ className: "rsvp-modal-button"
6217
+ }, React__default.createElement("button", {
6218
+ onClick: handleModalClose
6219
+ }, "OK"))))), React__default.createElement("div", {
6220
+ className: "rsvp-container"
6221
+ }, loading ? React__default.createElement(Loader, null) : React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
6222
+ className: "rsvp-header"
6223
+ }, "RSVP"), React__default.createElement("div", {
6224
+ className: "rsvp-email-container"
6225
+ }, React__default.createElement(formik.Formik, {
6226
+ initialValues: {
6227
+ email: (parsedData == null ? void 0 : parsedData.email) || ''
6228
+ },
6229
+ onSubmit: handleSubmit,
6230
+ enableReinitialize: true
6231
+ }, React__default.createElement(formik.Form, null, React__default.createElement("div", {
6232
+ className: "rsvp-email-input-container"
6233
+ }, React__default.createElement(formik.Field, {
6234
+ name: "email",
6235
+ label: "EMAIL ADDRESS",
6236
+ type: "email",
6237
+ validate: combineValidators(function (value) {
6238
+ return requiredValidator(value, 'Please enter your Email');
6239
+ }, function (value) {
6240
+ return emailValidator(value);
6241
+ }),
6242
+ component: CustomField
6243
+ })), React__default.createElement("div", {
6244
+ className: "rsvp-button-container"
6245
+ }, React__default.createElement(Button, {
6246
+ type: "submit"
6247
+ }, "RSVP"))))))));
5834
6248
  };
5835
6249
 
5836
6250
  exports.BillingInfoContainer = BillingInfoContainer;
@@ -5839,6 +6253,8 @@ exports.LoginModal = LoginModal;
5839
6253
  exports.MyTicketsContainer = MyTicketsContainer;
5840
6254
  exports.OrderDetailsContainer = OrderDetailsContainer;
5841
6255
  exports.PaymentContainer = PaymentContainer;
6256
+ exports.RedirectModal = RedirectModal;
6257
+ exports.RsvpContainer = RsvpContainer;
5842
6258
  exports.TicketResaleContainer = TicketResaleContainer;
5843
6259
  exports.TicketsContainer = TicketsContainer;
5844
6260
  exports.createFixedFloatNormalizer = createFixedFloatNormalizer;