tf-checkout-react 1.0.95 → 1.0.97

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.
@@ -19,6 +19,7 @@ export declare const getAccessToken: (data: FormData) => Promise<import("axios")
19
19
  export declare const getPaymentData: (hash: string) => Promise<import("axios").AxiosResponse<any, any>>;
20
20
  export declare const handlePaymentData: (orderHash: string, data: any) => Promise<import("axios").AxiosResponse<any, any>>;
21
21
  export declare const handlePaymentSuccess: (orderHash: string) => Promise<import("axios").AxiosResponse<any, any>>;
22
+ export declare const handleFreeSuccess: (orderHash: string) => Promise<import("axios").AxiosResponse<any, any>>;
22
23
  export declare const getProfileData: (accessToken: any) => Promise<any>;
23
24
  export declare const getCountries: () => Promise<import("axios").AxiosResponse<any, any>>;
24
25
  export declare const getConfirmationData: (orderHash: string) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function Loader(): JSX.Element;
@@ -0,0 +1,5 @@
1
+ export { CheckboxField } from './CheckboxField';
2
+ export { CustomField } from './CustomField';
3
+ export { FormikPhoneNumberField } from './FormikPhoneNumberField';
4
+ export { Loader } from './Loader';
5
+ export { SelectField } from './SelectField';
@@ -6,8 +6,9 @@ export interface IPromoCodeSectionProps {
6
6
  isPromotionsEnabled: boolean;
7
7
  isAllTicketsSoldOut: boolean;
8
8
  isAccessCodeEnabled?: boolean;
9
+ isPromoLoading?: boolean;
9
10
  setPromoCode: (value: string) => void;
10
11
  setPromoCodeUpdated: (value: string) => void;
11
12
  setShowPromoInput: (value: boolean) => void;
12
13
  }
13
- export declare const PromoCodeSection: ({ promoCode, promoCodeIsApplied, showPromoInput, isPromotionsEnabled, setPromoCode, setPromoCodeUpdated, setShowPromoInput, isAccessCodeEnabled, }: IPromoCodeSectionProps) => JSX.Element;
14
+ export declare const PromoCodeSection: ({ promoCode, promoCodeIsApplied, showPromoInput, isPromotionsEnabled, setPromoCode, setPromoCodeUpdated, setShowPromoInput, isAccessCodeEnabled, isPromoLoading, }: IPromoCodeSectionProps) => JSX.Element;
@@ -22,17 +22,17 @@ var Box = _interopDefault(require('@mui/material/Box'));
22
22
  var _flatMapDeep = _interopDefault(require('lodash/flatMapDeep'));
23
23
  var _isArray = _interopDefault(require('lodash/isArray'));
24
24
  var nanoid = require('nanoid');
25
- var TextField = _interopDefault(require('@mui/material/TextField'));
26
- var styles = require('@mui/styles');
27
25
  var FormGroup = _interopDefault(require('@mui/material/FormGroup'));
28
26
  var FormControlLabel = _interopDefault(require('@mui/material/FormControlLabel'));
29
27
  var Checkbox = _interopDefault(require('@mui/material/Checkbox'));
30
- var Select = _interopDefault(require('@mui/material/Select'));
28
+ var styles = require('@mui/styles');
29
+ var TextField = _interopDefault(require('@mui/material/TextField'));
31
30
  var MuiPhoneNumber = _interopDefault(require('material-ui-phone-number'));
31
+ var CircularProgress = _interopDefault(require('@mui/material/CircularProgress'));
32
+ var Select = _interopDefault(require('@mui/material/Select'));
32
33
  var styles$1 = require('@mui/material/styles');
33
34
  var Backdrop = _interopDefault(require('@mui/material/Backdrop'));
34
35
  var Container = _interopDefault(require('@mui/material/Container'));
35
- var CircularProgress = _interopDefault(require('@mui/material/CircularProgress'));
36
36
  var Alert = _interopDefault(require('@mui/material/Alert'));
