tf-checkout-react 1.0.75 → 1.0.76

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.
@@ -3,6 +3,8 @@ import { AxiosError } from 'axios';
3
3
  import { FormikHelpers, FormikValues } from 'formik';
4
4
  import './style.css';
5
5
  import { IBillingInfoData } from '../../types';
6
+ import { ThemeOptions } from '@mui/material';
7
+ import { CSSProperties } from '@mui/styled-engine';
6
8
  export interface IBillingInfoPage {
7
9
  data?: IBillingInfoData[];
8
10
  ticketHoldersFields?: IBillingInfoData;
@@ -30,7 +32,10 @@ export interface IBillingInfoPage {
30
32
  theme?: 'light' | 'dark';
31
33
  isLoggedIn?: boolean;
32
34
  accountInfoTitle?: string | JSX.Element;
33
- fontFamily?: string;
34
35
  hideLogo?: boolean;
36
+ themeOptions?: ThemeOptions & {
37
+ input?: CSSProperties;
38
+ checkbox?: CSSProperties;
39
+ };
35
40
  }
36
- export declare const BillingInfoContainer: ({ data, ticketHoldersFields, initialValues, buttonName, handleSubmit, theme, onRegisterSuccess, onRegisterError, onSubmitError, onGetCartSuccess, onGetCartError, onGetCountriesSuccess, onGetCountriesError, onGetStatesSuccess, onGetStatesError, onGetProfileDataSuccess, onGetProfileDataError, onAuthorizeSuccess, onAuthorizeError, onLogin, onLoginSuccess, isLoggedIn: pIsLoggedIn, accountInfoTitle, fontFamily, hideLogo, }: IBillingInfoPage) => JSX.Element;
41
+ export declare const BillingInfoContainer: ({ data, ticketHoldersFields, initialValues, buttonName, handleSubmit, theme, onRegisterSuccess, onRegisterError, onSubmitError, onGetCartSuccess, onGetCartError, onGetCountriesSuccess, onGetCountriesError, onGetStatesSuccess, onGetStatesError, onGetProfileDataSuccess, onGetProfileDataError, onAuthorizeSuccess, onAuthorizeError, onLogin, onLoginSuccess, isLoggedIn: pIsLoggedIn, accountInfoTitle, hideLogo, themeOptions }: IBillingInfoPage) => JSX.Element;
@@ -30,6 +30,7 @@ interface IUserData {
30
30
  state?: string;
31
31
  zip?: string;
32
32
  zipCode?: string;
33
+ stateId?: string;
33
34
  }
34
35
  export declare const setLoggedUserData: (data: IUserData) => {
35
36
  id: string;
@@ -1,8 +1,9 @@
1
- /// <reference types="react" />
1
+ import { CSSProperties } from 'react';
2
2
  import { AxiosError } from 'axios';
3
3
  import './style.css';
4
4
  import { IPaymentField } from '../../types';
5
5
  import { StripeCardNumberElementOptions } from '@stripe/stripe-js';
6
+ import { ThemeOptions } from '@mui/material';
6
7
  export interface IPaymentPage {
7
8
  paymentFields: IPaymentField[];
8
9
  handlePayment: any;
@@ -15,6 +16,9 @@ export interface IPaymentPage {
15
16
  onPaymentError: (value: AxiosError) => void;
16
17
  stripeCardOptions?: StripeCardNumberElementOptions;
17
18
  disableZipSection: boolean;
18
- fontFamily?: string;
19
+ themeOptions?: ThemeOptions & {
20
+ input?: CSSProperties;
21
+ checkbox?: CSSProperties;
22
+ };
19
23
  }
20
- export declare const PaymentContainer: ({ paymentFields, handlePayment, formTitle, errorText, checkoutData, onErrorClose, onGetPaymentDataSuccess, onGetPaymentDataError, onPaymentError, stripeCardOptions, disableZipSection, fontFamily, }: IPaymentPage) => JSX.Element;
24
+ export declare const PaymentContainer: ({ paymentFields, handlePayment, formTitle, errorText, checkoutData, onErrorClose, onGetPaymentDataSuccess, onGetPaymentDataError, onPaymentError, stripeCardOptions, disableZipSection, themeOptions, }: IPaymentPage) => JSX.Element;
@@ -6,6 +6,7 @@ interface CartSuccess {
6
6
  names_required: boolean;
7
7
  age_required: boolean;
8
8
  event_id: string;
9
+ hash?: string;
9
10
  }
10
11
  export interface IGetTickets {
11
12
  eventId: number;
@@ -7,7 +7,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
7
7
  var React = require('react');
8
8
  var React__default = _interopDefault(React);
9
9
  var formik = require('formik');
10
- var LoadingButton = _interopDefault(require('@mui/lab/LoadingButton'));
10
+ var Button = _interopDefault(require('@mui/material/Button'));
11
11
  var _identity = _interopDefault(require('lodash/identity'));
12
12
  var _map = _interopDefault(require('lodash/map'));
13
13
  var _get = _interopDefault(require('lodash/get'));
@@ -21,12 +21,13 @@ var _flatMapDeep = _interopDefault(require('lodash/flatMapDeep'));
21
21
  var _isArray = _interopDefault(require('lodash/isArray'));
22
22
  var nanoid = require('nanoid');
23
23
  var TextField = _interopDefault(require('@mui/material/TextField'));
24
+ var styles = require('@mui/styles');
24
25
  var FormGroup = _interopDefault(require('@mui/material/FormGroup'));
25
26
  var FormControlLabel = _interopDefault(require('@mui/material/FormControlLabel'));
26
27
  var Checkbox = _interopDefault(require('@mui/material/Checkbox'));
27
28
  var Select = _interopDefault(require('@mui/material/Select'));
28
29
  var MuiPhoneNumber = _interopDefault(require('material-ui-phone-number'));
29
- var styles = require('@mui/material/styles');
30
+ var styles$1 = require('@mui/material/styles');
30
31
  var Container = _interopDefault(require('@mui/material/Container'));
31
32
  var CircularProgress = _interopDefault(require('@mui/material/CircularProgress'));
32
33
  var Alert = _interopDefault(require('@mui/material/Alert'));
@@ -36,13 +37,12 @@ var reactShare = require('react-share');
36
37
  var _some = _interopDefault(require('lodash/some'));
37
38
  var _find = _interopDefault(require('lodash/find'));
38
39
  var _isEmpty = _interopDefault(require('lodash/isEmpty'));
39
- var Button = _interopDefault(require('react-bootstrap/Button'));
40
+ var Button$1 = _interopDefault(require('react-bootstrap/Button'));
40
41
  var jwt_decode = _interopDefault(require('jwt-decode'));
41
42
  var _sortBy = _interopDefault(require('lodash/sortBy'));
42
43
  var _has = _interopDefault(require('lodash/has'));
43
44
  var FormControl = _interopDefault(require('@mui/material/FormControl'));
44
45
  var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
45
- var Button$1 = _interopDefault(require('@mui/material/Button'));
46
46
  var SVG = _interopDefault(require('react-inlinesvg'));
47
47
  var Table = _interopDefault(require('@mui/material/Table'));
48
48
  var TableBody = _interopDefault(require('@mui/material/TableBody'));
@@ -994,6 +994,42 @@ var ErrorFocusInternal = /*#__PURE__*/function (_Component) {
994
994
 
995
995
  var ErrorFocus = /*#__PURE__*/formik.connect(ErrorFocusInternal);
996
996
 
997
+ var createCheckoutDataBodyWithDefaultHolder = function createCheckoutDataBodyWithDefaultHolder(ticketsQuantity, logedInValues) {
998
+ var ticket_holders = [];
999
+ var first_name = _get(logedInValues, 'firstName') || _get(logedInValues, 'first_name') || '';
1000
+ var last_name = _get(logedInValues, 'lastName', '') || _get(logedInValues, 'last_name') || '';
1001
+
1002
+ var phone = _get(logedInValues, 'phone', '');
1003
+
1004
+ var email = _get(logedInValues, 'email', '');
1005
+
1006
+ for (var i = 0; i <= ticketsQuantity - 1; i++) {
1007
+ var individualHolder = i ? {
1008
+ first_name: '',
1009
+ last_name: '',
1010
+ phone: '',
1011
+ email: ''
1012
+ } : {
1013
+ first_name: first_name,
1014
+ last_name: last_name,
1015
+ phone: phone,
1016
+ email: email
1017
+ };
1018
+ ticket_holders.push(individualHolder);
1019
+ }
1020
+
1021
+ var body = {
1022
+ attributes: _extends({}, logedInValues, {
1023
+ email: email,
1024
+ confirm_email: email,
1025
+ first_name: first_name,
1026
+ last_name: last_name,
1027
+ ticket_holders: ticket_holders
1028
+ })
1029
+ };
1030
+ return body;
1031
+ };
1032
+
997
1033
  var isWindowDefined = typeof window !== 'undefined';
998
1034
  var ttfHeaders = {
999
1035
  Accept: 'application/vnd.api+json',
@@ -1658,7 +1694,7 @@ var setLoggedUserData = function setLoggedUserData(data) {
1658
1694
  country: (data == null ? void 0 : data.country) || '',
1659
1695
  phone: (data == null ? void 0 : data.phone) || '',
1660
1696
  street_address: (data == null ? void 0 : data.streetAddress) || '',
1661
- state: (data == null ? void 0 : data.state) || '',
1697
+ state: (data == null ? void 0 : data.stateId) || '',
1662
1698
  zip: (data == null ? void 0 : data.zip) || (data == null ? void 0 : data.zipCode) || ''
1663
1699
  };
1664
1700
  };
@@ -1784,6 +1820,7 @@ var CustomField = function CustomField(_ref) {
1784
1820
  var error = _get(errors, field.name);
1785
1821
 
1786
1822
  var isTouched = Boolean(_get(touched, field.name)) || _includes(field.name, 'holder') && !!error && !!submitCount;
1823
+ var customTheme = styles.useTheme();
1787
1824
  return React__default.createElement(TextField, Object.assign({
1788
1825
  id: field.name,
1789
1826
  label: label,
@@ -1798,6 +1835,12 @@ var CustomField = function CustomField(_ref) {
1798
1835
  MenuProps: {
1799
1836
  className: theme
1800
1837
  }
1838
+ },
1839
+ InputLabelProps: {
1840
+ sx: customTheme.input
1841
+ },
1842
+ inputProps: {
1843
+ sx: customTheme.input
1801
1844
  }
1802
1845
  }, field), isSelectField ? _map(selectOptions, function (option) {
1803
1846
  return React__default.createElement("option", {
@@ -1814,9 +1857,13 @@ var CheckboxField = function CheckboxField(_ref) {
1814
1857
  field = _ref.field,
1815
1858
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1816
1859
 
1860
+ var customTheme = styles.useTheme();
1817
1861
  return React__default.createElement(FormGroup, null, React__default.createElement(FormControlLabel, {
1818
1862
  control: React__default.createElement(Checkbox, Object.assign({}, field, rest)),
1819
- label: label
1863
+ label: label,
1864
+ componentsProps: {
1865
+ typography: customTheme.checkbox
1866
+ }
1820
1867
  }));
1821
1868
  };
1822
1869
 
@@ -1835,9 +1882,11 @@ var SelectField = function SelectField(_ref) {
1835
1882
 
1836
1883
  var error = _get(errors, field.name);
1837
1884
 
1885
+ var customTheme = styles.useTheme();
1838
1886
  return React__default.createElement(material.FormControl, {
1839
1887
  fullWidth: true
1840
1888
  }, React__default.createElement(material.InputLabel, {
1889
+ style: customTheme.input,
1841
1890
  htmlFor: field.name,
1842
1891
  error: !!error && isTouched,
1843
1892
  shrink: true
@@ -1855,7 +1904,9 @@ var SelectField = function SelectField(_ref) {
1855
1904
  MenuProps: {
1856
1905
  className: theme
1857
1906
  }
1858
- }, field), _map(selectOptions, function (option) {
1907
+ }, field, {
1908
+ style: customTheme.input
1909
+ }), _map(selectOptions, function (option) {
1859
1910
  return React__default.createElement("option", {
1860
1911
  key: option.value,
1861
1912
  value: option.value,
@@ -1953,6 +2004,7 @@ var FormikPhoneNumberField = function FormikPhoneNumberField(_ref) {
1953
2004
  var error = _get(errors, field.name);
1954
2005
 
1955
2006
  var isTouched = Boolean(_get(touched, field.name));
2007
+ var customTheme = styles.useTheme();
1956
2008
  return React__default.createElement(MuiPhoneNumber, Object.assign({
1957
2009
  name: 'phone',
1958
2010
  onChange: function onChange(e) {
@@ -1965,6 +2017,12 @@ var FormikPhoneNumberField = function FormikPhoneNumberField(_ref) {
1965
2017
  error: !!error && isTouched,
1966
2018
  helperText: isTouched && error,
1967
2019
  fullWidth: true,
2020
+ InputLabelProps: {
2021
+ sx: customTheme.input
2022
+ },
2023
+ InputProps: {
2024
+ sx: customTheme.input
2025
+ },
1968
2026
  autoFormat: false
1969
2027
  }, rest));
1970
2028
  };
@@ -1977,10 +2035,11 @@ var LogicRunner = function LogicRunner(_ref) {
1977
2035
  setUserValues = _ref.setUserValues,
1978
2036
  onGetStatesSuccess = _ref.onGetStatesSuccess,
1979
2037
  onGetStatesError = _ref.onGetStatesError;
2038
+ var prevCountry = React.useRef(values.country);
1980
2039
  React.useEffect(function () {
1981
2040
  var fetchStates = /*#__PURE__*/function () {
1982
2041
  var _ref2 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
1983
- var _mappedStates$0$value, _mappedStates$, res, mappedStates;
2042
+ var res, mappedStates, _mappedStates$0$value, _mappedStates$;
1984
2043
 
1985
2044
  return runtime_1.wrap(function _callee$(_context) {
1986
2045
  while (1) {
@@ -1999,7 +2058,12 @@ var LogicRunner = function LogicRunner(_ref) {
1999
2058
  };
2000
2059
  });
2001
2060
  setStates(mappedStates);
2002
- setFieldValue('state', (_mappedStates$0$value = (_mappedStates$ = mappedStates[0]) == null ? void 0 : _mappedStates$.value) != null ? _mappedStates$0$value : '');
2061
+
2062
+ if (prevCountry.current !== values.country) {
2063
+ setFieldValue('state', (_mappedStates$0$value = (_mappedStates$ = mappedStates[0]) == null ? void 0 : _mappedStates$.value) != null ? _mappedStates$0$value : '');
2064
+ prevCountry.current = values.country;
2065
+ }
2066
+
2003
2067
  onGetStatesSuccess(res.data);
2004
2068
  _context.next = 13;
2005
2069
  break;
@@ -2037,13 +2101,13 @@ var LogicRunner = function LogicRunner(_ref) {
2037
2101
  var parsedData = JSON.parse(userDataEncoded);
2038
2102
  var mappedValues = {
2039
2103
  firstName: (parsedData == null ? void 0 : parsedData.first_name) || '',
2040
- lastName: parsedData == null ? void 0 : parsedData.last_name,
2104
+ lastName: (parsedData == null ? void 0 : parsedData.last_name) || '',
2041
2105
  email: (parsedData == null ? void 0 : parsedData.email) || '',
2042
2106
  phone: (parsedData == null ? void 0 : parsedData.phone) || '',
2043
2107
  confirmEmail: (parsedData == null ? void 0 : parsedData.email) || '',
2044
2108
  state: (parsedData == null ? void 0 : parsedData.state) || '',
2045
2109
  street_address: (parsedData == null ? void 0 : parsedData.street_address) || '',
2046
- country: (parsedData == null ? void 0 : parsedData.country) || 1,
2110
+ country: (parsedData == null ? void 0 : parsedData.country) || "1",
2047
2111
  zip: (parsedData == null ? void 0 : parsedData.zip) || '',
2048
2112
  brand_opt_in: (parsedData == null ? void 0 : parsedData.brand_opt_in) || '',
2049
2113
  city: (parsedData == null ? void 0 : parsedData.city) || '',
@@ -2114,15 +2178,9 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2114
2178
  pIsLoggedIn = _ref3$isLoggedIn === void 0 ? false : _ref3$isLoggedIn,
2115
2179
  _ref3$accountInfoTitl = _ref3.accountInfoTitle,
2116
2180
  accountInfoTitle = _ref3$accountInfoTitl === void 0 ? '' : _ref3$accountInfoTitl,
2117
- fontFamily = _ref3.fontFamily,
2118
- hideLogo = _ref3.hideLogo;
2119
- var themeMui = styles.createTheme({
2120
- typography: {
2121
- allVariants: {
2122
- fontFamily: fontFamily
2123
- }
2124
- }
2125
- });
2181
+ hideLogo = _ref3.hideLogo,
2182
+ themeOptions = _ref3.themeOptions;
2183
+ var themeMui = styles$1.createTheme(themeOptions);
2126
2184
  var isWindowDefined = typeof window !== 'undefined';
2127
2185
  var userData = isWindowDefined && window.localStorage.getItem('user_data') ? JSON.parse(window.localStorage.getItem('user_data') || '') : {};
2128
2186
  var access_token = isWindowDefined && window.localStorage.getItem('access_token') ? window.localStorage.getItem('access_token') || '' : '';
@@ -2248,7 +2306,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2248
2306
  setCountries(_map(_get(res, 'data.data'), function (item, key) {
2249
2307
  return {
2250
2308
  label: item,
2251
- value: Number(key)
2309
+ value: key
2252
2310
  };
2253
2311
  }));
2254
2312
  onGetCountriesSuccess(res.data);
@@ -2348,7 +2406,10 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2348
2406
  userDataResponse = _context4.sent;
2349
2407
  profileSpecifiedData = _get(userDataResponse, 'data.data');
2350
2408
  profileDataObj = setLoggedUserData(profileSpecifiedData);
2351
- setUserValues(profileDataObj);
2409
+ setUserValues(_extends({}, profileDataObj, {
2410
+ firstName: profileDataObj.first_name,
2411
+ lastName: profileDataObj.last_name
2412
+ }));
2352
2413
  window.localStorage.setItem('user_data', JSON.stringify(profileDataObj));
2353
2414
  onGetProfileDataSuccess(userDataResponse.data);
2354
2415
 
@@ -2380,13 +2441,12 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2380
2441
  React.useEffect(function () {
2381
2442
  fetchUserData(access_token);
2382
2443
  }, [access_token]);
2383
- return React__default.createElement(styles.ThemeProvider, {
2444
+ return React__default.createElement(styles$1.ThemeProvider, {
2384
2445
  theme: themeMui
2385
2446
  }, React__default.createElement(formik.Formik, {
2386
2447
  initialValues: getInitialValues(dataWithUniqueIds, _extends({}, initialValues, {
2387
- firstName: firstNameLogged,
2388
- lastName: lastNameLogged,
2389
- country: 1,
2448
+ country: _get(userData, 'country', '') || "1",
2449
+ state: _get(userData, 'state', '') || "1",
2390
2450
  brand_opt_in: optedInFieldValue
2391
2451
  }), userValues),
2392
2452
  enableReinitialize: true,
@@ -2650,17 +2710,14 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2650
2710
  }));
2651
2711
  })), React__default.createElement("div", {
2652
2712
  className: "button-container"
2653
- }, React__default.createElement(LoadingButton, {
2713
+ }, React__default.createElement(Button, {
2654
2714
  type: "submit",
2655
2715
  variant: "contained",
2656
2716
  className: "login-register-button",
2657
- loadingIndicator: React__default.createElement(material.CircularProgress, {
2658
- color: "inherit",
2659
- size: 26
2660
- }),
2661
- loading: props.isSubmitting,
2662
2717
  disabled: props.isSubmitting
2663
- }, buttonName))));
2718
+ }, props.isSubmitting ? React__default.createElement(material.CircularProgress, {
2719
+ size: 26
2720
+ }) : buttonName))));
2664
2721
  }), showModalLogin && React__default.createElement(LoginModal, {
2665
2722
  onClose: function onClose() {
2666
2723
  setShowModalLogin(false);
@@ -2951,7 +3008,9 @@ var CheckoutForm = function CheckoutForm(_ref) {
2951
3008
  }, React__default.createElement("button", {
2952
3009
  disabled: buttonIsDiabled,
2953
3010
  type: "submit"
2954
- }, isLoading ? React__default.createElement(CircularProgress, null) : "Pay " + getCurrencySymbolByCurrency(currency) + total))));
3011
+ }, isLoading ? React__default.createElement(CircularProgress, {
3012
+ size: 26
3013
+ }) : "Pay " + getCurrencySymbolByCurrency(currency) + total))));
2955
3014
  };
2956
3015
 
2957
3016
  var publishableKey = CONFIGS.STRIPE_PUBLISHABLE_KEY || '';
@@ -3013,7 +3072,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3013
3072
  stripeCardOptions = _ref$stripeCardOption === void 0 ? {} : _ref$stripeCardOption,
3014
3073
  _ref$disableZipSectio = _ref.disableZipSection,
3015
3074
  disableZipSection = _ref$disableZipSectio === void 0 ? false : _ref$disableZipSectio,
3016
- fontFamily = _ref.fontFamily;
3075
+ themeOptions = _ref.themeOptions;
3017
3076
 
3018
3077
  var _useState = React.useState(initialReviewValues),
3019
3078
  reviewData = _useState[0],
@@ -3197,14 +3256,8 @@ var PaymentContainer = function PaymentContainer(_ref) {
3197
3256
  };
3198
3257
  }();
3199
3258
 
3200
- var themeMui = styles.createTheme({
3201
- typography: {
3202
- allVariants: {
3203
- fontFamily: fontFamily
3204
- }
3205
- }
3206
- });
3207
- return React__default.createElement(styles.ThemeProvider, {
3259
+ var themeMui = styles$1.createTheme(themeOptions);
3260
+ return React__default.createElement(styles$1.ThemeProvider, {
3208
3261
  theme: themeMui
3209
3262
  }, React__default.createElement("div", {
3210
3263
  className: "payment_page"
@@ -3888,7 +3941,7 @@ var WaitingList = function WaitingList(_ref) {
3888
3941
  return emailValidator(value);
3889
3942
  }),
3890
3943
  component: CustomField
3891
- })), React__default.createElement(Button$1, {
3944
+ })), React__default.createElement(Button, {
3892
3945
  type: "submit",
3893
3946
  variant: "contained",
3894
3947
  className: "waiting-list-button"
@@ -3939,7 +3992,7 @@ var PromoCodeSection = function PromoCodeSection(_ref) {
3939
3992
  setPromoCodeUpdated(promoCode);
3940
3993
  }
3941
3994
  }
3942
- }), React__default.createElement(Button, {
3995
+ }), React__default.createElement(Button$1, {
3943
3996
  className: "promo-apply-button",
3944
3997
  placeholder: "Promo Code",
3945
3998
  onClick: function onClick() {
@@ -3947,7 +4000,7 @@ var PromoCodeSection = function PromoCodeSection(_ref) {
3947
4000
  }
3948
4001
  }, "Apply")), isPromotionsEnabled && !showPromoInput && isAllTicketsSoldOut && React__default.createElement("p", {
3949
4002
  className: "promo-code-text"
3950
- }, "Access code needed"), isPromotionsEnabled && !showPromoInput ? React__default.createElement(Button, {
4003
+ }, "Access code needed"), isPromotionsEnabled && !showPromoInput ? React__default.createElement(Button$1, {
3951
4004
  className: "promo-code-button",
3952
4005
  placeholder: "Promo Codes",
3953
4006
  onClick: function onClick() {
@@ -4105,7 +4158,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4105
4158
  var _ref3 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2() {
4106
4159
  var _product_options, _product_options2, _ticket_types;
4107
4160
 
4108
- 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;
4161
+ 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, skipBillingPage, nameIsRequired, ageIsRequired, hash, isWindowDefined, userData, access_token, ticketsQuantity, checkoutBody, checkoutResult;
4109
4162
 
4110
4163
  return runtime_1.wrap(function _callee2$(_context2) {
4111
4164
  while (1) {
@@ -4137,38 +4190,67 @@ var TicketsContainer = function TicketsContainer(_ref) {
4137
4190
  case 9:
4138
4191
  result = _context2.sent;
4139
4192
 
4140
- if (result.status === 200) {
4141
- setCustomHeader(result);
4142
- onAddToCartSuccess({
4143
- skip_billing_page: (_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,
4144
- names_required: (_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,
4145
- age_required: (_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,
4146
- event_id: String(eventId)
4147
- });
4193
+ if (!(result.status === 200)) {
4194
+ _context2.next = 27;
4195
+ break;
4196
+ }
4197
+
4198
+ setCustomHeader(result);
4199
+ 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;
4200
+ 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;
4201
+ 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;
4202
+ hash = '';
4203
+
4204
+ if (!skipBillingPage) {
4205
+ _context2.next = 26;
4206
+ break;
4148
4207
  }
4149
4208
 
4150
- _context2.next = 16;
4209
+ // Get user data for checkout data
4210
+ isWindowDefined = typeof window !== 'undefined';
4211
+ userData = isWindowDefined && window.localStorage.getItem('user_data') ? JSON.parse(window.localStorage.getItem('user_data') || '') : {};
4212
+ access_token = isWindowDefined && window.localStorage.getItem('access_token') ? window.localStorage.getItem('access_token') || '' : '';
4213
+ ticketsQuantity = Object.keys(selectedTickets).length;
4214
+ checkoutBody = createCheckoutDataBodyWithDefaultHolder(ticketsQuantity, userData);
4215
+ _context2.next = 24;
4216
+ return postOnCheckout(checkoutBody, access_token);
4217
+
4218
+ case 24:
4219
+ checkoutResult = _context2.sent;
4220
+ hash = _get(checkoutResult, 'data.data.attributes.hash');
4221
+
4222
+ case 26:
4223
+ onAddToCartSuccess({
4224
+ skip_billing_page: skipBillingPage,
4225
+ names_required: nameIsRequired,
4226
+ age_required: ageIsRequired,
4227
+ event_id: String(eventId),
4228
+ hash: hash
4229
+ });
4230
+
4231
+ case 27:
4232
+ _context2.next = 32;
4151
4233
  break;
4152
4234
 
4153
- case 13:
4154
- _context2.prev = 13;
4235
+ case 29:
4236
+ _context2.prev = 29;
4155
4237
  _context2.t0 = _context2["catch"](6);
4156
4238
 
4157
4239
  if (axios.isAxiosError(_context2.t0)) {
4158
4240
  onAddToCartError(_context2.t0);
4159
4241
  }
4160
4242
 
4161
- case 16:
4162
- _context2.prev = 16;
4243
+ case 32:
4244
+ _context2.prev = 32;
4163
4245
  setHandleBookIsLoading(false);
4164
- return _context2.finish(16);
4246
+ return _context2.finish(32);
4165
4247
 
4166
- case 19:
4248
+ case 35:
4167
4249
  case "end":
4168
4250
  return _context2.stop();
4169
4251
  }
4170
4252
  }
4171
- }, _callee2, null, [[6, 13, 16, 19]]);
4253
+ }, _callee2, null, [[6, 29, 32, 35]]);
4172
4254
  }));
4173
4255
 
4174
4256
  return function handleBook() {
@@ -4200,7 +4282,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4200
4282
  setShowPromoInput: setShowPromoInput,
4201
4283
  isPromotionsEnabled: isPromotionsEnabled,
4202
4284
  isAllTicketsSoldOut: isAllTicketsSoldOut
4203
- }), !isAllTicketsSoldOut && React__default.createElement(Button, {
4285
+ }), !isAllTicketsSoldOut && React__default.createElement(Button$1, {
4204
4286
  "aria-hidden": true,
4205
4287
  className: "book-button " + (handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0 ? 'disabled' : ''),
4206
4288
  onClick: !handleBookIsLoading && !_isEmpty(selectedTickets) && Object.values(selectedTickets)[0] > 0 ? handleBook : function () {}