tf-checkout-react 1.0.69 → 1.0.73

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.
@@ -30,5 +30,6 @@ export interface IBillingInfoPage {
30
30
  theme?: 'light' | 'dark';
31
31
  isLoggedIn?: boolean;
32
32
  fontFamily?: string;
33
+ hideLogo?: boolean;
33
34
  }
34
- 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, fontFamily }: IBillingInfoPage) => JSX.Element;
35
+ 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, fontFamily, hideLogo, }: IBillingInfoPage) => JSX.Element;
@@ -7,5 +7,5 @@ export interface ICheckboxField {
7
7
  interface IOtherProps {
8
8
  [key: string]: any;
9
9
  }
10
- export declare const CheckboxField: ({ label, field, selectOptions, theme, ...rest }: ICheckboxField & IOtherProps) => JSX.Element;
10
+ export declare const CheckboxField: ({ label, field, selectOptions, theme, setFieldValue, ...rest }: ICheckboxField & IOtherProps) => JSX.Element;
11
11
  export {};
@@ -7,5 +7,5 @@ export interface INumberInField {
7
7
  interface IOtherProps {
8
8
  [key: string]: any;
9
9
  }
10
- export declare const FormikPhoneNumberField: ({ label, field, form: { touched, errors }, setFieldValue, ...rest }: INumberInField & IOtherProps) => JSX.Element;
10
+ export declare const FormikPhoneNumberField: ({ label, field, form: { touched, errors }, setFieldValue, selectOptions, ...rest }: INumberInField & IOtherProps) => JSX.Element;
11
11
  export {};
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ export interface IPromoCodeSectionProps {
3
+ promoCode: string;
4
+ promoCodeIsApplied: boolean;
5
+ showPromoInput: boolean;
6
+ isPromotionsEnabled: boolean;
7
+ isAllTicketsSoldOut: boolean;
8
+ setPromoCode: (value: string) => void;
9
+ setPromoCodeUpdated: (value: string) => void;
10
+ setShowPromoInput: (value: boolean) => void;
11
+ }
12
+ export declare const PromoCodeSection: ({ promoCode, promoCodeIsApplied, showPromoInput, isPromotionsEnabled, isAllTicketsSoldOut, setPromoCode, setPromoCodeUpdated, setShowPromoInput, }: IPromoCodeSectionProps) => JSX.Element;
@@ -17,6 +17,7 @@ export interface IGetTickets {
17
17
  onGetTicketsError: (e: AxiosError) => void;
18
18
  theme?: 'light' | 'dark';
19
19
  queryPromoCode?: string;
20
+ isPromotionsEnabled?: boolean;
20
21
  }
21
22
  export interface ITicket {
22
23
  id: string | number;
@@ -25,5 +26,5 @@ export interface ITicket {
25
26
  export interface ISelectedTickets {
26
27
  [key: string]: string | number;
27
28
  }
28
- export declare const TicketsContainer: ({ getTicketsLabel, eventId, onAddToCartSuccess, contentStyle, onAddToCartError, onGetTicketsSuccess, onGetTicketsError, theme, queryPromoCode }: IGetTickets) => JSX.Element;
29
+ export declare const TicketsContainer: ({ getTicketsLabel, eventId, onAddToCartSuccess, contentStyle, onAddToCartError, onGetTicketsSuccess, onGetTicketsError, theme, queryPromoCode, isPromotionsEnabled, }: IGetTickets) => JSX.Element;
29
30
  export {};
@@ -3,6 +3,7 @@ import './style.css';
3
3
  interface WaitingListProps {
4
4
  tickets: any;
5
5
  eventId: number;
6
+ isPromotionsEnabled: boolean;
6
7
  }
7
- declare const WaitingList: ({ tickets, eventId }: WaitingListProps) => JSX.Element;
8
+ declare const WaitingList: ({ tickets, eventId, isPromotionsEnabled }: WaitingListProps) => JSX.Element;
8
9
  export default WaitingList;
package/dist/env.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- export declare const ENV_TEST: {
1
+ export declare const ENV: {
2
2
  EVENT_ID: number;
3
3
  BASE_URL: string;
4
4
  CLIENT_ID: string;
5
5
  CLIENT_SECRET: string;
6
6
  STRIPE_PUBLISHABLE_KEY: string;
7
7
  };
8
- export declare const ENV: {
8
+ export declare const ENV_PROD: {
9
9
  EVENT_ID: number;
10
10
  BASE_URL: string;
11
11
  CLIENT_ID: string;
@@ -0,0 +1,3 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10 20C15.5228 20 20 15.5228 20 10C20 4.47717 15.5228 0 10 0C4.47717 0 0 4.47717 0 10C0 15.5228 4.47717 20 10 20ZM8.14661 15.8678L16.8782 6.39722C16.9561 6.31335 17 6.19922 17 6.08008C17 5.96094 16.9561 5.8468 16.8782 5.76282L16.3016 5.12854C16.1386 4.95715 15.8796 4.95715 15.7167 5.12854L7.85004 13.661L4.28326 9.79236C4.20593 9.70776 4.10071 9.66016 3.99084 9.66016C3.9353 9.66016 3.88086 9.67236 3.83069 9.69531C3.78168 9.71777 3.73663 9.75061 3.69843 9.79236L3.12183 10.4177C3.07635 10.4667 3.04248 10.5259 3.02216 10.5905C3.00763 10.6365 3 10.6853 3 10.735C3 10.8541 3.04388 10.9683 3.12183 11.0521L7.56177 15.8678C7.6391 15.9524 7.74438 16 7.85419 16C7.96399 16 8.06927 15.9524 8.14661 15.8678Z" fill="#569F44"/>
3
+ </svg>
@@ -28,10 +28,10 @@ var Select = _interopDefault(require('@mui/material/Select'));
28
28
  var MuiPhoneNumber = _interopDefault(require('material-ui-phone-number'));
29
29
  var styles = require('@mui/material/styles');
30
30
  var Container = _interopDefault(require('@mui/material/Container'));
31
+ var CircularProgress = _interopDefault(require('@mui/material/CircularProgress'));
31
32
  var Alert = _interopDefault(require('@mui/material/Alert'));
32
33
  var reactStripeJs = require('@stripe/react-stripe-js');
33
34
  var stripeJs = require('@stripe/stripe-js');
34
- var CircularProgress = _interopDefault(require('@mui/material/CircularProgress'));
35
35
  var reactShare = require('react-share');
36
36
  var _some = _interopDefault(require('lodash/some'));
37
37
  var _find = _interopDefault(require('lodash/find'));
@@ -43,6 +43,7 @@ var _has = _interopDefault(require('lodash/has'));
43
43
  var FormControl = _interopDefault(require('@mui/material/FormControl'));
44
44
  var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
45
45
  var Button$1 = _interopDefault(require('@mui/material/Button'));
46
+ var SVG = _interopDefault(require('react-inlinesvg'));
46
47
  var Table = _interopDefault(require('@mui/material/Table'));
47
48
  var TableBody = _interopDefault(require('@mui/material/TableBody'));
48
49
  var TableCell = _interopDefault(require('@mui/material/TableCell'));
@@ -990,7 +991,7 @@ var ErrorFocusInternal = /*#__PURE__*/function (_Component) {
990
991
  var ErrorFocus = /*#__PURE__*/formik.connect(ErrorFocusInternal);
991
992
 
992
993
  var isWindowDefined = typeof window !== 'undefined';
993
- var allowedOrigins = ['http://localhost', 'gtsb.io', 'gatsbyjs.io', 'https://www.houseofx.nyc', 'https://tickets-staging.houseofx.nyc'];
994
+ var discardedOrigins = ['http://localhost', 'gtsb.io', 'gatsbyjs.io', 'https://www.houseofx.nyc', 'https://tickets-staging.houseofx.nyc'];
994
995
  var origin = isWindowDefined && window.location.origin;
995
996
  var ttfHeaders = {
996
997
  Accept: 'application/vnd.api+json',
@@ -1001,7 +1002,7 @@ if (isWindowDefined && localStorage.getItem('auth_guest_token')) {
1001
1002
  ttfHeaders['Authorization-Guest'] = /*#__PURE__*/localStorage.getItem('auth_guest_token');
1002
1003
  }
1003
1004
 
1004
- if (isWindowDefined && !allowedOrigins.some(function (el) {
1005
+ if (isWindowDefined && !discardedOrigins.some(function (el) {
1005
1006
  return origin && origin.includes(el);
1006
1007
  })) {
1007
1008
  ttfHeaders['X-Source-Origin'] = 'houseofx.nyc';
@@ -1049,7 +1050,7 @@ publicRequest.interceptors.request.use(function (config) {
1049
1050
  config.headers = _updatedHeaders;
1050
1051
  }
1051
1052
 
1052
- if (isWindowDefined && !allowedOrigins.some(function (el) {
1053
+ if (isWindowDefined && !discardedOrigins.some(function (el) {
1053
1054
  return origin && origin.includes(el);
1054
1055
  })) {
1055
1056
  var _updatedHeaders2 = _extends({}, config.headers, {
@@ -1810,7 +1811,7 @@ var CustomField = function CustomField(_ref) {
1810
1811
  }) : null);
1811
1812
  };
1812
1813
 
1813
- var _excluded$1 = ["label", "field", "selectOptions", "theme"];
1814
+ var _excluded$1 = ["label", "field", "selectOptions", "theme", "setFieldValue"];
1814
1815
  var CheckboxField = function CheckboxField(_ref) {
1815
1816
  var label = _ref.label,
1816
1817
  field = _ref.field,
@@ -1942,7 +1943,7 @@ var removePlusSign = function removePlusSign(string) {
1942
1943
  return string.replace('+', '');
1943
1944
  };
1944
1945
 
1945
- var _excluded$2 = ["label", "field", "form", "setFieldValue"];
1946
+ var _excluded$2 = ["label", "field", "form", "setFieldValue", "selectOptions"];
1946
1947
  var FormikPhoneNumberField = function FormikPhoneNumberField(_ref) {
1947
1948
  var label = _ref.label,
1948
1949
  field = _ref.field,
@@ -1971,22 +1972,6 @@ var FormikPhoneNumberField = function FormikPhoneNumberField(_ref) {
1971
1972
  }, rest));
1972
1973
  };
1973
1974
 
1974
- var getImage = function getImage(name) {
1975
- if (name === void 0) {
1976
- name = '';
1977
- }
1978
-
1979
- var image = '';
1980
-
1981
- if (!name.trim().length) {
1982
- return image;
1983
- }
1984
-
1985
- return image;
1986
- };
1987
-
1988
- var TTFLOGO = /*#__PURE__*/getImage('logo-ttf.png');
1989
-
1990
1975
  var LogicRunner = function LogicRunner(_ref) {
1991
1976
  var values = _ref.values,
1992
1977
  setStates = _ref.setStates,
@@ -2131,7 +2116,8 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2131
2116
  onLoginSuccess = _ref3$onLoginSuccess === void 0 ? function () {} : _ref3$onLoginSuccess,
2132
2117
  _ref3$isLoggedIn = _ref3.isLoggedIn,
2133
2118
  pIsLoggedIn = _ref3$isLoggedIn === void 0 ? false : _ref3$isLoggedIn,
2134
- fontFamily = _ref3.fontFamily;
2119
+ fontFamily = _ref3.fontFamily,
2120
+ hideLogo = _ref3.hideLogo;
2135
2121
  var themeMui = styles.createTheme({
2136
2122
  typography: {
2137
2123
  allVariants: {
@@ -2234,9 +2220,9 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2234
2220
  setIsLoggedIn(false);
2235
2221
  }, []);
2236
2222
  React.useEffect(function () {
2237
- isWindowDefined && window.document.addEventListener("auth_error", handleAuthErrors);
2223
+ isWindowDefined && window.document.addEventListener('auth_error', handleAuthErrors);
2238
2224
  return function () {
2239
- isWindowDefined && window.document.removeEventListener("auth_error", handleAuthErrors);
2225
+ isWindowDefined && window.document.removeEventListener('auth_error', handleAuthErrors);
2240
2226
  };
2241
2227
  }, [handleAuthErrors]);
2242
2228
  React.useEffect(function () {
@@ -2585,10 +2571,10 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2585
2571
  onLogin();
2586
2572
  setShowModalLogin(true);
2587
2573
  }
2588
- }, "Login"), React__default.createElement("div", {
2574
+ }, "Login"), !hideLogo && React__default.createElement("div", {
2589
2575
  className: "logo-image-container"
2590
2576
  }, React__default.createElement("img", {
2591
- src: TTFLOGO,
2577
+ src: theme === 'dark' ? 'https://www.ticketfairy.com/resources/images/logo-ttf.svg' : 'https://www.ticketfairy.com/resources/images/logo-ttf-black.svg',
2592
2578
  alt: "nodata"
2593
2579
  })))), _map(dataWithUniqueIds, function (item) {
2594
2580
  var label = item.label,
@@ -2960,8 +2946,28 @@ var CheckoutForm = function CheckoutForm(_ref) {
2960
2946
  }, isLoading ? React__default.createElement(CircularProgress, null) : "Pay " + getCurrencySymbolByCurrency(currency) + total))));
2961
2947
  };
2962
2948
 
2963
- var publishableKey = CONFIGS.STRIPE_PUBLISHABLE_KEY || 'pk_test_3Ov1P1oP33A1cxaSjxWE0VjT';
2964
- var stripePromise = /*#__PURE__*/stripeJs.loadStripe(publishableKey);
2949
+ var publishableKey = CONFIGS.STRIPE_PUBLISHABLE_KEY || '';
2950
+
2951
+ var getStripePromise = function getStripePromise(reviewData) {
2952
+ var stripePublishableKey = _get(reviewData, 'payment_method.stripe_publishable_key') || publishableKey;
2953
+
2954
+ var stripeAccount = _get(reviewData, 'payment_method.stripe_connected_account');
2955
+
2956
+ var options = {};
2957
+
2958
+ if (stripeAccount) {
2959
+ options.stripeAccount = stripeAccount;
2960
+ }
2961
+
2962
+ return stripeJs.loadStripe(stripePublishableKey, options);
2963
+ };
2964
+
2965
+ function Loader() {
2966
+ return React__default.createElement("div", {
2967
+ className: "loader-container"
2968
+ }, React__default.createElement(CircularProgress, null));
2969
+ }
2970
+
2965
2971
  var initialOrderValues = {
2966
2972
  product_name: '',
2967
2973
  ticketType: '',
@@ -3015,9 +3021,13 @@ var PaymentContainer = function PaymentContainer(_ref) {
3015
3021
  paymentIsLoading = _useState4[0],
3016
3022
  setPaymentIsLoading = _useState4[1];
3017
3023
 
3018
- var _useState5 = React.useState([]),
3019
- conditions = _useState5[0],
3020
- setConditions = _useState5[1];
3024
+ var _useState5 = React.useState(true),
3025
+ paymentDataIsLoading = _useState5[0],
3026
+ setPaymentDataIsLoading = _useState5[1];
3027
+
3028
+ var _useState6 = React.useState([]),
3029
+ conditions = _useState6[0],
3030
+ setConditions = _useState6[1];
3021
3031
 
3022
3032
  var showFormTitle = Boolean(formTitle);
3023
3033
  var showErrorText = Boolean(errorText);
@@ -3066,11 +3076,16 @@ var PaymentContainer = function PaymentContainer(_ref) {
3066
3076
  onGetPaymentDataError(_context.t0.response);
3067
3077
 
3068
3078
  case 11:
3079
+ _context.prev = 11;
3080
+ setPaymentDataIsLoading(false);
3081
+ return _context.finish(11);
3082
+
3083
+ case 14:
3069
3084
  case "end":
3070
3085
  return _context.stop();
3071
3086
  }
3072
3087
  }
3073
- }, _callee, null, [[0, 7]]);
3088
+ }, _callee, null, [[0, 7, 11, 14]]);
3074
3089
  }))();
3075
3090
  }, [checkoutData]); //just once
3076
3091
 
@@ -3187,7 +3202,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3187
3202
  severity: "error",
3188
3203
  onClose: onErrorClose,
3189
3204
  variant: "filled"
3190
- }, error), React__default.createElement(Container, {
3205
+ }, error), paymentDataIsLoading && React__default.createElement(Loader, null), !paymentDataIsLoading && React__default.createElement(Container, {
3191
3206
  maxWidth: "md"
3192
3207
  }, showFormTitle && React__default.createElement("h1", null, formTitle), React__default.createElement("div", {
3193
3208
  className: "order_info_text"
@@ -3215,9 +3230,9 @@ var PaymentContainer = function PaymentContainer(_ref) {
3215
3230
  }, "Please provide your payment information"), showErrorText && React__default.createElement("p", {
3216
3231
  className: "payment_info__error"
3217
3232
  }, errorText), React__default.createElement("div", null, React__default.createElement(reactStripeJs.Elements, {
3218
- stripe: stripePromise
3233
+ stripe: getStripePromise(reviewData)
3219
3234
  }, React__default.createElement(CheckoutForm, {
3220
- stripe_client_secret: reviewData.payment_method.stripe_client_secret,
3235
+ stripe_client_secret: _get(reviewData, 'payment_method.stripe_client_secret'),
3221
3236
  total: orderData.total,
3222
3237
  onSubmit: handlePaymentMiddleWare,
3223
3238
  error: error,
@@ -3719,7 +3734,8 @@ var generateQuantity = function generateQuantity(n) {
3719
3734
  var WaitingList = function WaitingList(_ref) {
3720
3735
  var _ref$tickets = _ref.tickets,
3721
3736
  tickets = _ref$tickets === void 0 ? {} : _ref$tickets,
3722
- eventId = _ref.eventId;
3737
+ eventId = _ref.eventId,
3738
+ isPromotionsEnabled = _ref.isPromotionsEnabled;
3723
3739
 
3724
3740
  var _useState = React.useState(false),
3725
3741
  showSuccessMessage = _useState[0],
@@ -3794,7 +3810,7 @@ var WaitingList = function WaitingList(_ref) {
3794
3810
  className: "success-message"
3795
3811
  }, React__default.createElement("p", {
3796
3812
  className: "added-success-message"
3797
- }, "You've been added to the waiting list!"), React__default.createElement("p", null, "You'll be notified if tickets become available.")) : React__default.createElement(React__default.Fragment, null, React__default.createElement("p", {
3813
+ }, "You've been added to the waiting list!"), React__default.createElement("p", null, "You'll be notified if tickets become available.")) : React__default.createElement(React__default.Fragment, null, !isPromotionsEnabled && React__default.createElement("p", {
3798
3814
  className: "no-tickets-text"
3799
3815
  }, "No tickets are currently available for this event."), React__default.createElement("h2", null, "WAITING LIST"), React__default.createElement(formik.Formik, {
3800
3816
  initialValues: {
@@ -3867,7 +3883,66 @@ var WaitingList = function WaitingList(_ref) {
3867
3883
  }) : 'ADD TO WAITING LIST')))));
3868
3884
  };
3869
3885
 
3870
- function Loader() {
3886
+ var getImage = function getImage(name) {
3887
+ if (name === void 0) {
3888
+ name = '';
3889
+ }
3890
+
3891
+ var image = '';
3892
+
3893
+ if (!name.trim().length) {
3894
+ return image;
3895
+ }
3896
+
3897
+ return image;
3898
+ };
3899
+
3900
+ var PromoCodeSection = function PromoCodeSection(_ref) {
3901
+ var promoCode = _ref.promoCode,
3902
+ promoCodeIsApplied = _ref.promoCodeIsApplied,
3903
+ showPromoInput = _ref.showPromoInput,
3904
+ isPromotionsEnabled = _ref.isPromotionsEnabled,
3905
+ isAllTicketsSoldOut = _ref.isAllTicketsSoldOut,
3906
+ setPromoCode = _ref.setPromoCode,
3907
+ setPromoCodeUpdated = _ref.setPromoCodeUpdated,
3908
+ setShowPromoInput = _ref.setShowPromoInput;
3909
+ return React__default.createElement("div", null, promoCodeIsApplied ? React__default.createElement("div", {
3910
+ className: "alert-info"
3911
+ }, React__default.createElement(SVG, {
3912
+ src: getImage('done.svg'),
3913
+ preProcessor: function preProcessor(code) {
3914
+ return code.replace(/fill=".*?"/g, 'fill="currentColor"');
3915
+ }
3916
+ }), React__default.createElement("p", null, "PROMO CODE APPLIED SUCCESSFULLY")) : null, showPromoInput && React__default.createElement("div", {
3917
+ className: "promo-code-block"
3918
+ }, React__default.createElement("input", {
3919
+ placeholder: "Promo Code",
3920
+ onChange: function onChange(e) {
3921
+ setPromoCode(e.target.value);
3922
+ },
3923
+ onKeyPress: function onKeyPress(event) {
3924
+ if (event.key === 'Enter') {
3925
+ setPromoCodeUpdated(promoCode);
3926
+ }
3927
+ }
3928
+ }), React__default.createElement(Button, {
3929
+ className: "promo-apply-button",
3930
+ placeholder: "Promo Code",
3931
+ onClick: function onClick() {
3932
+ setPromoCodeUpdated(promoCode);
3933
+ }
3934
+ }, "Apply")), isPromotionsEnabled && !showPromoInput && isAllTicketsSoldOut && React__default.createElement("p", {
3935
+ className: "promo-code-text"
3936
+ }, "Access code needed"), isPromotionsEnabled && !showPromoInput ? React__default.createElement(Button, {
3937
+ className: "promo-code-button",
3938
+ placeholder: "Promo Codes",
3939
+ onClick: function onClick() {
3940
+ setShowPromoInput(true);
3941
+ }
3942
+ }, "Got a promo code? Click here") : null);
3943
+ };
3944
+
3945
+ function Loader$1() {
3871
3946
  return React__default.createElement("div", {
3872
3947
  className: "loader-container"
3873
3948
  }, React__default.createElement(CircularProgress, null));
@@ -3888,7 +3963,9 @@ var TicketsContainer = function TicketsContainer(_ref) {
3888
3963
  _ref$theme = _ref.theme,
3889
3964
  theme = _ref$theme === void 0 ? 'light' : _ref$theme,
3890
3965
  _ref$queryPromoCode = _ref.queryPromoCode,
3891
- queryPromoCode = _ref$queryPromoCode === void 0 ? '' : _ref$queryPromoCode;
3966
+ queryPromoCode = _ref$queryPromoCode === void 0 ? '' : _ref$queryPromoCode,
3967
+ _ref$isPromotionsEnab = _ref.isPromotionsEnabled,
3968
+ isPromotionsEnabled = _ref$isPromotionsEnab === void 0 ? true : _ref$isPromotionsEnab;
3892
3969
 
3893
3970
  var _useState = React.useState({}),
3894
3971
  selectedTickets = _useState[0],
@@ -4091,45 +4168,24 @@ var TicketsContainer = function TicketsContainer(_ref) {
4091
4168
  return React__default.createElement("div", {
4092
4169
  className: "get-tickets-page " + theme,
4093
4170
  style: contentStyle
4094
- }, isLoading ? React__default.createElement(Loader, null) : React__default.createElement(React__default.Fragment, null, showWaitingList ? React__default.createElement(WaitingList, {
4171
+ }, isLoading ? React__default.createElement(Loader$1, null) : React__default.createElement(React__default.Fragment, null, showWaitingList && React__default.createElement(WaitingList, {
4095
4172
  tickets: tickets,
4096
- eventId: eventId
4097
- }) : React__default.createElement("div", null, React__default.createElement(TicketsSection, {
4173
+ eventId: eventId,
4174
+ isPromotionsEnabled: isPromotionsEnabled
4175
+ }), React__default.createElement("div", null, !showWaitingList && React__default.createElement(TicketsSection, {
4098
4176
  ticketsList: tickets,
4099
4177
  selectedTickets: selectedTickets,
4100
4178
  handleTicketSelect: handleTicketSelect,
4101
4179
  promoCodeIsApplied: promoCodeIsApplied
4102
- }), promoCodeIsApplied ? React__default.createElement("div", {
4103
- className: "alert-info"
4104
- }, "Your promo code was applied successfully.") : null, showPromoInput && React__default.createElement("div", {
4105
- className: "promo-code-block"
4106
- }, React__default.createElement("input", {
4107
- placeholder: "Promo Code",
4108
- onChange: function onChange(e) {
4109
- setPromoCode(e.target.value);
4110
- },
4111
- onKeyPress: function onKeyPress(event) {
4112
- if (event.key === 'Enter') {
4113
- setPromoCodeUpdated(promoCode);
4114
- }
4115
- }
4116
- }), React__default.createElement(Button, {
4117
- className: "promo-apply-button",
4118
- placeholder: "Promo Code",
4119
- onClick: function onClick() {
4120
- setPromoCodeUpdated(promoCode);
4121
- }
4122
- }, "Apply")), !showPromoInput && !isAllTicketsSoldOut ? React__default.createElement(Button, {
4123
- className: "promo-code-button",
4124
- placeholder: "Promo Codes",
4125
- onClick: function onClick() {
4126
- setShowPromoInput(true);
4127
- }
4128
- }, "Got a promo code? Click here") : null, React__default.createElement("div", {
4129
- className: "test v1.0.19",
4130
- style: {
4131
- display: 'none'
4132
- }
4180
+ }), React__default.createElement(PromoCodeSection, {
4181
+ promoCode: promoCode,
4182
+ promoCodeIsApplied: promoCodeIsApplied,
4183
+ showPromoInput: showPromoInput,
4184
+ setPromoCode: setPromoCode,
4185
+ setPromoCodeUpdated: setPromoCodeUpdated,
4186
+ setShowPromoInput: setShowPromoInput,
4187
+ isPromotionsEnabled: isPromotionsEnabled,
4188
+ isAllTicketsSoldOut: isAllTicketsSoldOut
4133
4189
  }), !isAllTicketsSoldOut && React__default.createElement(Button, {
4134
4190
  "aria-hidden": true,
4135
4191
  className: "book-button " + (handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0 ? 'disabled' : ''),