37
37
  var reactStripeJs = require('@stripe/react-stripe-js');
38
38
  var stripeJs = require('@stripe/stripe-js');
@@ -1275,6 +1275,12 @@ var handlePaymentSuccess = function handlePaymentSuccess(orderHash) {
1275
1275
  });
1276
1276
  return res;
1277
1277
  };
1278
+ var handleFreeSuccess = function handleFreeSuccess(orderHash) {
1279
+ var res = publicRequest.post("v1/order/" + orderHash + "/complete_free_registration")["catch"](function (error) {
1280
+ throw error;
1281
+ });
1282
+ return res;
1283
+ };
1278
1284
  var getProfileData = function getProfileData(accessToken) {
1279
1285
  return publicRequest.get('/customer/profile/', {
1280
1286
  headers: _extends({}, ttfHeaders, {
@@ -1912,6 +1918,26 @@ var assingUniqueIds = function assingUniqueIds(data) {
1912
1918
  });
1913
1919
  };
1914
1920
 
1921
+ var _excluded$1 = ["label", "field", "selectOptions", "theme", "setFieldValue"];
1922
+ var CheckboxField = function CheckboxField(_ref) {
1923
+ var _rest$form, _field$name, _rest$form2, _field$name2;
1924
+
1925
+ var label = _ref.label,
1926
+ field = _ref.field,
1927
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1928
+
1929
+ var customTheme = styles.useTheme();
1930
+ return React__default.createElement(material.FormControl, {
1931
+ error: !!(rest != null && (_rest$form = rest.form) != null && _rest$form.errors && rest.form.errors[(_field$name = field == null ? void 0 : field.name) != null ? _field$name : ""])
1932
+ }, React__default.createElement(FormGroup, null, React__default.createElement(FormControlLabel, {
1933
+ control: React__default.createElement(Checkbox, Object.assign({}, field, rest)),
1934
+ label: label,
1935
+ componentsProps: {
1936
+ typography: customTheme == null ? void 0 : customTheme.checkbox
1937
+ }
1938
+ })), !!(rest != null && (_rest$form2 = rest.form) != null && _rest$form2.errors && rest.form.errors[(_field$name2 = field == null ? void 0 : field.name) != null ? _field$name2 : ""]) ? React__default.createElement(material.FormHelperText, null, "Required") : null);
1939
+ };
1940
+
1915
1941
  var CustomField = function CustomField(_ref) {
1916
1942
  var label = _ref.label,
1917
1943
  _ref$type = _ref.type,
@@ -1961,76 +1987,6 @@ var CustomField = function CustomField(_ref) {
1961
1987
  }) : null);
1962
1988
  };
1963
1989
 
1964
- var _excluded$1 = ["label", "field", "selectOptions", "theme", "setFieldValue"];
1965
- var CheckboxField = function CheckboxField(_ref) {
1966
- var _rest$form, _field$name, _rest$form2, _field$name2;
1967
-
1968
- var label = _ref.label,
1969
- field = _ref.field,
1970
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1971
-
1972
- var customTheme = styles.useTheme();
1973
- return React__default.createElement(material.FormControl, {
1974
- error: !!(rest != null && (_rest$form = rest.form) != null && _rest$form.errors && rest.form.errors[(_field$name = field == null ? void 0 : field.name) != null ? _field$name : ""])
1975
- }, React__default.createElement(FormGroup, null, React__default.createElement(FormControlLabel, {
1976
- control: React__default.createElement(Checkbox, Object.assign({}, field, rest)),
1977
- label: label,
1978
- componentsProps: {
1979
- typography: customTheme == null ? void 0 : customTheme.checkbox
1980
- }
1981
- })), !!(rest != null && (_rest$form2 = rest.form) != null && _rest$form2.errors && rest.form.errors[(_field$name2 = field == null ? void 0 : field.name) != null ? _field$name2 : ""]) ? React__default.createElement(material.FormHelperText, null, "Required") : null);
1982
- };
1983
-
1984
- var SelectField = function SelectField(_ref) {
1985
- var label = _ref.label,
1986
- _ref$type = _ref.type,
1987
- type = _ref$type === void 0 ? 'text' : _ref$type,
1988
- field = _ref.field,
1989
- _ref$selectOptions = _ref.selectOptions,
1990
- selectOptions = _ref$selectOptions === void 0 ? [] : _ref$selectOptions,
1991
- _ref$form = _ref.form,
1992
- touched = _ref$form.touched,
1993
- errors = _ref$form.errors,
1994
- theme = _ref.theme;
1995
- var isTouched = Boolean(_get(touched, field.name));
1996
-
1997
- var error = _get(errors, field.name);
1998
-
1999
- var customTheme = styles.useTheme();
2000
- return React__default.createElement(material.FormControl, {
2001
- fullWidth: true
2002
- }, React__default.createElement(material.InputLabel, {
2003
- style: customTheme == null ? void 0 : customTheme.input,
2004
- htmlFor: field.name,
2005
- error: !!error && isTouched,
2006
- shrink: true
2007
- }, label), React__default.createElement(Select, Object.assign({
2008
- id: field.name,
2009
- label: label,
2010
- type: type,
2011
- fullWidth: true,
2012
- error: !!error && isTouched,
2013
- inputProps: {
2014
- id: field.name
2015
- },
2016
- "native": true,
2017
- className: theme,
2018
- MenuProps: {
2019
- className: theme
2020
- }
2021
- }, field, {
2022
- style: customTheme == null ? void 0 : customTheme.input
2023
- }), _map(selectOptions, function (option) {
2024
- return React__default.createElement("option", {
2025
- key: option.value,
2026
- value: option.value,
2027
- disabled: option.disabled
2028
- }, option.label);
2029
- })), isTouched && error ? React__default.createElement(material.FormHelperText, {
2030
- error: !!error && isTouched
2031
- }, error) : null);
2032
- };
2033
-
2034
1990
  var currencyNormalizerCreator = function currencyNormalizerCreator(value, currency) {
2035
1991
  return !value ? '' : "" + getCurrencySymbolByCurrency(currency) + value;
2036
1992
  };
@@ -2143,6 +2099,62 @@ var FormikPhoneNumberField = function FormikPhoneNumberField(_ref) {
2143
2099
  }, rest));
