tf-checkout-react 1.0.106-beta.3 → 1.0.106-beta.7

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.
@@ -1,4 +1,4 @@
1
- import { AxiosInstance } from 'axios';
1
+ import { AxiosResponse, AxiosInstance } from 'axios';
2
2
  interface IPublicRequest extends AxiosInstance {
3
3
  setGuestToken: (token: string) => void;
4
4
  setAccessToken: (token: string) => void;
@@ -8,30 +8,31 @@ export declare const publicRequest: IPublicRequest;
8
8
  export declare const setXSourceOrigin: (sourceOrigin: string) => void;
9
9
  export declare const setCustomHeader: (response: any) => void;
10
10
  export declare const handleSetAccessToken: (token: any) => void;
11
- export declare function getEvent(id: string | number): Promise<import("axios").AxiosResponse<any, any>>;
12
- export declare function getTickets(id: string | number, promoCode: string): Promise<import("axios").AxiosResponse<any, any>>;
13
- export declare const addToCart: (id: string | number, data: any) => Promise<import("axios").AxiosResponse<any, any>>;
14
- export declare const getCart: () => Promise<import("axios").AxiosResponse<any, any>>;
15
- export declare const postOnCheckout: (data: any, accessToken: string) => Promise<import("axios").AxiosResponse<any, any>>;
16
- export declare const authorize: (data: FormData) => Promise<import("axios").AxiosResponse<any, any>>;
17
- export declare const register: (data: FormData) => Promise<import("axios").AxiosResponse<any, any>>;
18
- export declare const getAccessToken: (data: FormData) => Promise<import("axios").AxiosResponse<any, any>>;
19
- export declare const getPaymentData: (hash: string) => Promise<import("axios").AxiosResponse<any, any>>;
20
- export declare const handlePaymentData: (orderHash: string, data: any) => Promise<import("axios").AxiosResponse<any, any>>;
21
- export declare const handlePaymentSuccess: (orderHash: string) => Promise<import("axios").AxiosResponse<any, any>>;
22
- export declare const handleFreeSuccess: (orderHash: string) => Promise<import("axios").AxiosResponse<any, any>>;
11
+ export declare function getEvent(id: string | number): Promise<AxiosResponse<any, any>>;
12
+ export declare function getTickets(id: string | number, promoCode: string): Promise<AxiosResponse<any, any>>;
13
+ export declare const addToCart: (id: string | number, data: any) => Promise<AxiosResponse<any, any>>;
14
+ export declare const getCart: () => Promise<AxiosResponse<any, any>>;
15
+ export declare const postOnCheckout: (data: any, accessToken: string) => Promise<AxiosResponse<any, any>>;
16
+ export declare const authorize: (data: FormData) => Promise<AxiosResponse<any, any>>;
17
+ export declare const register: (data: FormData) => Promise<AxiosResponse<any, any>>;
18
+ export declare const getAccessToken: (data: FormData) => Promise<AxiosResponse<any, any>>;
19
+ export declare const getPaymentData: (hash: string) => Promise<AxiosResponse<any, any>>;
20
+ export declare const handlePaymentData: (orderHash: string, data: any) => Promise<AxiosResponse<any, any>>;
21
+ export declare const handlePaymentSuccess: (orderHash: string) => Promise<AxiosResponse<any, any>>;
22
+ export declare const handleFreeSuccess: (orderHash: string) => Promise<AxiosResponse<any, any>>;
23
23
  export declare const getProfileData: (accessToken: any) => Promise<any>;
24
- export declare const getCountries: () => Promise<import("axios").AxiosResponse<any, any>>;
25
- export declare const getConfirmationData: (orderHash: string) => Promise<import("axios").AxiosResponse<any, any>>;
26
- export declare const getStates: (countryId: string) => Promise<import("axios").AxiosResponse<any, any>>;
27
- export declare const getOrders: (page: number, limit: number, eventSlug: string) => Promise<import("axios").AxiosResponse<any, any>>;
28
- export declare const getOrderDetails: (orderId: string) => Promise<import("axios").AxiosResponse<any, any>>;
29
- export declare const addToWaitingList: (id: number, data: any) => Promise<import("axios").AxiosResponse<any, any>>;
30
- export declare const getConditions: (eventId: string) => Promise<import("axios").AxiosResponse<any, any>>;
31
- export declare const resaleTicket: (data: any, hash: string) => Promise<import("axios").AxiosResponse<any, any>>;
32
- export declare const removeFromResale: (hash: string) => Promise<import("axios").AxiosResponse<any, any>>;
33
- export declare const postReferralVisits: (eventId: string, referralId: string) => Promise<import("axios").AxiosResponse<any, any>>;
34
- export declare const processTicket: (hash: string) => Promise<import("axios").AxiosResponse<any, any>>;
35
- export declare const declineInvitation: (hash: string) => Promise<import("axios").AxiosResponse<any, any>>;
36
- export declare const sendRSVPInfo: (eventId: number, data: any) => Promise<import("axios").AxiosResponse<any, any>>;
24
+ export declare const getCountries: () => Promise<AxiosResponse<any, any>>;
25
+ export declare const getConfirmationData: (orderHash: string) => Promise<AxiosResponse<any, any>>;
26
+ export declare const getStates: (countryId: string) => Promise<AxiosResponse<any, any>>;
27
+ export declare const getOrders: (page: number, limit: number, eventSlug: string) => Promise<AxiosResponse<any, any>>;
28
+ export declare const getOrderDetails: (orderId: string) => Promise<AxiosResponse<any, any>>;
29
+ export declare const addToWaitingList: (id: number, data: any) => Promise<AxiosResponse<any, any>>;
30
+ export declare const getConditions: (eventId: string) => Promise<AxiosResponse<any, any>>;
31
+ export declare const resaleTicket: (data: any, hash: string) => Promise<AxiosResponse<any, any>>;
32
+ export declare const removeFromResale: (hash: string) => Promise<AxiosResponse<any, any>>;
33
+ export declare const postReferralVisits: (eventId: string, referralId: string) => Promise<AxiosResponse<any, any>>;
34
+ export declare const processTicket: (hash: string) => Promise<AxiosResponse<any, any>>;
35
+ export declare const declineInvitation: (hash: string) => Promise<AxiosResponse<any, any>>;
36
+ export declare const sendRSVPInfo: (eventId: number, data: any) => Promise<AxiosResponse<any, any>>;
37
+ export declare const validatePhoneNumber: (phone: string) => Promise<any>;
37
38
  export {};
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { FieldInputProps, FormikProps } from 'formik';
3
+ export interface IPhoneNumberField {
4
+ label: string;
5
+ field: FieldInputProps<any>;
6
+ form: FormikProps<any>;
7
+ type: string;
8
+ }
9
+ export declare const PhoneNumberField: ({ label, type, field, form: { errors, setFieldError, setStatus }, }: IPhoneNumberField) => JSX.Element;
@@ -1,5 +1,6 @@
1
1
  export { CheckboxField } from './CheckboxField';
2
2
  export { CustomField } from './CustomField';
3
3
  export { FormikPhoneNumberField } from './FormikPhoneNumberField';
4
+ export { PhoneNumberField } from './PhoneNumberField';
4
5
  export { Loader } from './Loader';
5
6
  export { SelectField } from './SelectField';
@@ -7,5 +7,5 @@ interface MyTicketsTypes {
7
7
  logo?: string;
8
8
  theme?: 'light' | 'dark';
9
9
  }
10
- export declare const MyTicketsContainer: ({ handleDetailsInfo, onGetOrdersSuccess, onGetOrdersError, theme, logo }: MyTicketsTypes) => JSX.Element;
10
+ export declare const MyTicketsContainer: ({ handleDetailsInfo, onGetOrdersSuccess, onGetOrdersError, theme, logo, }: MyTicketsTypes) => JSX.Element;
11
11
  export {};
@@ -27,7 +27,8 @@ var FormControlLabel = _interopDefault(require('@mui/material/FormControlLabel')
27
27
  var Checkbox = _interopDefault(require('@mui/material/Checkbox'));
28
28
  var styles = require('@mui/styles');
29
29
  var TextField = _interopDefault(require('@mui/material/TextField'));
30
- var MuiPhoneNumber = _interopDefault(require('material-ui-phone-number'));
30
+ require('material-ui-phone-number');
31
+ var _debounce = _interopDefault(require('lodash/debounce'));
31
32
  var CircularProgress = _interopDefault(require('@mui/material/CircularProgress'));
32
33
  var Select = _interopDefault(require('@mui/material/Select'));
33
34
  var styles$1 = require('@mui/material/styles');
@@ -1349,6 +1350,32 @@ var declineInvitation = function declineInvitation(hash) {
1349
1350
  var sendRSVPInfo = function sendRSVPInfo(eventId, data) {
1350
1351
  return publicRequest.post("v1/event/" + eventId + "/send-rsvp-info", data);
1351
1352
  };
1353
+ var validatePhoneNumber = /*#__PURE__*/function () {
1354
+ var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(phone) {
1355
+ var response;
1356
+ return runtime_1.wrap(function _callee$(_context) {
1357
+ while (1) {
1358
+ switch (_context.prev = _context.next) {
1359
+ case 0:
1360
+ _context.next = 2;
1361
+ return publicRequest.get("/v1/account/validate_phone?phone=" + phone);
1362
+
1363
+ case 2:
1364
+ response = _context.sent;
1365
+ return _context.abrupt("return", response.data);
1366
+
1367
+ case 4:
1368
+ case "end":
1369
+ return _context.stop();
1370
+ }
1371
+ }
1372
+ }, _callee);
1373
+ }));
1374
+
1375
+ return function validatePhoneNumber(_x) {
1376
+ return _ref.apply(this, arguments);
1377
+ };
1378
+ }();
1352
1379
 
1353
1380
  var style = {
1354
1381
  position: 'absolute',
@@ -2097,50 +2124,80 @@ var getCurrencySymbolByCurrency = function getCurrencySymbolByCurrency(currency)
2097
2124
  return 'US$';
2098
2125
  }
2099
2126
  };
