tf-checkout-react 1.3.34 → 1.3.36

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.
@@ -17,5 +17,5 @@ export interface ISelectField {
17
17
  interface IOtherProps {
18
18
  [key: string]: any;
19
19
  }
20
- export declare const SelectField: ({ label, type, field, selectOptions, form: { touched, errors, setFieldValue }, theme, onChange, }: ISelectField & IOtherProps) => JSX.Element;
20
+ export declare const NativeSelectField: ({ label, type, field, selectOptions, form: { touched, errors, setFieldValue }, theme, onChange, }: ISelectField & IOtherProps) => JSX.Element;
21
21
  export {};
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { SelectChangeEvent } from '@mui/material/Select';
3
+ import { FieldInputProps, FormikProps } from 'formik';
4
+ interface ISelectOption {
5
+ id: string | number;
6
+ name: string | number;
7
+ value: string | number;
8
+ }
9
+ interface ISelectField {
10
+ field: FieldInputProps<any>;
11
+ form: FormikProps<any>;
12
+ options: ISelectOption[];
13
+ label?: string;
14
+ isMultiple?: boolean;
15
+ onChange?: (e: SelectChangeEvent<string[]>) => void;
16
+ }
17
+ declare function SelectField({ label, isMultiple, field, form: { errors, setFieldValue }, options, onChange, }: ISelectField): JSX.Element;
18
+ export { SelectField };
@@ -3,5 +3,6 @@ export { CustomField } from './CustomField';
3
3
  export { FormikPhoneNumberField } from './FormikPhoneNumberField';
4
4
  export { PhoneNumberField } from './PhoneNumberField';
5
5
  export { Loader } from './Loader';
6
- export { SelectField } from './SelectField';
6
+ export { NativeSelectField } from './NativeSelectFeild';
7
7
  export { RadioGroupField } from './RadioGroupField';
8
+ export { SelectField } from './SelectField';
@@ -1,6 +1,7 @@
1
1
  import './style.css';
2
2
  import { ReactNode } from 'react';
3
3
  interface ITicketsSectionProps {
4
+ event: any;
4
5
  ticketsList: any;
5
6
  selectedTickets: any;
6
7
  handleTicketSelect: any;
@@ -8,5 +9,5 @@ interface ITicketsSectionProps {
8
9
  ticketsHeaderComponent?: ReactNode;
9
10
  hideTicketsHeader: boolean;
10
11
  }
11
- export declare const TicketsSection: ({ ticketsList, selectedTickets, handleTicketSelect, sortBySoldOut, ticketsHeaderComponent, hideTicketsHeader }: ITicketsSectionProps) => JSX.Element;
12
+ export declare const TicketsSection: ({ event, ticketsList, selectedTickets, handleTicketSelect, sortBySoldOut, ticketsHeaderComponent, hideTicketsHeader, }: ITicketsSectionProps) => JSX.Element;
12
13
  export {};
@@ -40,6 +40,9 @@ var FormHelperText = _interopDefault(require('@mui/material/FormHelperText'));
40
40
  var FormLabel = _interopDefault(require('@mui/material/FormLabel'));
41
41
  var Radio = _interopDefault(require('@mui/material/Radio'));
42
42
  var RadioGroup = _interopDefault(require('@mui/material/RadioGroup'));
43
+ var ListItemText = _interopDefault(require('@mui/material/ListItemText'));
44
+ var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
45
+ var OutlinedInput = _interopDefault(require('@mui/material/OutlinedInput'));
43
46
  var Yup = require('yup');
44
47
  var Box = _interopDefault(require('@mui/material/Box'));
45
48
  var Modal = _interopDefault(require('@mui/material/Modal'));
@@ -59,7 +62,6 @@ var _some = _interopDefault(require('lodash/some'));
59
62
  var Button$1 = _interopDefault(require('react-bootstrap/Button'));
60
63
  var moment = _interopDefault(require('moment-timezone'));
61
64
  var _sortBy = _interopDefault(require('lodash/sortBy'));
62
- var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
63
65
  var Autocomplete = _interopDefault(require('@mui/material/Autocomplete'));
64
66
  var Paper = _interopDefault(require('@mui/material/Paper'));
65
67
  var Table = _interopDefault(require('@mui/material/Table'));
@@ -1620,10 +1622,24 @@ var combineValidators = function combineValidators() {
1620
1622
  }
1621
1623
  };
1622
1624
  };