2144
2100
  };
2145
2101
 
2102
+ function Loader() {
2103
+ return React__default.createElement("div", {
2104
+ className: "loader-container"
2105
+ }, React__default.createElement(CircularProgress, null));
2106
+ }
2107
+
2108
+ var SelectField = function SelectField(_ref) {
2109
+ var label = _ref.label,
2110
+ _ref$type = _ref.type,
2111
+ type = _ref$type === void 0 ? 'text' : _ref$type,
2112
+ field = _ref.field,
2113
+ _ref$selectOptions = _ref.selectOptions,
2114
+ selectOptions = _ref$selectOptions === void 0 ? [] : _ref$selectOptions,
2115
+ _ref$form = _ref.form,
2116
+ touched = _ref$form.touched,
2117
+ errors = _ref$form.errors,
2118
+ theme = _ref.theme;
2119
+ var isTouched = Boolean(_get(touched, field.name));
2120
+
2121
+ var error = _get(errors, field.name);
2122
+
2123
+ var customTheme = styles.useTheme();
2124
+ return React__default.createElement(material.FormControl, {
2125
+ fullWidth: true
2126
+ }, React__default.createElement(material.InputLabel, {
2127
+ style: customTheme == null ? void 0 : customTheme.input,
2128
+ htmlFor: field.name,
2129
+ error: !!error && isTouched,
2130
+ shrink: true
2131
+ }, label), React__default.createElement(Select, Object.assign({
2132
+ id: field.name,
2133
+ label: label,
2134
+ type: type,
2135
+ fullWidth: true,
2136
+ error: !!error && isTouched,
2137
+ inputProps: {
2138
+ id: field.name
2139
+ },
2140
+ "native": true,
2141
+ className: theme,
2142
+ MenuProps: {
2143
+ className: theme
2144
+ }
2145
+ }, field, {
2146
+ style: customTheme == null ? void 0 : customTheme.input
2147
+ }), _map(selectOptions, function (option) {
2148
+ return React__default.createElement("option", {
2149
+ key: option.value,
2150
+ value: option.value,
2151
+ disabled: option.disabled
2152
+ }, option.label);
2153
+ })), isTouched && error ? React__default.createElement(material.FormHelperText, {
2154
+ error: !!error && isTouched
2155
+ }, error) : null);
2156
+ };
2157
+
2146
2158
  var LogicRunner = function LogicRunner(_ref) {
2147
2159
  var values = _ref.values,
2148
2160
  setStates = _ref.setStates,
@@ -2688,7 +2700,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2688
2700
  _context6.prev = 0;
2689
2701
 
2690
2702
  if (!isLoggedIn) {
2691
- _context6.next = 17;
2703
+ _context6.next = 15;
2692
2704
  break;
2693
2705
  }
2694
2706
 
@@ -2716,14 +2728,10 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2716
2728
 
2717
2729
  case 12:
2718
2730
  _res = _context6.sent;
2719
- _context6.next = 15;
2720
- return getPaymentData(_res.data.data.attributes.hash);
2721
-
2722
- case 15:
2723
2731
  handleSubmit(values, formikHelpers, eventId, _res);
2724
2732
  return _context6.abrupt("return");
2725
2733
 
2726
- case 17:
2734
+ case 15:
2727
2735
  checkoutBodyForRegistration = createCheckoutDataBody(ticketsQuantity.length, values, {
2728
2736
  emailLogged: emailLogged,
2729
2737
  firstNameLogged: firstNameLogged,
@@ -2731,11 +2739,11 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2731
2739
  }, showDOB);
2732
2740
  bodyFormData = createRegisterFormData(values, checkoutBodyForRegistration);
2733
2741
  access_token_register = null;
2734
- _context6.prev = 20;
2735
- _context6.next = 23;
2742
+ _context6.prev = 18;
2743
+ _context6.next = 21;
2736
2744
  return register(bodyFormData);
2737
2745
 
2738
- case 23:
2746
+ case 21:
2739
2747
  resRegister = _context6.sent;
2740
2748
  access_token_register = _get(resRegister, 'data.data.attributes.access_token');
2741
2749
  refreshToken = _get(resRegister, 'data.data.attributes.refresh_token');
@@ -2745,12 +2753,12 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2745
2753
  refreshToken: refreshToken
2746
2754
  };