2100
- var removePlusSign = function removePlusSign(string) {
2101
- if (string === void 0) {
2102
- string = '';
2103
- }
2104
2127
 
2105
- return string.replace('+', '');
2106
- };
2107
-
2108
- var _excluded$2 = ["label", "field", "form", "setFieldValue", "selectOptions"];
2109
- var FormikPhoneNumberField = function FormikPhoneNumberField(_ref) {
2128
+ var PhoneNumberField = function PhoneNumberField(_ref) {
2110
2129
  var label = _ref.label,
2130
+ _ref$type = _ref.type,
2131
+ type = _ref$type === void 0 ? 'text' : _ref$type,
2111
2132
  field = _ref.field,
2112
2133
  _ref$form = _ref.form,
2113
- touched = _ref$form.touched,
2114
2134
  errors = _ref$form.errors,
2115
- initialValues = _ref$form.initialValues,
2116
- setFieldValue = _ref.setFieldValue,
2117
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
2135
+ setFieldError = _ref$form.setFieldError,
2136
+ setStatus = _ref$form.setStatus;
2118
2137
 
2119
- var error = _get(errors, field.name);
2138
+ var error = _get(errors, field.name); // eslint-disable-next-line react-hooks/exhaustive-deps
2120
2139
 
2121
- var isTouched = Boolean(_get(touched, field.name));
2122
- var customTheme = styles.useTheme();
2123
- return React__default.createElement(MuiPhoneNumber, Object.assign({
2124
- name: 'phone',
2125
- value: initialValues.phone,
2126
- onChange: function onChange(e) {
2127
- return setFieldValue("phone", removePlusSign(e));
2128
- },
2129
- variant: "outlined",
2130
- defaultCountry: 'us',
2131
- disableDropdown: true,
2140
+
2141
+ var debounceCb = React.useCallback(_debounce(function (cb) {
2142
+ return void cb();
2143
+ }, 1000), []);
2144
+ React.useEffect(function () {
2145
+ if (field.value) {
2146
+ var _setStatus;
2147
+
2148
+ setStatus((_setStatus = {}, _setStatus[field.name] = true, _setStatus));
2149
+ }
2150
+
2151
+ debounceCb( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
2152
+ var message, _setStatus2;
2153
+
2154
+ return runtime_1.wrap(function _callee$(_context) {
2155
+ while (1) {
2156
+ switch (_context.prev = _context.next) {
2157
+ case 0:
2158
+ _context.prev = 0;
2159
+
2160
+ if (!field.value) {
2161
+ _context.next = 4;
2162
+ break;
2163
+ }
2164
+
2165
+ _context.next = 4;
2166
+ return validatePhoneNumber(field.value);
2167
+
2168
+ case 4:
2169
+ setFieldError(field.name, '');
2170
+ _context.next = 11;
2171
+ break;
2172
+
2173
+ case 7:
2174
+ _context.prev = 7;
2175
+ _context.t0 = _context["catch"](0);
2176
+ message = _get(_context.t0, 'response.data.message', 'Invalid phone number');
2177
+ setFieldError(field.name, message);
2178
+
2179
+ case 11:
2180
+ _context.prev = 11;
2181
+ setStatus((_setStatus2 = {}, _setStatus2[field.name] = false, _setStatus2));
2182
+ return _context.finish(11);
2183
+
2184
+ case 14:
2185
+ case "end":
2186
+ return _context.stop();
2187
+ }
2188
+ }
2189
+ }, _callee, null, [[0, 7, 11, 14]]);
2190
+ }))); // eslint-disable-next-line
2191
+ }, [field.value]);
2192
+ return React__default.createElement(TextField, Object.assign({}, field, {
2193
+ id: field.name,
2132
2194
  label: label,
2133
- error: !!error && isTouched,
2134
- helperText: isTouched && error,
2195
+ type: type,
2135
2196
  fullWidth: true,
2136
- InputLabelProps: {
2137
- sx: customTheme == null ? void 0 : customTheme.input
2138
- },
2139
- InputProps: {
2140
- sx: customTheme == null ? void 0 : customTheme.input
2141
- },
2142
- autoFormat: false
2143
- }, rest));
2197
+ error: !!error,
2198
+ helperText: error,
2199
+ value: field.value || ''
2200
+ }));
2144
2201
  };
