tf-checkout-react 1.0.102 → 1.0.105

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 (80) hide show
  1. package/dist/components/common/RedirectModal.d.ts +7 -0
  2. package/dist/components/ticketsContainer/TicketsSection.d.ts +2 -1
  3. package/dist/components/ticketsContainer/index.d.ts +2 -1
  4. package/dist/images/done.svg +3 -3
  5. package/dist/index.d.ts +1 -0
  6. package/dist/tf-checkout-react.cjs.development.js +71 -25
  7. package/dist/tf-checkout-react.cjs.development.js.map +1 -1
  8. package/dist/tf-checkout-react.cjs.production.min.js +1 -1
  9. package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
  10. package/dist/tf-checkout-react.esm.js +71 -26
  11. package/dist/tf-checkout-react.esm.js.map +1 -1
  12. package/package.json +89 -89
  13. package/src/.d.ts +2 -2
  14. package/src/api/index.ts +293 -278
  15. package/src/assets/images/done.svg +3 -3
  16. package/src/components/billing-info-container/index.tsx +796 -796
  17. package/src/components/billing-info-container/style.css +105 -105
  18. package/src/components/billing-info-container/utils.ts +224 -224
  19. package/src/components/common/CheckboxField.tsx +41 -41
  20. package/src/components/common/CustomField.tsx +84 -84
  21. package/src/components/common/FormikPhoneNumberField.tsx +51 -51
  22. package/src/components/common/Loader.tsx +9 -9
  23. package/src/components/common/RadioField.tsx +35 -35
  24. package/src/components/common/RedirectModal.tsx +43 -0
  25. package/src/components/common/SelectField.tsx +80 -80
  26. package/src/components/common/SnackbarAlert.tsx +53 -53
  27. package/src/components/common/index.tsx +4 -4
  28. package/src/components/confirmModal/index.tsx +51 -51
  29. package/src/components/confirmModal/style.css +21 -21
  30. package/src/components/confirmationContainer/config.ts +72 -72
  31. package/src/components/confirmationContainer/index.tsx +197 -197
  32. package/src/components/confirmationContainer/social-buttons.tsx +94 -94
  33. package/src/components/confirmationContainer/style.css +202 -202
  34. package/src/components/countdown/index.tsx +89 -89
  35. package/src/components/countdown/style.css +9 -9
  36. package/src/components/index.ts +7 -7
  37. package/src/components/loginModal/index.tsx +209 -209
  38. package/src/components/loginModal/style.css +71 -71
  39. package/src/components/myTicketsContainer/index.tsx +196 -196
  40. package/src/components/myTicketsContainer/row.tsx +41 -41
  41. package/src/components/myTicketsContainer/style.css +39 -39
  42. package/src/components/myTicketsContainer/tableConfig.tsx +34 -34
  43. package/src/components/orderDetailsContainer/index.tsx +249 -249
  44. package/src/components/orderDetailsContainer/style.css +72 -72
  45. package/src/components/orderDetailsContainer/ticketsTable.tsx +124 -124
  46. package/src/components/paymentContainer/index.tsx +284 -284
  47. package/src/components/registerModal/index.tsx +190 -190
  48. package/src/components/stripePayment/index.tsx +253 -253
  49. package/src/components/stripePayment/style.css +59 -59
  50. package/src/components/ticketResale/index.tsx +56 -56
  51. package/src/components/ticketResaleModal/index.tsx +210 -210
  52. package/src/components/ticketResaleModal/style.css +28 -28
  53. package/src/components/ticketsContainer/PromoCodeSection.tsx +99 -99
  54. package/src/components/ticketsContainer/ReferralLogic.tsx +33 -33
  55. package/src/components/ticketsContainer/TicketRow.tsx +83 -83
  56. package/src/components/ticketsContainer/TicketsSection.tsx +85 -81
  57. package/src/components/ticketsContainer/index.tsx +430 -430
  58. package/src/components/ticketsContainer/style.css +181 -181
  59. package/src/components/ticketsContainer/utils.ts +11 -11
  60. package/src/components/timerWidget/index.tsx +70 -70
  61. package/src/components/timerWidget/style.css +26 -26
  62. package/src/components/waitingList/index.tsx +178 -178
  63. package/src/components/waitingList/style.css +26 -26
  64. package/src/env.ts +20 -20
  65. package/src/index.ts +14 -13
  66. package/src/normalizers/index.ts +45 -45
  67. package/src/types/billing-info-data.ts +37 -37
  68. package/src/types/payment-field.ts +7 -7
  69. package/src/types/referral-promotion.ts +7 -7
  70. package/src/utils/createCheckoutDataBodyWithDefaultHolder.ts +59 -59
  71. package/src/utils/downloadPDF.tsx +30 -30
  72. package/src/utils/formikErrorFocus.ts +24 -24
  73. package/src/utils/getImage.ts +14 -14
  74. package/src/utils/getQueryVariable.ts +13 -13
  75. package/src/utils/index.ts +5 -5
  76. package/src/utils/setConfigs.ts +26 -26
  77. package/src/utils/showZero.tsx +10 -10
  78. package/src/validators/index.ts +20 -20
  79. package/src/.DS_Store +0 -0
  80. package/src/components/.DS_Store +0 -0
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ interface IRedirectModal {
3
+ message: string;
4
+ onClickOk: () => void;
5
+ }
6
+ export declare const RedirectModal: ({ message, onClickOk, }: IRedirectModal) => JSX.Element;
7
+ export {};
@@ -5,6 +5,7 @@ interface ITicketsSectionProps {
5
5
  selectedTickets: any;
6
6
  handleTicketSelect: any;
7
7
  promoCodeIsApplied: boolean;
8
+ sortBySoldOut: boolean;
8
9
  }