2747
2755
  onRegisterSuccess(tokens);
2748
- _context6.next = 35;
2756
+ _context6.next = 33;
2749
2757
  break;
2750
2758
 
2751
- case 31:
2752
- _context6.prev = 31;
2753
- _context6.t0 = _context6["catch"](20);
2759
+ case 29:
2760
+ _context6.prev = 29;
2761
+ _context6.t0 = _context6["catch"](18);
2754
2762
 
2755
2763
  if (axios.isAxiosError(_context6.t0)) {
2756
2764
  _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;
@@ -2775,11 +2783,11 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2775
2783
 
2776
2784
  return _context6.abrupt("return");
2777
2785
 
2778
- case 35:
2779
- _context6.next = 37;
2786
+ case 33:
2787
+ _context6.next = 35;
2780
2788
  return getProfileData(access_token_register);
2781
2789
 
2782
- case 37:
2790
+ case 35:
2783
2791
  profileData = _context6.sent;
2784
2792
  profileSpecifiedData = _get(profileData, 'data.data');
2785
2793
  profileDataObj = setLoggedUserData(profileSpecifiedData);
@@ -2789,21 +2797,17 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2789
2797
  }
2790
2798
 
2791
2799
  checkoutBody = collectCheckoutBody(values);
2792
- _context6.next = 44;
2800
+ _context6.next = 42;
2793
2801
  return postOnCheckout(checkoutBody, access_token_register);