2145
2202
 
2146
2203
  function Loader() {
@@ -3190,7 +3247,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
3190
3247
  validate: getValidateFunctions(element, states, props.values),
3191
3248
  setFieldValue: props.setFieldValue,
3192
3249
  onBlur: props.handleBlur,
3193
- component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? SelectField : element.type === 'phone' ? FormikPhoneNumberField : element.type === 'date' ? DatePickerField : CustomField,
3250
+ component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? SelectField : element.type === 'phone' ? PhoneNumberField : element.type === 'date' ? DatePickerField : CustomField,
3194
3251
  selectOptions: element.name === 'country' ? countries : element.name === 'state' ? states : [],
3195
3252
  theme: theme
3196
3253
  })));
@@ -4290,17 +4347,17 @@ var TicketRow = function TicketRow(_ref) {
4290
4347
  value: option.value
4291
4348
  }, option.value);
4292
4349
  })))));
4293
- var returnValue = '';
4350
+ var returnValue = ''; // ticketTier.soldOut === false --> means that ticket is in the stock
4294
4351
 
4295
- if (ticketTier.sold_out || !ticketTier.displayTicket || ticketTier.soldOut) {
4296
- returnValue = soldOutMessage;
4297
- }
4352
+ var isSoldOut = ticketTier.sold_out || !ticketTier.displayTicket || ticketTier.soldOut || ticketTier.soldOut === false;
4298
4353
 