1625
+ function isFalsy(item) {
1626
+ try {
1627
+ if (!item || // handles most, like false, 0, null, etc
1628
+ typeof item == 'object' && Object.keys(item).length === 0 && // for empty objects, like {}, []
1629
+ !(typeof item.addEventListener == 'function') // omit webpage elements
1630
+ ) {
1631
+ return true;
1632
+ }
1633
+ } catch (err) {
1634
+ return true;
1635
+ }
1636
+
1637
+ return false;
1638
+ }
1623
1639
  var requiredValidator = function requiredValidator(value, message) {
1624
1640
  var errorMessage = '';
1625
1641
 
1626
- if (!value) {
1642
+ if (isFalsy(value)) {
1627
1643
  errorMessage = message || 'Required';
1628
1644
  }
1629
1645
 
@@ -1951,7 +1967,7 @@ function Loader() {
1951
1967
  }, React__default.createElement(CircularProgress, null));
1952
1968
  }
1953
1969
 
1954
- var SelectField = function SelectField(_ref) {
1970
+ var NativeSelectField = function NativeSelectField(_ref) {
1955
1971
  var label = _ref.label,
1956
1972
  _ref$type = _ref.type,
1957
1973
  type = _ref$type === void 0 ? 'text' : _ref$type,
@@ -2052,6 +2068,62 @@ var RadioGroupField = function RadioGroupField(_ref) {
2052
2068
  })));
2053
2069
  };
2054
2070
 
2071
+ function SelectField(_ref) {
2072
+ var label = _ref.label,
2073
+ isMultiple = _ref.isMultiple,
2074
+ field = _ref.field,
2075
+ _ref$form = _ref.form,
2076
+ errors = _ref$form.errors,
2077
+ setFieldValue = _ref$form.setFieldValue,
2078
+ options = _ref.options,
2079
+ _ref$onChange = _ref.onChange,
2080
+ onChange = _ref$onChange === void 0 ? _identity : _ref$onChange;
2081
+ var name = field.name,
2082
+ value = field.value;
2083
+ var selectId = "select-field-" + name;
2084
+
2085
+ var error = _get(errors, name);
2086
+
2087
+ var handleChange = function handleChange(event) {
2088
+ var value = event.target.value;
2089
+ setFieldValue(name, value);
2090
+ onChange(event);
2091
+ };
2092
+
2093
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.FormControl, {
2094
+ fullWidth: true,
2095
+ error: Boolean(error)
2096
+ }, label && React__default.createElement(material.InputLabel, {
2097
+ id: selectId
2098
+ }, label), React__default.createElement(Select, {
2099
+ id: name,
2100
+ labelId: selectId,
2101
+ multiple: isMultiple,
2102
+ value: value,
2103
+ onChange: handleChange,
2104
+ input: React__default.createElement(OutlinedInput, {
2105
+ label: label
2106
+ }),
2107
+ renderValue: function renderValue(selected) {
2108
+ return isMultiple ? selected.join(', ') : selected;
2109
+ },
2110
+ sx: {
2111
+ textAlign: 'start'
2112
+ }
2113
+ }, options.map(function (option) {
2114
+ return React__default.createElement(MenuItem, {
2115
+ key: option.name,
2116
+ value: option.value
2117
+ }, isMultiple && React__default.createElement(Checkbox, {
2118
+ checked: value.indexOf(option.value) > -1
2119
+ }), React__default.createElement(ListItemText, {
2120
+ primary: option.name
2121
+ }));
2122
+ })), error ? React__default.createElement(FormHelperText, {
2123
+ error: true
2124
+ }, error) : null));
2125
+ }
2126
+
2055
2127
  var SnackbarAlert = function SnackbarAlert(_ref) {
2056
2128
  var isOpen = _ref.isOpen,
2057
2129
  message = _ref.message,
@@ -3269,13 +3341,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
3269
3341
  case 3:
3270
3342
  res = _context2.sent;
3271
3343
  setCustomHeader(res);
3272
- setCountries(_map(_get(res, 'data.data'), function (item) {
3273
- return {
3274
- label: item.name,
3275
- value: item.id,
3276
- code: item.code
3277
- };
3278
- }));
3344
+ setCountries(_get(res, 'data.data'));
3279
3345
  setIsCountriesLoading(false);
3280
3346
  onGetCountriesSuccess(res.data);
3281
3347
  _context2.next = 14;
@@ -3504,6 +3570,10 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
3504
3570
  }