2794
2802
 
2795
- case 44:
2803
+ case 42:
2796
2804
  res = _context6.sent;
2797
- _context6.next = 47;
2798
- return getPaymentData(res.data.data.attributes.hash);
2799
-
2800
- case 47:
2801
2805
  handleSubmit(values, formikHelpers, eventId, res);
2802
- _context6.next = 53;
2806
+ _context6.next = 49;
2803
2807
  break;
2804
2808
 
2805
- case 50:
2806
- _context6.prev = 50;
2809
+ case 46:
2810
+ _context6.prev = 46;
2807
2811
  _context6.t1 = _context6["catch"](0);
2808
2812
 
2809
2813
  if (axios.isAxiosError(_context6.t1)) {
@@ -2827,12 +2831,12 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2827
2831
  onSubmitError(_context6.t1);
2828
2832
  }
2829
2833
 
2830
- case 53:
2834
+ case 49:
2831
2835
  case "end":
2832
2836
  return _context6.stop();
2833
2837
  }
2834
2838
  }
2835
- }, _callee6, null, [[0, 50], [20, 31]]);
2839
+ }, _callee6, null, [[0, 46], [18, 29]]);
2836
2840
  }));
2837
2841
 
2838
2842
  function onSubmit(_x2, _x3) {
@@ -3337,12 +3341,6 @@ var getStripePromise = function getStripePromise(reviewData) {
3337
3341
  return stripeJs.loadStripe(stripePublishableKey, options);
3338
3342
  };
3339
3343
 
3340
- function Loader() {
3341
- return React__default.createElement("div", {
3342
- className: "loader-container"
3343
- }, React__default.createElement(CircularProgress, null));
3344
- }
3345
-
3346
3344
  var initialOrderValues = {
3347
3345
  product_name: '',
3348
3346
  ticketType: '',
@@ -3414,9 +3412,9 @@ var PaymentContainer = function PaymentContainer(_ref) {
3414
3412
  var showFormTitle = Boolean(formTitle);
3415
3413
  var showErrorText = Boolean(errorText);
3416
3414
  var eventId = getQueryVariable('event_id');
3415
+ var hash = checkoutData.hash,
3416
+ total = checkoutData.total;
3417
3417
  React.useEffect(function () {
3418
- var hash = checkoutData.hash;
3419
-
3420
3418
  _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
3421
3419
  var response, _cart$, attributes, cart, order_details, _order_details$ticket, ticket, _orderData;
3422
3420
 
@@ -3536,32 +3534,50 @@ var PaymentContainer = function PaymentContainer(_ref) {
3536
3534
 
3537
3535
  case 4:
3538
3536
  order_hash = reviewData.order_details.order_hash;
3539
- _context3.next = 7;
3537
+
3538
+ if (!(total === "0.00")) {
3539
+ _context3.next = 11;
3540
+ break;
3541
+ }
3542
+
3543
+ _context3.next = 8;
3544
+ return handleFreeSuccess(order_hash);
3545
+
3546
+ case 8:
3547
+ _context3.t0 = _context3.sent;
3548
+ _context3.next = 14;
3549
+ break;
3550
+
3551
+ case 11:
3552
+ _context3.next = 13;
3540
3553
  return handlePaymentSuccess(order_hash);
3541
3554
 
3542
- case 7:
3543
- paymentSuccessResponse = _context3.sent;
3555
+ case 13:
3556
+ _context3.t0 = _context3.sent;
3557
+
3558
+ case 14:
3559
+ paymentSuccessResponse = _context3.t0;
3544
3560
 
3545
3561
  if (paymentSuccessResponse.status === 200) {
3546
3562
  handlePayment(paymentSuccessResponse);
3547
3563
  setPaymentIsLoading(false);
3548
3564
  }
3549
3565
 
3550
- _context3.next = 15;
3566
+ _context3.next = 22;
3551
3567
  break;
3552
3568
 
3553
- case 11:
3554
- _context3.prev = 11;
3555
- _context3.t0 = _context3["catch"](0);
3556
- setError(_get(_context3.t0, 'response.data.message'));
3557
- onPaymentError(_context3.t0.response);
3569
+ case 18:
3570
+ _context3.prev = 18;
3571
+ _context3.t1 = _context3["catch"](0);
3572
+ setError(_get(_context3.t1, 'response.data.message'));
3573
+ onPaymentError(_context3.t1.response);
3558
3574
 
3559
- case 15:
3575
+ case 22:
3560
3576
  case "end":
3561
3577
  return _context3.stop();
3562
3578
  }
3563
3579
  }
3564
- }, _callee3, null, [[0, 11]]);
3580
+ }, _callee3, null, [[0, 18]]);
3565
3581
  }));