9
- export declare const TicketsSection: ({ ticketsList, selectedTickets, handleTicketSelect, promoCodeIsApplied, }: ITicketsSectionProps) => JSX.Element;
10
+ export declare const TicketsSection: ({ ticketsList, selectedTickets, handleTicketSelect, promoCodeIsApplied, sortBySoldOut, }: ITicketsSectionProps) => JSX.Element;
10
11
  export {};
@@ -31,6 +31,7 @@ export interface IGetTickets {
31
31
  hideSessionButtons?: boolean;
32
32
  hideWaitingList?: boolean;
33
33
  isButtonScrollable?: boolean;
34
+ sortBySoldOut?: boolean;
34
35
  }
35
36
  export interface ITicket {
36
37
  id: string | number;
@@ -39,5 +40,5 @@ export interface ITicket {
39
40
  export interface ISelectedTickets {
40
41
  [key: string]: string | number;
41
42
  }
42
- export declare const TicketsContainer: ({ onLoginSuccess, getTicketsLabel, eventId, onAddToCartSuccess, contentStyle, onAddToCartError, onGetTicketsSuccess, onGetTicketsError, theme, queryPromoCode, isPromotionsEnabled, themeOptions, isAccessCodeEnabled, hideSessionButtons, hideWaitingList, isButtonScrollable }: IGetTickets) => JSX.Element;
43
+ export declare const TicketsContainer: ({ onLoginSuccess, getTicketsLabel, eventId, onAddToCartSuccess, contentStyle, onAddToCartError, onGetTicketsSuccess, onGetTicketsError, theme, queryPromoCode, isPromotionsEnabled, themeOptions, isAccessCodeEnabled, hideSessionButtons, hideWaitingList, isButtonScrollable, sortBySoldOut, }: IGetTickets) => JSX.Element;
43
44
  export {};
@@ -1,3 +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>
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>
package/dist/index.d.ts CHANGED
@@ -8,3 +8,4 @@ export { MyTicketsContainer } from './components/myTicketsContainer';
8
8
  export { OrderDetailsContainer } from './components/orderDetailsContainer';
9
9
  export { setConfigs } from './utils/setConfigs';
10
10
  export { TicketResaleContainer } from './components';
11
+ export { RedirectModal } from './components/common/RedirectModal';
@@ -1121,6 +1121,13 @@ var publicRequest = /*#__PURE__*/axios.create({
1121
1121
  headers: ttfHeaders
1122
1122
  });
1123
1123
  publicRequest.interceptors.response.use(function (response) {
1124
+ var authGuestToken = _get(response, 'headers.authorization-guest');
1125
+
1126
+ if (isWindowDefined && authGuestToken) {
1127
+ window.localStorage.setItem('auth_guest_token', authGuestToken);
1128
+ publicRequest.setGuestToken(authGuestToken);
1129
+ }
1130
+
1124
1131
  return response;
1125
1132
  }, function (error) {
1126
1133
  var _error$response;
@@ -1129,7 +1136,6 @@ publicRequest.interceptors.response.use(function (response) {
1129
1136
  if (isWindowDefined) {
1130
1137
  var _error$response2, _error$response2$data;
1131
1138
 
1132
- window.localStorage.removeItem('auth_guest_token');
1133
1139
  window.localStorage.removeItem('user_data');
1134
1140
  window.localStorage.removeItem('access_token');
1135
1141
  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 +1146,13 @@ publicRequest.interceptors.response.use(function (response) {
1140
1146
  }
1141
1147
  }
1142
1148
 
1149
+ var authGuestToken = _get(error, 'response.headers.authorization-guest');
1150
+
1151
+ if (isWindowDefined && authGuestToken) {
1152
+ window.localStorage.setItem('auth_guest_token', authGuestToken);
1153
+ publicRequest.setGuestToken(authGuestToken);
1154
+ }
1155
+
1143
1156
  return Promise.reject(error);
1144
1157
  });
1145
1158
  publicRequest.interceptors.request.use(function (config) {
@@ -4144,10 +4157,9 @@ var TicketsSection = function TicketsSection(_ref) {
4144
4157
  var ticketsList = _ref.ticketsList,
4145
4158
  selectedTickets = _ref.selectedTickets,
4146
4159
  handleTicketSelect = _ref.handleTicketSelect,
4147
- promoCodeIsApplied = _ref.promoCodeIsApplied;
4148
-
4149
- var sortedTicketsList = _sortBy(ticketsList, 'sortOrder');
4150
-
4160
+ promoCodeIsApplied = _ref.promoCodeIsApplied,
4161
+ sortBySoldOut = _ref.sortBySoldOut;
4162
+ var sortedTicketsList = sortBySoldOut ? _sortBy(_sortBy(ticketsList, 'sortOrder'), 'soldOut') : _sortBy(ticketsList, 'sortOrder');
4151
4163
  return React__default.createElement(React__default.Fragment, null, sortedTicketsList.map(function (ticket, i, arr) {
4152
4164
  var isSoldOut = ticket.sold_out || !ticket.displayTicket || ticket.soldOut;
4153
4165
 
@@ -4575,7 +4587,9 @@ var TicketsContainer = function TicketsContainer(_ref) {
4575
4587
  _ref$hideWaitingList = _ref.hideWaitingList,
4576
4588
  hideWaitingList = _ref$hideWaitingList === void 0 ? false : _ref$hideWaitingList,
4577
4589
  _ref$isButtonScrollab = _ref.isButtonScrollable,
4578
- isButtonScrollable = _ref$isButtonScrollab === void 0 ? false : _ref$isButtonScrollab;
4590
+ isButtonScrollable = _ref$isButtonScrollab === void 0 ? false : _ref$isButtonScrollab,
4591
+ _ref$sortBySoldOut = _ref.sortBySoldOut,
4592
+ sortBySoldOut = _ref$sortBySoldOut === void 0 ? false : _ref$sortBySoldOut;
4579
4593
 
4580
4594
  var _useState = React.useState({}),
4581
4595
  selectedTickets = _useState[0],
@@ -4603,7 +4617,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4603
4617
  showWaitingList = _useState6[0],
4604
4618
  setShowWaitingList = _useState6[1];
4605
4619
 
4606
- var _useState7 = React.useState(false),
4620
+ var _useState7 = React.useState(true),
4607
4621
  isLoading = _useState7[0],
4608
4622
  setIsLoading = _useState7[1];
4609
4623
 
@@ -4719,7 +4733,6 @@ var TicketsContainer = function TicketsContainer(_ref) {
4719
4733
  eventResponse = _context2.sent;
4720
4734
 
4721
4735
  if (response.data.success) {
4722
- setCustomHeader(response);
4723
4736
  attributes = _get(response, 'data.data.attributes');
4724
4737
  setPromoCodeIsApplied(attributes.ValidPromoCode);
4725
4738
  setTickets(_get(attributes, 'tickets'));
@@ -4815,11 +4828,10 @@ var TicketsContainer = function TicketsContainer(_ref) {
4815
4828
  result = _context.sent;
4816
4829
 
4817
4830
  if (!(result.status === 200)) {
4818
- _context.next = 27;
4831
+ _context.next = 26;
4819
4832
  break;
4820
4833
  }
4821
4834
 
4822
- setCustomHeader(result);
4823
4835
  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;
4824
4836
  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;
4825
4837
  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;
@@ -4827,7 +4839,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4827
4839
  hash = '';
4828
4840
 
4829
4841
  if (!skipBillingPage) {
4830
- _context.next = 26;
4842
+ _context.next = 25;
4831
4843
  break;
4832
4844
  }
4833
4845
 
@@ -4836,14 +4848,14 @@ var TicketsContainer = function TicketsContainer(_ref) {
4836
4848
  userData = _isWindowDefined && window.localStorage.getItem('user_data') ? JSON.parse(window.localStorage.getItem('user_data') || '') : {};
4837
4849
  access_token = _isWindowDefined && window.localStorage.getItem('access_token') ? window.localStorage.getItem('access_token') || '' : '';
4838
4850
  checkoutBody = createCheckoutDataBodyWithDefaultHolder(ticketQuantity, userData);
4839
- _context.next = 24;
4851
+ _context.next = 23;
4840
4852
  return postOnCheckout(checkoutBody, access_token);
4841
4853
 
4842
- case 24:
4854
+ case 23:
4843
4855
  checkoutResult = _context.sent;
4844
4856
  hash = _get(checkoutResult, 'data.data.attributes.hash');
4845
4857
 
4846
- case 26:
4858
+ case 25:
4847
4859
  onAddToCartSuccess({
4848
4860
  skip_billing_page: skipBillingPage,
4849
4861
  names_required: nameIsRequired,
@@ -4853,29 +4865,29 @@ var TicketsContainer = function TicketsContainer(_ref) {
4853
4865
  hash: hash
4854
4866
  });
4855
4867
 
4856
- case 27:
4857
- _context.next = 32;
4868
+ case 26:
4869
+ _context.next = 31;
4858
4870
  break;
4859
4871
 
4860
- case 29:
4861
- _context.prev = 29;
4872
+ case 28:
4873
+ _context.prev = 28;
4862
4874
  _context.t0 = _context["catch"](6);
4863
4875
 
4864
4876
  if (axios.isAxiosError(_context.t0)) {
4865
4877
  onAddToCartError(_context.t0);
4866
4878
  }
4867
4879
 
4868
- case 32:
4869
- _context.prev = 32;
4880
+ case 31:
4881
+ _context.prev = 31;
4870
4882
  setHandleBookIsLoading(false);
4871
- return _context.finish(32);
4883
+ return _context.finish(31);
4872
4884
 
4873
- case 35:
4885
+ case 34:
4874
4886
  case "end":
4875
4887
  return _context.stop();
4876
4888
  }
4877
4889
  }
4878
- }, _callee, null, [[6, 29, 32, 35]]);
4890
+ }, _callee, null, [[6, 28, 31, 34]]);
4879
4891
  }));
4880
4892
 
4881
4893
  return function handleBook() {
@@ -4926,7 +4938,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4926
4938
  var bookButtonIsDisabled = handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0;
4927
4939
  return React__default.createElement(privateTheming.ThemeProvider, {
4928
4940
  theme: themeMui
4929
- }, React__default.createElement(ReferralLogic, {
4941
+ }, !isLoading && React__default.createElement(ReferralLogic, {
4930
4942
  eventId: eventId
4931
4943
  }), React__default.createElement("div", {
4932
4944
  className: "get-tickets-page " + theme,
@@ -4937,7 +4949,8 @@ var TicketsContainer = function TicketsContainer(_ref) {
4937
4949
  ticketsList: tickets,
4938
4950
  selectedTickets: selectedTickets,
4939
4951
  handleTicketSelect: handleTicketSelect,
4940
- promoCodeIsApplied: promoCodeIsApplied
4952
+ promoCodeIsApplied: promoCodeIsApplied,
4953
+ sortBySoldOut: sortBySoldOut
4941
4954
  }), event != null && event.salesEnded ? React__default.createElement("p", {
4942
4955
  className: 'event-closed-message'
4943
4956
  }, "Sales for this event are closed.") : !(event != null && event.salesStarted) && event != null && event.salesStart ? React__default.createElement(Countdown, {
@@ -5829,12 +5842,45 @@ var TicketResaleContainer = function TicketResaleContainer(_ref) {
5829
5842
  }, React__default.createElement("h3", null, error)));
5830
5843
  };
5831
5844
 
5845
+ var style$3 = {
5846
+ position: 'absolute',
5847
+ top: '10%',
5848
+ left: '50%',
5849
+ transform: 'translate(-50%, -50%)',
5850
+ minWidth: 480,
5851
+ backgroundColor: '#e3e3e3',
5852
+ border: '1px solid white',
5853
+ outline: 'none',
5854
+ padding: '14px',
5855
+ maxHeight: '85vh',
5856
+ overflow: 'auto'
5857
+ };
5858
+ var RedirectModal = function RedirectModal(_ref) {
5859
+ var _ref$message = _ref.message,
5860
+ message = _ref$message === void 0 ? 'Your cart has expired. Please click on "OK" to return to the ticket selection page.' : _ref$message,
5861
+ _ref$onClickOk = _ref.onClickOk,
5862
+ onClickOk = _ref$onClickOk === void 0 ? function () {} : _ref$onClickOk;
5863
+ return React__default.createElement(Modal, {
5864
+ open: true,
5865
+ "aria-labelledby": "modal-modal-title",
5866
+ "aria-describedby": "modal-modal-description",
5867
+ className: "redirect-modal"
5868
+ }, React__default.createElement(Box, {
5869
+ style: style$3
5870
+ }, React__default.createElement("p", null, message), React__default.createElement("div", {
5871
+ className: "footer"
5872
+ }, React__default.createElement("button", {
5873
+ onClick: onClickOk
5874
+ }, "OK"))));
5875
+ };
5876
+
5832
5877
  exports.BillingInfoContainer = BillingInfoContainer;
5833
5878
  exports.ConfirmationContainer = ConfirmationContainer;
5834
5879
  exports.LoginModal = LoginModal;
5835
5880
  exports.MyTicketsContainer = MyTicketsContainer;
5836
5881
  exports.OrderDetailsContainer = OrderDetailsContainer;
5837
5882
  exports.PaymentContainer = PaymentContainer;
5883
+ exports.RedirectModal = RedirectModal;
5838
5884
  exports.TicketResaleContainer = TicketResaleContainer;
5839
5885
  exports.TicketsContainer = TicketsContainer;
5840
5886
  exports.createFixedFloatNormalizer = createFixedFloatNormalizer;