tf-checkout-react 1.0.99-beta.20 → 1.0.99-beta.21

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.
@@ -35,5 +35,6 @@ export declare const removeFromResale: (hash: string) => Promise<AxiosResponse<a
35
35
  export declare const postReferralVisits: (eventId: string, referralId: string) => Promise<AxiosResponse<any, any>>;
36
36
  export declare const logout: () => Promise<AxiosResponse<any, any>>;
37
37
  export declare const processTicket: (hash: string) => Promise<AxiosResponse<any, any>>;
38
+ export declare const declineInvitation: (hash: string) => Promise<AxiosResponse<any, any>>;
38
39
  export declare const sendRSVPInfo: (eventId: number, data: any) => Promise<AxiosResponse<any, any>>;
39
40
  export {};
@@ -16,5 +16,5 @@ export interface ICustomField {
16
16
  interface IOtherProps {
17
17
  [key: string]: any;
18
18
  }
19
- export declare const CustomField: ({ label, type, field, selectOptions, form: { touched, errors, submitCount }, theme, }: ICustomField & IOtherProps) => JSX.Element;
19
+ export declare const CustomField: ({ label, type, field, selectOptions, form: { touched, errors, submitCount }, theme, inputProps: pInputProps, InputProps, inputRef, }: ICustomField & IOtherProps) => JSX.Element;
20
20
  export {};
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { FieldInputProps, FormikProps } from 'formik';
3
+ export interface IDatePickerFieldProps {
4
+ label: string;
5
+ field: FieldInputProps<any>;
6
+ form: FormikProps<any>;
7
+ theme: 'dark' | 'light';
8
+ useCompact?: boolean;
9
+ }
10
+ interface IOtherProps {
11
+ [key: string]: any;
12
+ }
13
+ export declare const DatePickerField: ({ label, field, form, theme, useCompact, }: IDatePickerFieldProps & IOtherProps) => JSX.Element;
14
+ export {};
@@ -3,6 +3,8 @@ import { AxiosError } from 'axios';
3
3
  export interface ITicketResaleContainer {
4
4
  onProcessTicketSuccess: (res: any) => void;
5
5
  onProcessTicketError: (e: AxiosError) => void;
6
+ onDeclineTicketPurchaseSuccess: (res: any) => void;
7
+ onDeclineTicketPurchaseError: (e: AxiosError) => void;
6
8
  orderHash?: string;
7
9
  }
8
- export declare const TicketResaleContainer: ({ onProcessTicketSuccess, onProcessTicketError, orderHash, }: ITicketResaleContainer) => JSX.Element;
10
+ export declare const TicketResaleContainer: ({ onProcessTicketSuccess, onProcessTicketError, onDeclineTicketPurchaseSuccess, onDeclineTicketPurchaseError, orderHash, }: ITicketResaleContainer) => JSX.Element;
@@ -27,7 +27,6 @@ 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 moment = _interopDefault(require('moment-timezone'));
31
30
  var MuiPhoneNumber = _interopDefault(require('material-ui-phone-number'));
32
31
  var CircularProgress = _interopDefault(require('@mui/material/CircularProgress'));
33
32
  var Select = _interopDefault(require('@mui/material/Select'));
@@ -36,6 +35,9 @@ var Backdrop = _interopDefault(require('@mui/material/Backdrop'));
36
35
  var Countdown$1 = _interopDefault(require('react-countdown'));
37
36
  var _isNumber = _interopDefault(require('lodash/isNumber'));
38
37
  var SVG = _interopDefault(require('react-inlinesvg'));
38
+ var DatePicker = _interopDefault(require('@mui/lab/DatePicker'));
39
+ var AdapterMoment = _interopDefault(require('@mui/lab/AdapterMoment'));
40
+ var LocalizationProvider = _interopDefault(require('@mui/lab/LocalizationProvider'));
39
41
  var Container = _interopDefault(require('@mui/material/Container'));
40
42
  var Alert = _interopDefault(require('@mui/material/Alert'));
41
43
  var reactStripeJs = require('@stripe/react-stripe-js');
@@ -48,6 +50,7 @@ var jwt_decode = _interopDefault(require('jwt-decode'));
48
50
  var _sortBy = _interopDefault(require('lodash/sortBy'));
49
51
  var FormControl = _interopDefault(require('@mui/material/FormControl'));
50
52
  var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
53
+ var moment = _interopDefault(require('moment-timezone'));
51
54
  var privateTheming = require('@mui/private-theming');
52
55
  var Table = _interopDefault(require('@mui/material/Table'));
53
56
  var TableBody = _interopDefault(require('@mui/material/TableBody'));
@@ -1436,6 +1439,9 @@ var logout = function logout() {
1436
1439
  var processTicket = function processTicket(hash) {
1437
1440
  return publicRequest.post("v1/ticket/" + hash + "/process/");
1438
1441
  };
1442
+ var declineInvitation = function declineInvitation(hash) {
1443
+ return publicRequest.post("v1/ticket/" + hash + "/decline");
1444
+ };
1439
1445
  var sendRSVPInfo = function sendRSVPInfo(eventId, data) {
1440
1446
  return publicRequest.post("v1/event/" + eventId + "/send-rsvp-info", data);
1441
1447
  };
@@ -1867,6 +1873,7 @@ var createRegisterFormData = function createRegisterFormData(values, checkoutBod
1867
1873
  bodyFormData.append('password_confirmation', values.confirmPassword);
1868
1874
  bodyFormData.append('client_id', CONFIGS.CLIENT_ID || 'e9d8f8922797b4621e562255afe90dbf');
1869
1875
  bodyFormData.append('client_secret', CONFIGS.CLIENT_SECRET || 'b89c191eff22fdcf84ac9bfd88d005355a151ec2c83b26b9');
1876
+ bodyFormData.append('check_cart_expiration', 'true');
1870
1877
 
1871
1878
  _forEach(checkoutBody.attributes, function (item, key) {
1872
1879
  bodyFormData.append(key, item);
@@ -2041,7 +2048,12 @@ var CustomField = function CustomField(_ref) {
2041
2048
  touched = _ref$form.touched,
2042
2049
  errors = _ref$form.errors,
2043
2050
  submitCount = _ref$form.submitCount,
2044
- theme = _ref.theme;
2051
+ theme = _ref.theme,
2052
+ _ref$inputProps = _ref.inputProps,
2053
+ pInputProps = _ref$inputProps === void 0 ? {} : _ref$inputProps,
2054
+ _ref$InputProps = _ref.InputProps,
2055
+ InputProps = _ref$InputProps === void 0 ? {} : _ref$InputProps,
2056
+ inputRef = _ref.inputRef;
2045
2057
  var isSelectField = type === 'select';
2046
2058
 
2047
2059
  var error = _get(errors, field.name);
@@ -2051,11 +2063,6 @@ var CustomField = function CustomField(_ref) {
2051
2063
  var inputProps = {
2052
2064
  sx: customTheme == null ? void 0 : customTheme.input
2053
2065
  };
2054
-
2055
- if (type === 'date') {
2056
- inputProps.max = moment().format('YYYY-MM-DD');
2057
- }
2058
-
2059
2066
  return React__default.createElement(TextField, Object.assign({
2060
2067
  id: field.name,
2061
2068
  label: label,
@@ -2072,10 +2079,11 @@ var CustomField = function CustomField(_ref) {
2072
2079
  }
2073
2080
  },
2074
2081
  InputLabelProps: {
2075
- sx: customTheme == null ? void 0 : customTheme.input,
2076
- shrink: field.name === 'holderAge' ? true : undefined
2082
+ sx: customTheme == null ? void 0 : customTheme.input
2077
2083
  },
2078
- inputProps: inputProps
2084
+ InputProps: InputProps,
2085
+ inputProps: _extends({}, inputProps, pInputProps),
2086
+ inputRef: inputRef
2079
2087
  }, field), isSelectField ? _map(selectOptions, function (option) {
2080
2088
  return React__default.createElement("option", {
2081
2089
  key: option.value,
@@ -2378,6 +2386,77 @@ var SnackbarAlert = function SnackbarAlert(_ref) {
2378
2386
  }, message)));
2379
2387
  };
2380
2388
 
2389
+ var DATE_SIZE = 32;
2390
+ var compactStyles = {
2391
+ '& > div': {
2392
+ minWidth: 256
2393
+ },
2394
+ '& > div > div, & > div > div > div, & .MuiCalendarPicker-root': {
2395
+ width: 256
2396
+ },
2397
+ '& .MuiTypography-caption': {
2398
+ width: DATE_SIZE,
2399
+ margin: 0
2400
+ },
2401
+ '& .PrivatePickersSlideTransition-root': {
2402
+ minHeight: DATE_SIZE * 6
2403
+ },
2404
+ '& .PrivatePickersSlideTransition-root [role="row"]': {
2405
+ margin: 0
2406
+ },
2407
+ '& .MuiPickersDay-dayWithMargin': {
2408
+ margin: 0
2409
+ },
2410
+ '& .MuiPickersDay-root': {
2411
+ width: DATE_SIZE,
2412
+ height: DATE_SIZE
2413
+ }
2414
+ };
2415
+ var compactStyleTheme = /*#__PURE__*/styles$1.createTheme({
2416
+ components: {
2417
+ MuiPaper: {
2418
+ defaultProps: {
2419
+ sx: compactStyles
2420
+ }
2421
+ }
2422
+ }
2423
+ });
2424
+ var DatePickerField = function DatePickerField(_ref) {
2425
+ var label = _ref.label,
2426
+ field = _ref.field,
2427
+ form = _ref.form,
2428
+ theme = _ref.theme,
2429
+ _ref$useCompact = _ref.useCompact,
2430
+ useCompact = _ref$useCompact === void 0 ? true : _ref$useCompact;
2431
+ return React__default.createElement(styles$1.ThemeProvider, {
2432
+ theme: useCompact ? compactStyleTheme : {}
2433
+ }, React__default.createElement(LocalizationProvider, {
2434
+ dateAdapter: AdapterMoment
2435
+ }, React__default.createElement(DatePicker, {
2436
+ value: field.value || '',
2437
+ onChange: function onChange(value) {
2438
+ return form.setFieldValue(field.name, value);
2439
+ },
2440
+ PopperProps: {
2441
+ placement: 'bottom-start'
2442
+ },
2443
+ showDaysOutsideCurrentMonth: true,
2444
+ disableFuture: true,
2445
+ renderInput: function renderInput(params) {
2446
+ return React__default.createElement(CustomField, Object.assign({}, params, {
2447
+ inputProps: _extends({}, params.inputProps, {
2448
+ placeholder: 'dd/mm/yyyy'
2449
+ }),
2450
+ theme: theme,
2451
+ field: field,
2452
+ form: form,
2453
+ label: label,
2454
+ type: "tel"
2455
+ }));
2456
+ }
2457
+ })));
2458
+ };
2459
+
2381
2460
  var LogicRunner = function LogicRunner(_ref) {
2382
2461
  var values = _ref.values,
2383
2462
  setStates = _ref.setStates,
@@ -3181,7 +3260,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
3181
3260
  validate: getValidateFunctions(element, states, props.values),
3182
3261
  setFieldValue: props.setFieldValue,
3183
3262
  onBlur: props.handleBlur,
3184
- component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? SelectField : element.type === 'phone' ? FormikPhoneNumberField : CustomField,
3263
+ component: element.type === 'checkbox' ? CheckboxField : element.type === 'select' ? SelectField : element.type === 'phone' ? FormikPhoneNumberField : element.type === 'date' ? DatePickerField : CustomField,
3185
3264
  selectOptions: element.name === 'country' ? countries : element.name === 'state' ? states : [],
3186
3265
  theme: theme
3187
3266
  })));
@@ -5159,7 +5238,8 @@ var TicketsContainer = function TicketsContainer(_ref) {
5159
5238
 
5160
5239
  var bookButtonIsDisabled = handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0;
5161
5240
  var wrappedActionsSectionComponent = React__default.isValidElement(ActionsSectionComponent) ? React__default.cloneElement(ActionsSectionComponent, {
5162
- handleGetTicketClick: handleGetTicketClick
5241
+ handleGetTicketClick: handleGetTicketClick,
5242
+ isTicketOnSale: isTicketOnSale
5163
5243
  }) : null;
5164
5244
  var externalUrl = event == null ? void 0 : event.redirectUrl;
5165
5245
  var eventSaleIsNotStarted = !(event != null && event.salesStarted) && (event == null ? void 0 : event.salesStart);
@@ -6052,75 +6132,110 @@ var TicketResaleContainer = function TicketResaleContainer(_ref) {
6052
6132
  onProcessTicketSuccess = _ref$onProcessTicketS === void 0 ? function () {} : _ref$onProcessTicketS,
6053
6133
  _ref$onProcessTicketE = _ref.onProcessTicketError,
6054
6134
  onProcessTicketError = _ref$onProcessTicketE === void 0 ? function () {} : _ref$onProcessTicketE,
6135
+ _ref$onDeclineTicketP = _ref.onDeclineTicketPurchaseSuccess,
6136
+ onDeclineTicketPurchaseSuccess = _ref$onDeclineTicketP === void 0 ? function () {} : _ref$onDeclineTicketP,
6137
+ _ref$onDeclineTicketP2 = _ref.onDeclineTicketPurchaseError,
6138
+ onDeclineTicketPurchaseError = _ref$onDeclineTicketP2 === void 0 ? function () {} : _ref$onDeclineTicketP2,
6055
6139
  orderHash = _ref.orderHash;
6056
6140
  var isWindowDefined = typeof window !== 'undefined';
6057
6141
 
6058
- var _useState = React.useState(null),
6142
+ var _useState = React.useState(''),
6059
6143
  error = _useState[0],
6060
6144
  setError = _useState[1];
6061
6145
 
6146
+ var _useState2 = React.useState(''),
6147
+ successMessage = _useState2[0],
6148
+ setSuccessMessage = _useState2[1];
6149
+
6062
6150
  React.useEffect(function () {
6063
6151
  _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
6064
- var params, hash, response, data, age_required, names_required, event_id, _error$response, _error$response$data;
6152
+ var params, hash, isDeclined, response, _error$response, _error$response$data, _response, data, age_required, names_required, event_id, _error$response2, _error$response2$data;
6065
6153
 
6066
6154
  return runtime_1.wrap(function _callee$(_context) {
6067
6155
  while (1) {
6068
6156
  switch (_context.prev = _context.next) {
6069
6157
  case 0:
6070
6158
  if (!isWindowDefined) {
6071
- _context.next = 23;
6159
+ _context.next = 38;
6072
6160
  break;
6073
6161
  }
6074
6162
 
6075
6163
  params = new URL("" + window.location).searchParams;
6076
6164
  hash = params.get('invitation_hash') || orderHash || null;
6165
+ isDeclined = params.get('decline') || false;
6077
6166
 
6078
6167
  if (!hash) {
6079
- _context.next = 22;
6168
+ _context.next = 37;
6080
6169
  break;
6081
6170
  }
6082
6171
 
6083
- _context.prev = 4;
6084
- _context.next = 7;
6085
- return processTicket(hash);
6172
+ if (!isDeclined) {
6173
+ _context.next = 19;
6174
+ break;
6175
+ }
6086
6176
 
6087
- case 7:
6177
+ _context.prev = 6;
6178
+ _context.next = 9;
6179
+ return declineInvitation(hash);
6180
+
6181
+ case 9:
6088
6182
  response = _context.sent;
6089
- data = _get(response, 'data.data.attributes');
6183
+ onDeclineTicketPurchaseSuccess(response);
6184
+ setSuccessMessage("Thanks for letting us know! We'll offer this ticket to someone else!");
6185
+ _context.next = 18;
6186
+ break;
6187
+
6188
+ case 14:
6189
+ _context.prev = 14;
6190
+ _context.t0 = _context["catch"](6);
6191
+ setError(_context.t0 == null ? void 0 : (_error$response = _context.t0.response) == null ? void 0 : (_error$response$data = _error$response.data) == null ? void 0 : _error$response$data.message);
6192
+ onDeclineTicketPurchaseError(_context.t0.response);
6193
+
6194
+ case 18:
6195
+ return _context.abrupt("return");
6196
+
6197
+ case 19:
6198
+ _context.prev = 19;
6199
+ _context.next = 22;
6200
+ return processTicket(hash);
6201
+
6202
+ case 22:
6203
+ _response = _context.sent;
6204
+ data = _get(_response, 'data.data.attributes');
6090
6205
  age_required = _get(data, 'age_required', false);
6091
6206
  names_required = _get(data, 'names_required', false);
6092
6207
  event_id = _get(data, 'event_id');
6093
- onProcessTicketSuccess(response.data);
6208
+ onProcessTicketSuccess(_response.data);
6094
6209
  window.location.href = "/billing/billing-info/?age_required=" + age_required + "&names_required=" + names_required + "&event_id=" + event_id;
6095
- _context.next = 20;
6210
+ _context.next = 35;
6096
6211
  break;
6097
6212
 
6098
- case 16:
6099
- _context.prev = 16;
6100
- _context.t0 = _context["catch"](4);
6101
- setError(_context.t0 == null ? void 0 : (_error$response = _context.t0.response) == null ? void 0 : (_error$response$data = _error$response.data) == null ? void 0 : _error$response$data.message);
6102
- onProcessTicketError(_context.t0.response);
6213
+ case 31:
6214
+ _context.prev = 31;
6215
+ _context.t1 = _context["catch"](19);
6216
+ setError(_context.t1 == null ? void 0 : (_error$response2 = _context.t1.response) == null ? void 0 : (_error$response2$data = _error$response2.data) == null ? void 0 : _error$response2$data.message);
6217
+ onProcessTicketError(_context.t1.response);
6103
6218
 
6104
- case 20:
6105
- _context.next = 23;
6219
+ case 35:
6220
+ _context.next = 38;
6106
6221
  break;
6107
6222
 
6108
- case 22:
6223
+ case 37:
6109
6224
  window.location.href = '/';
6110
6225
 
6111
- case 23:
6226
+ case 38:
6112
6227
  case "end":
6113
6228
  return _context.stop();
6114
6229
  }
6115
6230
  }
6116
- }, _callee, null, [[4, 16]]);
6231
+ }, _callee, null, [[6, 14], [19, 31]]);
6117
6232
  }))();
6118
6233
  }, []);
6119
6234
  return React__default.createElement("div", {
6120
6235
  className: "ticket-resale-page"
6121
6236
  }, React__default.createElement("div", {
6122
- className: "error-block"
6123
- }, React__default.createElement("h3", null, error)));
6237
+ className: "" + (successMessage ? 'success-block' : 'error-block')
6238
+ }, React__default.createElement("h3", null, successMessage ? successMessage : error)));
6124
6239
  };
6125
6240
 
6126
6241
  var style$3 = {