3566
3582
 
3567
3583
  return function handlePaymentMiddleWare(_x) {
@@ -3603,7 +3619,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3603
3619
  }, label), React__default.createElement("div", {
3604
3620
  className: className + " order_info_text"
3605
3621
  }, normalizer(orderData[id], orderData.currency)));
3606
- })), React__default.createElement("div", {
3622
+ })), total !== "0.00" ? React__default.createElement("div", {
3607
3623
  className: "payment_info"
3608
3624
  }, React__default.createElement("div", {
3609
3625
  className: "payment_info_label"
@@ -3626,7 +3642,17 @@ var PaymentContainer = function PaymentContainer(_ref) {
3626
3642
  conditions: conditions,
3627
3643
  stripeCardOptions: stripeCardOptions,
3628
3644
  disableZipSection: disableZipSection
3629
- })))))));
3645
+ })))) : React__default.createElement("div", {
3646
+ className: "payment_button " + (paymentIsLoading ? 'disabled-payment-button' : '')
3647
+ }, React__default.createElement("button", {
3648
+ disabled: paymentIsLoading,
3649
+ type: "button",
3650
+ onClick: function onClick() {
3651
+ handlePaymentMiddleWare(null);
3652
+ }
3653
+ }, paymentIsLoading ? React__default.createElement(CircularProgress, {
3654
+ size: 26
3655
+ }) : "Complete Registration")))));
3630
3656
  };
3631
3657
 
3632
3658
  var config = {
@@ -4288,7 +4314,8 @@ var PromoCodeSection = function PromoCodeSection(_ref) {
4288
4314
  setPromoCode = _ref.setPromoCode,
4289
4315
  setPromoCodeUpdated = _ref.setPromoCodeUpdated,
4290
4316
  setShowPromoInput = _ref.setShowPromoInput,
4291
- isAccessCodeEnabled = _ref.isAccessCodeEnabled;
4317
+ isAccessCodeEnabled = _ref.isAccessCodeEnabled,
4318
+ isPromoLoading = _ref.isPromoLoading;
4292
4319
  var isPromoCodeHasValue = !!promoCode.trim();
4293
4320
 
4294
4321
  var renderInputField = function renderInputField() {
@@ -4321,7 +4348,7 @@ var PromoCodeSection = function PromoCodeSection(_ref) {
4321
4348
  }, isAccessCodeEnabled ? 'ENTER' : 'APPLY'));
4322
4349
  };
4323
4350
 