4299
- if (ticketTier.displayTicket) {
4354
+ if (isSoldOut) {
4355
+ returnValue = soldOutMessage;
4356
+ } else if (isSalesClosed) {
4357
+ returnValue = ticketsClosedMessage;
4358
+ } else if (ticketTier.displayTicket && ticketTier.maxQuantity) {
4300
4359
  returnValue = onSaleContent;
4301
- }
4302
-
4303
- if (_get(prevTicketTier, 'in_stock')) {
4360
+ } else if (_get(prevTicketTier, 'in_stock')) {
4304
4361
  returnValue = 'SOON';
4305
4362
  }
4306
4363
 
@@ -4330,8 +4387,8 @@ var TicketsSection = function TicketsSection(_ref) {
4330
4387
  ticketIsDiscounted = true;
4331
4388
  }
4332
4389
 
4333
- var ticketIsFree = (+ticket.cost || +ticket.price) === 0;
4334
- var ticketPrice = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : "$ " + (+ticket.cost || +ticket.price).toFixed(2);
4390
+ var ticketIsFree = +ticket.price === 0;
4391
+ var ticketPrice = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : "$ " + (+ticket.price).toFixed(2);
4335
4392
  return React__default.createElement("div", {
4336
4393
  key: ticket.id || ticket.name,
4337
4394
  className: "event-detail__tier " + (isSoldOut ? 'disabled' : '')
@@ -5381,26 +5438,26 @@ var MyTicketsContainer = function MyTicketsContainer(_ref) {
5381
5438
  setFilter((eventFilter == null ? void 0 : eventFilter.url_name) || '');
5382
5439
  };
5383
5440
 
5441
+ if (loading) {
5442
+ return React__default.createElement("div", {
5443
+ className: "loading"
5444
+ }, React__default.createElement(CircularProgress, null));
5445
+ }
5446
+
5384
5447
  return React__default.createElement("div", {
5385
5448
  className: "my-ticket " + theme
5386
- }, loading && React__default.createElement("div", {
5387
- className: "loading"
5388
- }, React__default.createElement(CircularProgress, null)), !isLogged ? React__default.createElement("div", {
5389
- className: "account-actions-block"
5390
- }, React__default.createElement("div", {
5391
- className: "login-block"
5392
- }, React__default.createElement("button", {
5393
- className: "login-register-button",
5394
- type: "button",
5395
- onClick: function onClick() {
5396
- setShowModalLogin(true);
5397
- }
5398
- }, "Login"), React__default.createElement("div", {
5399
- className: "logo-image-container"
5400
- }, React__default.createElement("img", {
5401
- src: theme === 'dark' ? 'https://www.ticketfairy.com/resources/images/logo-ttf.svg' : 'https://www.ticketfairy.com/resources/images/logo-ttf-black.svg',
5402
- alt: "nodata"
5403
- })))) : null, data && React__default.createElement(React__default.Fragment, null, React__default.createElement(Autocomplete, {
5449
+ }, React__default.createElement(React__default.Fragment, null, showModalLogin || !isLogged && React__default.createElement(LoginModal, {
5450
+ onClose: function onClose() {
5451
+ setShowModalLogin(false);
5452
+ },
5453
+ onLogin: function onLogin() {
5454
+ setShowModalLogin(false);
5455
+ setUserExpired(false);
5456
+ setIsLogged(true);
5457
+ },
5458
+ userExpired: userExpired,
5459
+ logo: logo
5460
+ })), data && React__default.createElement(React__default.Fragment, null, React__default.createElement(Autocomplete, {
5404
5461
  disablePortal: true,
5405
5462
  id: "combo-box-demo",
5406
5463
  getOptionLabel: function getOptionLabel(option) {
@@ -5439,17 +5496,6 @@ var MyTicketsContainer = function MyTicketsContainer(_ref) {
5439
5496
  page: data.page,
5440
5497
  onPageChange: handleChangePage,
5441
5498
  onRowsPerPageChange: handleChangeRowsPerPage
5442
- })), React__default.createElement(React__default.Fragment, null, showModalLogin && React__default.createElement(LoginModal, {
5443
- onClose: function onClose() {
5444
- setShowModalLogin(false);
5445
- },
5446
- onLogin: function onLogin() {
5447
- setShowModalLogin(false);
5448
- setUserExpired(false);
5449
- setIsLogged(true);
5450
- },
5451
- userExpired: userExpired,
5452
- logo: logo
5453
5499
  })));
5454
5500
  };
5455
5501
 
@@ -5503,11 +5549,11 @@ var TicketsTable = function TicketsTable(_ref) {
5503
5549
  })))));
5504
5550
  };
5505
5551
 
5506
- var _excluded$3 = ["label", "field", "theme"];
5552
+ var _excluded$2 = ["label", "field", "theme"];
5507
5553
  var RadioField = function RadioField(_ref) {
5508
5554
  var label = _ref.label,
5509
5555
  field = _ref.field,
5510
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
5556
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
5511
5557
 
5512
5558
  var customTheme = styles.useTheme();
5513
5559
  return React__default.createElement(FormGroup, null, React__default.createElement(FormControlLabel, {