tf-checkout-react 1.6.6-beta.33 → 1.6.6-beta.35

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.
@@ -11,6 +11,7 @@ export interface IShareButton {
11
11
  eventActionId?: string;
12
12
  oneTimeAction?: boolean;
13
13
  alreadyApplied?: boolean;
14
+ btnClassName?: string;
14
15
  }
15
16
  export interface IConfirmationLabels {
16
17
  confirmationTitle?: string;
@@ -3,6 +3,7 @@ interface OrderDetailsProps {
3
3
  orderData: any;
4
4
  paymentFieldsData: any[];
5
5
  customMobileText?: string;
6
+ handleCountdownFinish?: () => void;
6
7
  }
7
- export declare const OrderDetails: ({ orderData, paymentFieldsData, customMobileText, }: OrderDetailsProps) => JSX.Element;
8
+ export declare const OrderDetails: ({ orderData, paymentFieldsData, customMobileText, handleCountdownFinish }: OrderDetailsProps) => JSX.Element;
8
9
  export {};
@@ -35,6 +35,10 @@ var Checkbox$1 = _interopDefault(require('@mui/material/Checkbox'));
35
35
  var FormControlLabel = _interopDefault(require('@mui/material/FormControlLabel'));
36
36
  var FormGroup = _interopDefault(require('@mui/material/FormGroup'));
37
37
  var styles$1 = require('@mui/styles');
38
+ var Visibility = _interopDefault(require('@mui/icons-material/Visibility'));
39
+ var VisibilityOff = _interopDefault(require('@mui/icons-material/VisibilityOff'));
40
+ var IconButton = _interopDefault(require('@mui/material/IconButton'));
41
+ var InputAdornment = _interopDefault(require('@mui/material/InputAdornment'));
38
42
  var TextField = _interopDefault(require('@mui/material/TextField'));
39
43
  var _isFunction = _interopDefault(require('lodash/isFunction'));
40
44
  var _isObject = _interopDefault(require('lodash/isObject'));
@@ -2785,7 +2789,7 @@ var Checkbox = function Checkbox(_ref) {
2785
2789
  };
2786
2790
 
2787
2791
  var CustomField = function CustomField(_ref2) {
2788
- var _ref$current;
2792
+ var _ref$current, _customTheme$input;
2789
2793
  var label = _ref2.label,
2790
2794
  _ref2$type = _ref2.type,
2791
2795
  type = _ref2$type === void 0 ? 'text' : _ref2$type,
@@ -2812,15 +2816,39 @@ var CustomField = function CustomField(_ref2) {
2812
2816
  var _useState = React.useState(Boolean(field.value)),
2813
2817
  isShrinked = _useState[0],
2814
2818
  setIsShrinked = _useState[1];
2819
+ var _useState2 = React.useState(false),
2820
+ showPassword = _useState2[0],
2821
+ setShowPassword = _useState2[1];
2815
2822
  var _ref = React.useRef(null);
2816
2823
  var isAutoFilled = (_ref$current = _ref.current) == null ? void 0 : _ref$current.matches(':-webkit-autofill');
2817
2824
  var isSelectField = type === 'select';
2825
+ var isPasswordField = type === 'password';
2818
2826
  var error = _get(errors, field.name);
2819
2827
  var isTouched = Boolean(_get(touched, field.name)) || _includes(field.name, 'holder') && !!error && !!submitCount;
2820
2828
  var customTheme = styles$1.useTheme();
2821
2829
  var inputProps = {
2822
2830
  sx: customTheme == null ? void 0 : customTheme.input
2823
2831
  };
2832
+ var handleClickShowPassword = function handleClickShowPassword() {
2833
+ setShowPassword(!showPassword);
2834
+ };
2835
+ var handleMouseDownPassword = function handleMouseDownPassword(event) {
2836
+ event.preventDefault();
2837
+ };
2838
+ var finalInputProps = isPasswordField ? _extends({}, InputProps, {
2839
+ endAdornment: React__default.createElement(InputAdornment, {
2840
+ position: "end"
2841
+ }, React__default.createElement(IconButton, {
2842
+ "aria-label": "toggle password visibility",
2843
+ onClick: handleClickShowPassword,
2844
+ onMouseDown: handleMouseDownPassword,
2845
+ edge: "end",
2846
+ size: "small",
2847
+ sx: {
2848
+ color: (customTheme == null ? void 0 : (_customTheme$input = customTheme.input) == null ? void 0 : _customTheme$input.color) || 'inherit'
2849
+ }
2850
+ }, showPassword ? React__default.createElement(VisibilityOff, null) : React__default.createElement(Visibility, null)))
2851
+ }) : InputProps;
2824
2852
  React.useEffect(function () {
2825
2853
  if (_isFunction(inputRef)) {
2826
2854
  inputRef(_ref.current);
@@ -2833,7 +2861,7 @@ var CustomField = function CustomField(_ref2) {
2833
2861
  placeholder: "",
2834
2862
  id: field.name,
2835
2863
  label: label,
2836
- type: type,
2864
+ type: isPasswordField ? showPassword ? 'text' : 'password' : type,
2837
2865
  select: isSelectField,
2838
2866
  fullWidth: true,
2839
2867
  error: !!error && isTouched,
@@ -2852,7 +2880,7 @@ var CustomField = function CustomField(_ref2) {
2852
2880
  sx: customTheme == null ? void 0 : customTheme.input,
2853
2881
  shrink: isShrinked || Boolean(field.value) || isAutoFilled
2854
2882
  },
2855
- InputProps: InputProps,
2883
+ InputProps: finalInputProps,
2856
2884
  inputProps: _extends({}, inputProps, pInputProps),
2857
2885
  inputRef: _ref,
2858
2886
  multiline: multiline,
@@ -4873,33 +4901,21 @@ var LoginModal = function LoginModal(_ref) {
4873
4901
  }, React__default.createElement("div", {
4874
4902
  className: "login-modal-body__email"
4875
4903
  }, React__default.createElement(formik.Field, {
4876
- name: 'email',
4904
+ name: "email",
4905
+ label: "Email",
4906
+ type: "email",
4907
+ component: CustomField,
4908
+ theme: "light",
4877
4909
  validate: requiredValidator
4878
- }, function (_ref3) {
4879
- var field = _ref3.field,
4880
- meta = _ref3.meta;
4881
- return React__default.createElement(material.TextField, Object.assign({
4882
- label: 'Email',
4883
- type: 'email',
4884
- fullWidth: true,
4885
- error: !!meta.error && meta.touched,
4886
- helperText: meta.touched && meta.error
4887
- }, field));
4888
4910
  })), React__default.createElement("div", {
4889
4911
  className: "login-modal-body__password"
4890
4912
  }, React__default.createElement(formik.Field, {
4891
- name: 'password',
4913
+ name: "password",
4914
+ label: "Password",
4915
+ type: "password",
4916
+ component: CustomField,
4917
+ theme: "light",
4892
4918
  validate: requiredValidator
4893
- }, function (_ref4) {
4894
- var field = _ref4.field,
4895
- meta = _ref4.meta;
4896
- return React__default.createElement(material.TextField, Object.assign({
4897
- label: "Password",
4898
- type: "password",
4899
- fullWidth: true,
4900
- error: !!meta.error && meta.touched,
4901
- helperText: meta.touched && meta.error
4902
- }, field));
4903
4919
  })), React__default.createElement("div", {
4904
4920
  className: "login-action-button"
4905
4921
  }, React__default.createElement("button", {
@@ -5988,18 +6004,18 @@ var SignupSchema = /*#__PURE__*/Yup.object().shape({
5988
6004
  firstName: /*#__PURE__*/Yup.string().required('Required'),
5989
6005
  lastName: /*#__PURE__*/Yup.string().required('Required'),
5990
6006
  email: /*#__PURE__*/Yup.string().email('Invalid email').required('Required'),
5991
- password: /*#__PURE__*/Yup.string().min(6, 'Password must have 5+ characters').required('Required'),
6007
+ password: /*#__PURE__*/Yup.string().min(8, 'Password must have 8+ characters').required('Required').matches( /*#__PURE__*/new RegExp('^(?=.*[@$!%*#?&])'), 'Password must contain at least one special character'),
5992
6008
  confirmPassword: /*#__PURE__*/Yup.string().required('Required').oneOf([/*#__PURE__*/Yup.ref('password'), null], 'Passwords must match')
5993
6009
  });
5994
6010
  var SignupModal = function SignupModal(_ref) {
5995
6011
  var _ref$onClose = _ref.onClose,
5996
- onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,
6012
+ onClose = _ref$onClose === void 0 ? _identity : _ref$onClose,
5997
6013
  _ref$onLogin = _ref.onLogin,
5998
- onLogin = _ref$onLogin === void 0 ? function () {} : _ref$onLogin,
6014
+ onLogin = _ref$onLogin === void 0 ? _identity : _ref$onLogin,
5999
6015
  _ref$onRegisterSucces = _ref.onRegisterSuccess,
6000
- onRegisterSuccess = _ref$onRegisterSucces === void 0 ? function () {} : _ref$onRegisterSucces,
6016
+ onRegisterSuccess = _ref$onRegisterSucces === void 0 ? _identity : _ref$onRegisterSucces,
6001
6017
  _ref$onRegisterError = _ref.onRegisterError,
6002
- onRegisterError = _ref$onRegisterError === void 0 ? function () {} : _ref$onRegisterError,
6018
+ onRegisterError = _ref$onRegisterError === void 0 ? _identity : _ref$onRegisterError,
6003
6019
  _ref$showPoweredByIma = _ref.showPoweredByImage,
6004
6020
  showPoweredByImage = _ref$showPoweredByIma === void 0 ? false : _ref$showPoweredByIma;
6005
6021
  var _useState = React.useState(false),
@@ -6049,7 +6065,7 @@ var SignupModal = function SignupModal(_ref) {
6049
6065
  return _ref2.apply(this, arguments);
6050
6066
  };
6051
6067
  }();
6052
- var _onClose = loading ? function () {} : onClose;
6068
+ var _onClose = loading ? _identity : onClose;
6053
6069
  return React__default.createElement(material.Modal, {
6054
6070
  open: true,
6055
6071
  onClose: _onClose,
@@ -6463,6 +6479,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
6463
6479
  var hideInstagramField = !collectMandatoryInstagram && !collectOptionalInstagram;
6464
6480
  var collectMandatoryBusinessCategory = configs == null ? void 0 : configs.collect_mandatory_business_category;
6465
6481
  var collectOptionalBusinessCategory = configs == null ? void 0 : configs.collect_optional_business_category;
6482
+ var eventHasAddons = configs == null ? void 0 : configs.has_add_on;
6466
6483
  var hideBusinessCategoryField = !collectMandatoryBusinessCategory && !collectOptionalBusinessCategory;
6467
6484
  var _useState22 = React.useState(),
6468
6485
  pendingVerificationMessage = _useState22[0],
@@ -6651,7 +6668,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
6651
6668
  React.useEffect(function () {
6652
6669
  var fetchCheckoutUpdate = /*#__PURE__*/function () {
6653
6670
  var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
6654
- var checkoutUpdateResponse, checkoutAttributes;
6671
+ var checkoutUpdateResponse, checkoutAttributes, cartPriceBreakdown;
6655
6672
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
6656
6673
  while (1) switch (_context5.prev = _context5.next) {
6657
6674
  case 0:
@@ -6673,7 +6690,15 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
6673
6690
  checkoutUpdateResponse = _context5.sent;
6674
6691
  if (checkoutUpdateResponse.success) {
6675
6692
  checkoutAttributes = checkoutUpdateResponse.data.attributes;
6693
+ cartPriceBreakdown = _get(checkoutAttributes, 'cart_price_breakdown', {});
6694
+ localStorage.setItem('checkoutData', JSON.stringify({
6695
+ hash: '',
6696
+ total: _get(cartPriceBreakdown, 'total', 0)
6697
+ }));
6676
6698
  setCheckoutUpdateData(checkoutAttributes);
6699
+ onCheckoutUpdateSuccess(_extends({
6700
+ expires_at: expirationTime
6701
+ }, cartPriceBreakdown));
6677
6702
  }
6678
6703
  _context5.next = 12;
6679
6704
  break;
@@ -6692,7 +6717,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
6692
6717
  };
6693
6718
  }();
6694
6719
  fetchCheckoutUpdate();
6695
- }, [eventId]);
6720
+ }, [eventId, additionalConfigs == null ? void 0 : additionalConfigs.resale]);
6696
6721
  React.useEffect(function () {
6697
6722
  var collectPaymentData = /*#__PURE__*/function () {
6698
6723
  var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
@@ -6806,6 +6831,11 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
6806
6831
  var removeAdditionalConfigs = React.useCallback(function () {
6807
6832
  localStorage.removeItem('checkoutAdditionalConfigs');
6808
6833
  }, []);
6834
+ React.useEffect(function () {
6835
+ onCheckoutUpdateSuccess(_extends({
6836
+ expires_at: expirationTime
6837
+ }, checkoutData));
6838
+ }, [checkoutData, cartInfoData]);
6809
6839
  var updateCheckoutWithAddOns = React.useCallback( /*#__PURE__*/function () {
6810
6840
  var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(addOns) {
6811
6841
  var mergedAddOns, _checkoutUpdateData, checkoutResponse, checkoutDataObj, errorMessage;
@@ -6847,7 +6877,6 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
6847
6877
  if (checkoutResponse.success) {
6848
6878
  checkoutDataObj = _get(checkoutResponse, 'data.attributes.cart_price_breakdown', {});
6849
6879
  setCheckoutData(checkoutDataObj);
6850
- onCheckoutUpdateSuccess(checkoutResponse.data.attributes);
6851
6880
  setSingleCheckoutAddOns(mergedAddOns);
6852
6881
  }
6853
6882
  _context7.next = 18;
@@ -6936,7 +6965,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
6936
6965
  }), !isCountriesLoading && !isConfigLoading && React__default.createElement(formik.Formik, {
6937
6966
  initialValues: getInitialValues(dataWithUniqueIds, _extends({
6938
6967
  country: initialCountry,
6939
- state: _get(userData, 'stateId', '') || '1',
6968
+ state: _get(userData, 'stateId', '') || _get(userData, 'state', '') || '1',
6940
6969
  brand_opt_in: Boolean(optedInFieldValue),
6941
6970
  ttf_opt_in: ttfOptIn,
6942
6971
  data_capture: {
@@ -7262,12 +7291,12 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
7262
7291
  }, React__default.createElement("img", {
7263
7292
  src: theme === 'dark' ? 'https://www.ticketfairy.com/resources/images/logo-ttf.svg' : 'https://www.ticketfairy.com/resources/images/logo-ttf-black.svg',
7264
7293
  alt: "nodata"
7265
- })))), isSinglePageCheckout && !addOnsIncludedOnInvitation && eventId ? React__default.createElement(SimpleAddonsContainer, Object.assign({}, addonsProps != null ? addonsProps : {}, {
7294
+ })))), isSinglePageCheckout && !addOnsIncludedOnInvitation && eventHasAddons && eventId ? React__default.createElement(SimpleAddonsContainer, Object.assign({}, addonsProps != null ? addonsProps : {}, {
7266
7295
  eventId: eventId,
7267
7296
  addOnDataWithCustomFields: addOnDataWithCustomFields,
7268
7297
  configs: configs,
7269
7298
  onAddOnSelect: onAddOnSelect
7270
- })) : !addOnsIncludedOnInvitation && includeAddons ? React__default.createElement(AddonsContainter, Object.assign({}, addonsProps != null ? addonsProps : {}, {
7299
+ })) : !addOnsIncludedOnInvitation && includeAddons && !isSinglePageCheckout ? React__default.createElement(AddonsContainter, Object.assign({}, addonsProps != null ? addonsProps : {}, {
7271
7300
  addOnDataWithCustomFields: addOnDataWithCustomFields,
7272
7301
  configs: configs,
7273
7302
  onAddOnSelect: onAddOnSelect
@@ -7559,7 +7588,7 @@ var config = {
7559
7588
  },
7560
7589
  twitter: {
7561
7590
  component: reactShare.TwitterShareButton,
7562
- icon: reactShare.TwitterIcon
7591
+ icon: reactShare.XIcon
7563
7592
  },
7564
7593
  linkedin: {
7565
7594
  component: reactShare.LinkedinShareButton,
@@ -7655,12 +7684,15 @@ var SocialComponent = function SocialComponent(_ref) {
7655
7684
  points = _ref.points,
7656
7685
  onAfterShare = _ref.onAfterShare,
7657
7686
  alreadyApplied = _ref.alreadyApplied,
7658
- oneTimeAction = _ref.oneTimeAction;
7687
+ oneTimeAction = _ref.oneTimeAction,
7688
+ _ref$btnClassName = _ref.btnClassName,
7689
+ btnClassName = _ref$btnClassName === void 0 ? '' : _ref$btnClassName;
7659
7690
  var Component = (_config = config$1(platform)) == null ? void 0 : _config.component;
7660
7691
  var Icon = (_config2 = config$1(platform)) == null ? void 0 : _config2.icon;
7661
7692
  var isActionDisabled = alreadyApplied && oneTimeAction;
7662
7693
  return React__default.createElement(React__default.Fragment, null, Component && React__default.createElement(Component, Object.assign({}, shareData, {
7663
- disabled: isActionDisabled
7694
+ disabled: isActionDisabled,
7695
+ className: btnClassName
7664
7696
  }), React__default.createElement("div", {
7665
7697
  onKeyDown: _identity,
7666
7698
  onClick: !isActionDisabled ? onAfterShare : _identity,
@@ -7712,13 +7744,14 @@ var SocialButtons = function SocialButtons(_ref2) {
7712
7744
  url: shareLink
7713
7745
  }
7714
7746
  }), React__default.createElement(SocialComponent, {
7715
- mainLabel: "Tweet to your",
7716
- subLabel: "Followers",
7747
+ mainLabel: "Post on",
7748
+ subLabel: "X",
7717
7749
  platform: "twitter",
7718
7750
  shareData: {
7719
7751
  title: name,
7720
7752
  url: shareLink
7721
- }
7753
+ },
7754
+ btnClassName: "twitter-btn"
7722
7755
  }), React__default.createElement(SocialComponent, {
7723
7756
  mainLabel: "Message friends on",
7724
7757
  subLabel: "Facebook",
@@ -7938,7 +7971,7 @@ var ConfirmationContainer = function ConfirmationContainer(_ref) {
7938
7971
  "aria-hidden": true,
7939
7972
  className: "share-by-link-copy-icon",
7940
7973
  onClick: function onClick() {
7941
- navigator.clipboard.writeText(_get(inputRef, 'current.value') || "");
7974
+ navigator.clipboard.writeText(_get(inputRef, 'current.value') || '');
7942
7975
  setShowCopyModal(true);
7943
7976
  onLinkCopied();
7944
7977
  }
@@ -9089,7 +9122,8 @@ var TicketsContainer = function TicketsContainer(_ref) {
9089
9122
  getTicketsApi();
9090
9123
  fetchPreregisteredData();
9091
9124
  }
9092
- }, [eventId, isTimeSlotEvent]);
9125
+ // eslint-disable-next-line react-hooks/exhaustive-deps
9126
+ }, [eventId]);
9093
9127
  React.useEffect(function () {
9094
9128
  setIsPreregistered(checkUserPreregistration(preregisteredUsers));
9095
9129
  }, [preregisteredUsers]);
@@ -9642,7 +9676,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
9642
9676
  callback: updateTickets,
9643
9677
  disableLeadingZero: disableCountdownLeadingZero,
9644
9678
  isLoggedIn: isLoggedIn
9645
- }) : null, showWaitingList && event.salesStarted && !hideWaitingList && React__default.createElement(WaitingList, {
9679
+ }) : null, (event == null ? void 0 : event.enableWaitingList) && showWaitingList && event.salesStarted && !hideWaitingList && React__default.createElement(WaitingList, {
9646
9680
  tickets: ordinaryTickets,
9647
9681
  eventId: eventId,
9648
9682
  defaultMaxQuantity: event.waitingListMaxQuantity
@@ -11024,16 +11058,16 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
11024
11058
  };
11025
11059
 
11026
11060
  var Schema$1 = /*#__PURE__*/Yup.object().shape({
11027
- password: /*#__PURE__*/Yup.string().min(6, 'Password must have 5+ characters').required('Required'),
11061
+ password: /*#__PURE__*/Yup.string().min(8, 'Password must have 8+ characters').required('Required').matches( /*#__PURE__*/new RegExp('^(?=.*[@$!%*#?&])'), 'Password must contain at least one special character'),
11028
11062
  password_confirmation: /*#__PURE__*/Yup.string().required('Required').oneOf([/*#__PURE__*/Yup.ref('password'), null], 'Passwords must match')
11029
11063
  });
11030
11064
  var ResetPasswordContainer = function ResetPasswordContainer(_ref) {
11031
11065
  var _ref$token = _ref.token,
11032
11066
  tokenProps = _ref$token === void 0 ? '' : _ref$token,
11033
11067
  _ref$onResetPasswordS = _ref.onResetPasswordSuccess,
11034
- onResetPasswordSuccess = _ref$onResetPasswordS === void 0 ? function () {} : _ref$onResetPasswordS,
11068
+ onResetPasswordSuccess = _ref$onResetPasswordS === void 0 ? _identity : _ref$onResetPasswordS,
11035
11069
  _ref$onResetPasswordE = _ref.onResetPasswordError,
11036
- onResetPasswordError = _ref$onResetPasswordE === void 0 ? function () {} : _ref$onResetPasswordE;
11070
+ onResetPasswordError = _ref$onResetPasswordE === void 0 ? _identity : _ref$onResetPasswordE;
11037
11071
  var _useState = React.useState(false),
11038
11072
  loading = _useState[0],
11039
11073
  setLoading = _useState[1];
@@ -14799,14 +14833,40 @@ var PreRegistrationInformations = function PreRegistrationInformations(props) {
14799
14833
  })));
14800
14834
  };
14801
14835
 
14802
- /* eslint-disable @typescript-eslint/no-explicit-any */
14803
- var OrderDetails = function OrderDetails(_ref) {
14804
- var _ref$orderData = _ref.orderData,
14805
- orderData = _ref$orderData === void 0 ? {} : _ref$orderData,
14806
- _ref$paymentFieldsDat = _ref.paymentFieldsData,
14807
- paymentFieldsData = _ref$paymentFieldsDat === void 0 ? [] : _ref$paymentFieldsDat,
14808
- _ref$customMobileText = _ref.customMobileText,
14809
- customMobileText = _ref$customMobileText === void 0 ? 'Your order total' : _ref$customMobileText;
14836
+ var SimpleCountdown = /*#__PURE__*/React.memo(function (_ref) {
14837
+ var expiresAt = _ref.expiresAt,
14838
+ handleCountdownFinish = _ref.handleCountdownFinish;
14839
+ var _renderer = function renderer(_ref2) {
14840
+ var minutes = _ref2.minutes,
14841
+ seconds = _ref2.seconds,
14842
+ completed = _ref2.completed,
14843
+ handleCountdownFinish = _ref2.handleCountdownFinish;
14844
+ if (completed) {
14845
+ handleCountdownFinish();
14846
+ return null;
14847
+ }
14848
+ return React__default.createElement("span", null, showZero(minutes), ":", showZero(seconds));
14849
+ };
14850
+ return React__default.createElement("div", {
14851
+ className: "mobile-order-timer"
14852
+ }, expiresAt && React__default.createElement(Countdown$1, {
14853
+ date: Date.now() + expiresAt * 1000,
14854
+ renderer: function renderer(props) {
14855
+ return _renderer(_extends({}, props, {
14856
+ handleCountdownFinish: handleCountdownFinish
14857
+ }));
14858
+ }
14859
+ }));
14860
+ });
14861
+ var OrderDetails = function OrderDetails(_ref3) {
14862
+ var _ref3$orderData = _ref3.orderData,
14863
+ orderData = _ref3$orderData === void 0 ? {} : _ref3$orderData,
14864
+ _ref3$paymentFieldsDa = _ref3.paymentFieldsData,
14865
+ paymentFieldsData = _ref3$paymentFieldsDa === void 0 ? [] : _ref3$paymentFieldsDa,
14866
+ _ref3$customMobileTex = _ref3.customMobileText,
14867
+ customMobileText = _ref3$customMobileTex === void 0 ? 'Your order total' : _ref3$customMobileTex,
14868
+ _ref3$handleCountdown = _ref3.handleCountdownFinish,
14869
+ handleCountdownFinish = _ref3$handleCountdown === void 0 ? _identity : _ref3$handleCountdown;
14810
14870
  var currency = orderData.currency,
14811
14871
  guest_count = orderData.guest_count;
14812
14872
  var hasTableTypes = Boolean(Number(guest_count));
@@ -14821,6 +14881,26 @@ var OrderDetails = function OrderDetails(_ref) {
14821
14881
  var toggleExpand = function toggleExpand() {
14822
14882
  setIsExpanded(!isExpanded);
14823
14883
  };
14884
+ var defaultItemRenderer = function defaultItemRenderer(item) {
14885
+ return React__default.createElement("div", null, React__default.createElement("div", {
14886
+ key: item.id,
14887
+ className: "add-on-container"
14888
+ }, React__default.createElement("span", null, item.quantity), React__default.createElement("span", {
14889
+ className: "add-on-x"
14890
+ }, ' x '), React__default.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React__default.createElement("span", null, item.name), React__default.createElement("span", null, ' - '), React__default.createElement("span", null, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency) + ' (incl. fees)', CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency)), React__default.createElement("span", {
14891
+ className: "add-on-each"
14892
+ }, ' each')), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React__default.createElement("p", {
14893
+ className: "fees"
14894
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)"));
14895
+ };
14896
+ var defaultTableRenderer = function defaultTableRenderer(item) {
14897
+ return React__default.createElement("div", null, React__default.createElement("div", {
14898
+ key: item.id,
14899
+ className: "table-type-container"
14900
+ }, React__default.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React__default.createElement("span", null, item.name), React__default.createElement("span", null, ' - '), React__default.createElement("span", null, "Guest Count", ': '), React__default.createElement("span", null, item.guestCount)), React__default.createElement("div", null, React__default.createElement("span", null, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency) + ' (incl. fees)', CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency)), React__default.createElement("br", null), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React__default.createElement("p", {
14901
+ className: "fees"
14902
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)")));
14903
+ };
14824
14904
  return React__default.createElement("div", {
14825
14905
  className: "payment_page payment_page_single"
14826
14906
  }, React__default.createElement("div", {
@@ -14834,11 +14914,14 @@ var OrderDetails = function OrderDetails(_ref) {
14834
14914
  className: "mobile-order-info-container order-info-container-left " + (isExpanded ? 'open' : '')
14835
14915
  }, React__default.createElement("div", {
14836
14916
  className: "mobile-order-text"
14837
- }, customMobileText)), !isExpanded && React__default.createElement("div", {
14917
+ }, customMobileText)), React__default.createElement("div", {
14838
14918
  className: "mobile-order-info-container order-info-container-right"
14839
- }, React__default.createElement("div", {
14919
+ }, !isExpanded && React__default.createElement("div", {
14840
14920
  className: "mobile-order-total"
14841
- }, totalValue))))), React__default.createElement("div", {
14921
+ }, totalValue), (orderData == null ? void 0 : orderData.expires_at) && React__default.createElement(SimpleCountdown, {
14922
+ expiresAt: orderData == null ? void 0 : orderData.expires_at,
14923
+ handleCountdownFinish: handleCountdownFinish
14924
+ }))))), React__default.createElement("div", {
14842
14925
  className: "order_info_section " + (isExpanded ? 'expanded' : 'collapsed'),
14843
14926
  style: {
14844
14927
  display: hasTableTypes ? 'block' : 'grid'
@@ -14901,16 +14984,7 @@ var OrderDetails = function OrderDetails(_ref) {
14901
14984
  }, label), React__default.createElement("div", {
14902
14985
  className: className + " order_info_text"
14903
14986
  }, typeof value === 'string' || typeof value === 'number' ? normalizer(value, currency, orderData) : _map(value, function (item) {
14904
- return React__default.createElement("div", null, React__default.createElement("div", {
14905
- key: item.id,
14906
- className: "add-on-container"
14907
- }, React__default.createElement("span", null, item.quantity), React__default.createElement("span", {
14908
- className: "add-on-x"
14909
- }, ' x '), React__default.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React__default.createElement("span", null, item.name), React__default.createElement("span", null, ' - '), React__default.createElement("span", null, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency) + ' (incl. fees)', CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency)), React__default.createElement("span", {
14910
- className: "add-on-each"
14911
- }, ' each')), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React__default.createElement("p", {
14912
- className: "fees"
14913
- }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)"));
14987
+ return item.isTable ? defaultTableRenderer(item) : defaultItemRenderer(item);
14914
14988
  })));
14915
14989
  })));
14916
14990
  };