4324
- return React__default.createElement("div", null, promoCodeIsApplied ? React__default.createElement("div", {
4351
+ return isPromoLoading ? React__default.createElement(Loader, null) : React__default.createElement("div", null, promoCodeIsApplied ? React__default.createElement("div", {
4325
4352
  className: "alert-info"
4326
4353
  }, React__default.createElement(SVG, {
4327
4354
  src: getImage('done.svg'),
@@ -4458,12 +4485,6 @@ var ReferralLogic = function ReferralLogic(props) {
4458
4485
  return null;
4459
4486
  };
4460
4487
 
4461
- function Loader$1() {
4462
- return React__default.createElement("div", {
4463
- className: "loader-container"
4464
- }, React__default.createElement(CircularProgress, null));
4465
- }
4466
-
4467
4488
  var TicketsContainer = function TicketsContainer(_ref) {
4468
4489
  var onLoginSuccess = _ref.onLoginSuccess,
4469
4490
  getTicketsLabel = _ref.getTicketsLabel,
@@ -4522,24 +4543,28 @@ var TicketsContainer = function TicketsContainer(_ref) {
4522
4543
  setIsLoading = _useState6[1];
4523
4544
 
4524
4545
  var _useState7 = React.useState(false),
4525
- handleBookIsLoading = _useState7[0],
4526
- setHandleBookIsLoading = _useState7[1];
4546
+ isPromoLoading = _useState7[0],
4547
+ setIsPromoLoading = _useState7[1];
4527
4548
 
4528
- var _useState8 = React.useState(''),
4529
- promoCode = _useState8[0],
4530
- setPromoCode = _useState8[1];
4549
+ var _useState8 = React.useState(false),
4550
+ handleBookIsLoading = _useState8[0],
4551
+ setHandleBookIsLoading = _useState8[1];
4531
4552
 
4532
- var _useState9 = React.useState(getQueryVariable('r') || queryPromoCode),
4533
- promoCodeUpdated = _useState9[0],
4534
- setPromoCodeUpdated = _useState9[1];
4553
+ var _useState9 = React.useState(''),
4554
+ promoCode = _useState9[0],
4555
+ setPromoCode = _useState9[1];
4535
4556
 
4536
- var _useState10 = React.useState(false),
4537
- showPromoInput = _useState10[0],
4538
- setShowPromoInput = _useState10[1];
4557
+ var _useState10 = React.useState(getQueryVariable('r') || queryPromoCode),
4558
+ promoCodeUpdated = _useState10[0],
4559
+ setPromoCodeUpdated = _useState10[1];
4539
4560
 
4540
4561
  var _useState11 = React.useState(false),
4541
- promoCodeIsApplied = _useState11[0],
4542
- setPromoCodeIsApplied = _useState11[1];
4562
+ showPromoInput = _useState11[0],
4563
+ setShowPromoInput = _useState11[1];
4564
+
4565
+ var _useState12 = React.useState(false),
4566
+ promoCodeIsApplied = _useState12[0],
4567
+ setPromoCodeIsApplied = _useState12[1];
4543
4568
 
4544
4569
  React.useEffect(function () {
4545
4570
  if (typeof window !== 'undefined') {
@@ -4556,7 +4581,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4556
4581
  }
4557
4582
  }, []);
4558
4583
  React.useEffect(function () {
4559
- !!eventId && getTicketsApi();
4584
+ !!eventId && getTicketsApi(!!promoCodeUpdated);
4560
4585
  }, [eventId, promoCodeUpdated]);
4561
4586
 
4562
4587
  var handleLogout = function handleLogout() {
@@ -4588,12 +4613,12 @@ var TicketsContainer = function TicketsContainer(_ref) {
4588
4613
  }
4589
4614
  };
4590
4615
 
4591
- function getTicketsApi() {
4616
+ function getTicketsApi(_x) {
4592
4617
  return _getTicketsApi.apply(this, arguments);
4593
4618
  }
4594
4619
 
4595
4620
  function _getTicketsApi() {
4596
- _getTicketsApi = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2() {
4621
+ _getTicketsApi = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(isUpdateingPromoCode) {
4597
4622
  var response, eventResponse, attributes, _event2;
4598
4623
 
4599
4624
  return runtime_1.wrap(function _callee2$(_context2) {
@@ -4601,16 +4626,17 @@ var TicketsContainer = function TicketsContainer(_ref) {
4601
4626
  switch (_context2.prev = _context2.next) {
4602
4627
  case 0:
4603
4628
  _context2.prev = 0;
4604
- setIsLoading(true);
4605
- _context2.next = 4;
4629
+ !isUpdateingPromoCode && setIsLoading(true);
4630
+ setIsPromoLoading(true);
4631
+ _context2.next = 5;
4606
4632
  return getTickets(eventId, promoCodeUpdated);
4607
4633
 
4608
- case 4:
4634
+ case 5:
4609
4635
  response = _context2.sent;
4610
- _context2.next = 7;
4636
+ _context2.next = 8;
4611
4637
  return getEvent(eventId);
4612
4638
 
4613
- case 7:
4639
+ case 8:
4614
4640
  eventResponse = _context2.sent;
4615
4641
 
4616
4642
  if (response.data.success) {
@@ -4628,28 +4654,29 @@ var TicketsContainer = function TicketsContainer(_ref) {
4628
4654
  setEvent(_event2);
4629
4655
  }
4630
4656
 
4631
- _context2.next = 15;
4657
+ _context2.next = 16;
4632
4658
  break;
4633
4659
 
4634
- case 12:
4635
- _context2.prev = 12;
4660
+ case 13:
4661
+ _context2.prev = 13;
4636
4662
  _context2.t0 = _context2["catch"](0);
4637
4663
 
4638
4664
  if (axios.isAxiosError(_context2.t0)) {
4639
4665
  onGetTicketsError(_context2.t0);
4640
4666
  }
4641
4667
 
4642
- case 15:
4643
- _context2.prev = 15;
4668
+ case 16:
4669
+ _context2.prev = 16;
4644
4670
  setIsLoading(false);
4645
- return _context2.finish(15);
4671
+ setIsPromoLoading(false);
4672
+ return _context2.finish(16);
4646
4673
 
4647
- case 18:
4674
+ case 20:
4648
4675
  case "end":
4649
4676
  return _context2.stop();
4650
4677
  }
4651
4678
  }
4652
- }, _callee2, null, [[0, 12, 15, 18]]);
4679
+ }, _callee2, null, [[0, 13, 16, 20]]);
4653
4680
  }));
4654
4681
  return _getTicketsApi.apply(this, arguments);
4655
4682
  }
@@ -4807,7 +4834,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4807
4834
  }), React__default.createElement("div", {
4808
4835
  className: "get-tickets-page " + theme,
4809
4836
  style: contentStyle
4810
- }, isLoading ? React__default.createElement(Loader$1, null) : React__default.createElement("div", null, React__default.createElement(TicketsSection, {
4837
+ }, isLoading ? React__default.createElement(Loader, null) : React__default.createElement("div", null, React__default.createElement(TicketsSection, {
4811
4838
  ticketsList: tickets,
4812
4839
  selectedTickets: selectedTickets,
4813
4840
  handleTicketSelect: handleTicketSelect,
@@ -4832,7 +4859,8 @@ var TicketsContainer = function TicketsContainer(_ref) {
4832
4859
  setShowPromoInput: setShowPromoInput,
4833
4860
  isPromotionsEnabled: isPromotionsEnabled,
4834
4861
  isAccessCodeEnabled: isAccessCodeEnabled,
4835
- isAllTicketsSoldOut: isAllTicketsSoldOut
4862
+ isAllTicketsSoldOut: isAllTicketsSoldOut,
4863
+ isPromoLoading: isPromoLoading
4836
4864
  }), (isTicketOnSale || !(event != null && event.salesEnded)) && React__default.createElement(Button$1, {
4837
4865
  "aria-hidden": true,
4838
4866
  className: "book-button " + (handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0 ? 'disabled' : ''),