3505
3571
  }
3506
3572
 
3573
+ var selectedCountry = _find(countries, function (item) {
3574
+ return item.code.toLowerCase() === defaultCountry;
3575
+ }) || {};
3576
+ var initialCountry = selectedCountry.id || _get(userData, 'country', '') || '1';
3507
3577
  return React__default.createElement(styles.ThemeProvider, {
3508
3578
  theme: themeMui
3509
3579
  }, (loading || isCountriesLoading) && React__default.createElement(Backdrop, {
@@ -3520,9 +3590,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
3520
3590
  onCountdownFinish: onCountdownFinish
3521
3591
  }), !isCountriesLoading && React__default.createElement(formik.Formik, {
3522
3592
  initialValues: getInitialValues(dataWithUniqueIds, _extends({
3523
- country: (_find(countries, function (item) {
3524
- return item.code.toLowerCase() === defaultCountry;
3525
- }) || {}).value || _get(userData, 'country', '') || '1',
3593
+ country: initialCountry,
3526
3594
  state: _get(userData, 'state', '') || '1',
3527
3595
  brand_opt_in: optedInFieldValue,
3528
3596
  ttf_opt_in: ttfOptIn
@@ -3819,8 +3887,13 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
3819
3887
  validate: getValidateFunctions(element, states, props.values, props.errors),
3820
3888
  setFieldValue: props.setFieldValue,
3821
3889
  onBlur: props.handleBlur,
3822
- component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? SelectField : element.type === 'phone' ? PhoneNumberField : element.type === 'date' ? DatePickerField : element.type === 'radio' ? RadioGroupField : CustomField,
3823
- selectOptions: element.name === 'country' ? countries : element.name === 'state' ? states : [],
3890
+ component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? NativeSelectField : element.type === 'phone' ? PhoneNumberField : element.type === 'date' ? DatePickerField : element.type === 'radio' ? RadioGroupField : element.type === 'select_multi' ? SelectField : CustomField,
3891
+ selectOptions: element.name === 'country' ? _map(countries, function (item) {
3892
+ return {
3893
+ value: item.id,
3894
+ label: item.name
3895
+ };
3896
+ }) : element.name === 'state' ? states : [],
3824
3897
  radios: element.radios,
3825
3898
  theme: theme,
3826
3899
  disableDropdown: element.disableDropdown,
@@ -3933,7 +4006,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
3933
4006
  });
3934
4007
 
3935
4008
  var currencyNormalizerCreator = function currencyNormalizerCreator(value, currency) {
3936
- return !value ? '' : "" + getCurrencySymbolByCurrency(currency) + value;
4009
+ return !value ? '' : getCurrencySymbolByCurrency(currency) + " " + value;
3937
4010
  };
3938
4011
  var createFixedFloatNormalizer = function createFixedFloatNormalizer(fixedValue) {
3939
4012
  return function (value) {
@@ -5575,12 +5648,17 @@ var TicketRow = function TicketRow(_ref) {
5575
5648
  };
5576
5649
 
5577
5650
  var TicketsSection = function TicketsSection(_ref) {
5578
- var ticketsList = _ref.ticketsList,
5651
+ var _ref$event = _ref.event,
5652
+ event = _ref$event === void 0 ? {
5653
+ currency: 'GBP'
5654
+ } : _ref$event,
5655
+ ticketsList = _ref.ticketsList,
5579
5656
  selectedTickets = _ref.selectedTickets,
5580
5657
  handleTicketSelect = _ref.handleTicketSelect,
5581
5658
  sortBySoldOut = _ref.sortBySoldOut,
5582
5659
  ticketsHeaderComponent = _ref.ticketsHeaderComponent,
5583
5660
  hideTicketsHeader = _ref.hideTicketsHeader;
5661
+ var currency = event.currency;
5584
5662
  var sortedTicketsList = sortBySoldOut ? _sortBy(_sortBy(ticketsList, 'sortOrder'), 'soldOut') : _sortBy(ticketsList, 'sortOrder');
5585
5663
  var showGroup = !!sortedTicketsList.find(function (ticket) {
5586
5664
  return ticket.groupName;
@@ -5588,6 +5666,8 @@ var TicketsSection = function TicketsSection(_ref) {
5588
5666
  return React__default.createElement(React__default.Fragment, null, !hideTicketsHeader && ticketsHeaderComponent, sortedTicketsList.map(function (ticket, i, arr) {
5589
5667
  var _arr;
5590
5668
 
5669
+ var ticketPrice = currencyNormalizerCreator((+ticket.price).toFixed(2), currency);
5670
+ var ticketOldPrice = currencyNormalizerCreator((+ticket.oldPrice).toFixed(2), currency);
5591
5671
  var isSoldOut = ticket.sold_out || !ticket.displayTicket || ticket.soldOut;
5592
5672
 
5593
5673
  var ticketSelect = function ticketSelect(event) {
@@ -5602,12 +5682,12 @@ var TicketsSection = function TicketsSection(_ref) {
5602
5682
  }
5603
5683
 
5604
5684
  var ticketIsFree = +ticket.price === 0;
5605
- var ticketPrice = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : "$ " + (+ticket.price).toFixed(2);
5685
+ var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : ticketPrice;
5606
5686
  var isNewGroupTicket = (ticket == null ? void 0 : ticket.groupName) !== ((_arr = arr[i - 1]) == null ? void 0 : _arr.groupName);
5607
5687
  return React__default.createElement(React__default.Fragment, {
5608
5688
  key: ticket.id || ticket.name
5609
5689
  }, showGroup && isNewGroupTicket ? React__default.createElement("div", {
5610
- className: 'event-detail__tier group-title'
5690
+ className: "event-detail__tier group-title"
5611
5691
  }, ticket.groupName || '') : null, React__default.createElement("div", {
5612
5692
  className: "event-detail__tier " + (isSoldOut ? 'disabled' : '')
5613
5693
  }, React__default.createElement("div", {
@@ -5618,9 +5698,9 @@ var TicketsSection = function TicketsSection(_ref) {
5618
5698
  className: "event-detail__tier-price"
5619
5699
  }, ticketIsDiscounted && React__default.createElement("p", {
5620
5700
  className: "old-price"
5621
- }, "$ ", (+ticket.oldPrice).toFixed(2)), React__default.createElement("p", {
5701
+ }, ticketOldPrice), React__default.createElement("p", {
5622
5702
  className: isSoldOut ? 'sold-out' : ''
5623
- }, ticketPrice), !isSoldOut && !ticketIsFree && React__default.createElement("p", {
5703
+ }, ticketPriceElem), !isSoldOut && !ticketIsFree && React__default.createElement("p", {
5624
5704
  className: "fees"
5625
5705
  }, ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)')), React__default.createElement("div", {
5626
5706
  className: "event-detail__tier-state",
@@ -6268,6 +6348,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
6268
6348
  }, error), isLoading ? React__default.createElement(Loader, null) : React__default.createElement("div", {
6269
6349
  ref: ticketsContainerRef
6270
6350
  }, !isSalesClosed && React__default.createElement(TicketsSection, {
6351
+ event: event,
6271
6352
  ticketsList: tickets,
6272
6353
  selectedTickets: selectedTickets,
6273
6354
  handleTicketSelect: handleTicketSelect,
@@ -7623,7 +7704,7 @@ var AddonComponent = function AddonComponent(_ref) {
7623
7704
  }, React__default.createElement(formik.Field, {
7624
7705
  name: id,
7625
7706
  selectOptions: selectOptions,
7626
- component: SelectField,
7707
+ component: NativeSelectField,
7627
7708
  onChange: function onChange(e) {
7628
7709
  var value = e.target.value;
7629
7710
  handleAddonChange(id, value);