tf-checkout-react 1.0.96 → 1.0.98

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 (45) hide show
  1. package/dist/api/index.d.ts +3 -0
  2. package/dist/components/common/Loader.d.ts +2 -0
  3. package/dist/components/common/RadioField.d.ts +11 -0
  4. package/dist/components/common/index.d.ts +5 -0
  5. package/dist/components/confirmModal/index.d.ts +9 -0
  6. package/dist/components/index.d.ts +1 -0
  7. package/dist/components/orderDetailsContainer/ticketsTable.d.ts +9 -2
  8. package/dist/components/ticketResale/index.d.ts +8 -0
  9. package/dist/components/ticketResaleModal/index.d.ts +18 -0
  10. package/dist/components/ticketsContainer/PromoCodeSection.d.ts +2 -1
  11. package/dist/images/email.svg +1 -0
  12. package/dist/images/user.svg +1 -0
  13. package/dist/index.d.ts +1 -0
  14. package/dist/tf-checkout-react.cjs.development.js +599 -137
  15. package/dist/tf-checkout-react.cjs.development.js.map +1 -1
  16. package/dist/tf-checkout-react.cjs.production.min.js +1 -1
  17. package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
  18. package/dist/tf-checkout-react.esm.js +607 -146
  19. package/dist/tf-checkout-react.esm.js.map +1 -1
  20. package/dist/tf-checkout-styles.css +1 -1
  21. package/package.json +3 -2
  22. package/src/.DS_Store +0 -0
  23. package/src/api/index.ts +21 -8
  24. package/src/assets/images/email.svg +1 -0
  25. package/src/assets/images/user.svg +1 -0
  26. package/src/components/.DS_Store +0 -0
  27. package/src/components/billing-info-container/index.tsx +1 -4
  28. package/src/components/common/Loader.tsx +10 -0
  29. package/src/components/common/RadioField.tsx +35 -0
  30. package/src/components/common/index.tsx +5 -0
  31. package/src/components/confirmModal/index.tsx +51 -0
  32. package/src/components/confirmModal/style.css +21 -0
  33. package/src/components/index.ts +1 -0
  34. package/src/components/orderDetailsContainer/index.tsx +99 -4
  35. package/src/components/orderDetailsContainer/style.css +5 -4
  36. package/src/components/orderDetailsContainer/ticketsTable.tsx +36 -4
  37. package/src/components/paymentContainer/index.tsx +1 -7
  38. package/src/components/stripePayment/index.tsx +1 -1
  39. package/src/components/ticketResale/index.tsx +56 -0
  40. package/src/components/ticketResaleModal/index.tsx +210 -0
  41. package/src/components/ticketResaleModal/style.css +28 -0
  42. package/src/components/ticketsContainer/PromoCodeSection.tsx +4 -1
  43. package/src/components/ticketsContainer/index.tsx +8 -12
  44. package/src/components/waitingList/index.tsx +1 -1
  45. package/src/index.ts +1 -0
@@ -9,23 +9,23 @@ import _isEqual from 'lodash-es/isEqual';
9
9
  import _isEmpty from 'lodash-es/isEmpty';
10
10
  import axios from 'axios';
11
11
  import _forEach from 'lodash-es/forEach';
12
- import { TextField, FormControl, FormHelperText, InputLabel, CircularProgress, Alert, createTheme as createTheme$1 } from '@mui/material';
12
+ import { TextField, FormControl, FormHelperText, InputLabel, CircularProgress as CircularProgress$1, Alert, createTheme as createTheme$1 } from '@mui/material';
13
13
  import Modal from '@mui/material/Modal';
14
14
  import Box from '@mui/material/Box';
15
15
  import _flatMapDeep from 'lodash-es/flatMapDeep';
16
16
  import _isArray from 'lodash-es/isArray';
17
17
  import { nanoid } from 'nanoid';
18
- import TextField$1 from '@mui/material/TextField';
19
- import { useTheme } from '@mui/styles';
20
18
  import FormGroup from '@mui/material/FormGroup';
21
19
  import FormControlLabel from '@mui/material/FormControlLabel';
22
20
  import Checkbox from '@mui/material/Checkbox';
23
- import Select from '@mui/material/Select';
21
+ import { useTheme } from '@mui/styles';
22
+ import TextField$1 from '@mui/material/TextField';
24
23
  import MuiPhoneNumber from 'material-ui-phone-number';
24
+ import CircularProgress from '@mui/material/CircularProgress';
25
+ import Select from '@mui/material/Select';
25
26
  import { createTheme, ThemeProvider } from '@mui/material/styles';
26
27
  import Backdrop from '@mui/material/Backdrop';
27
28
  import Container from '@mui/material/Container';
28
- import CircularProgress$1 from '@mui/material/CircularProgress';
29
29
  import Alert$1 from '@mui/material/Alert';
30
30
  import { useStripe, useElements, CardNumberElement, CardExpiryElement, CardCvcElement, Elements } from '@stripe/react-stripe-js';
31
31
  import { loadStripe } from '@stripe/stripe-js';
@@ -53,6 +53,8 @@ import Paper from '@mui/material/Paper';
53
53
  import TablePagination from '@mui/material/TablePagination';
54
54
  import Autocomplete from '@mui/material/Autocomplete';
55
55
  import _has from 'lodash-es/has';
56
+ import { object, string, ref, boolean } from 'yup';
57
+ import Radio from '@mui/material/Radio';
56
58
 
57
59
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
58
60
  try {
@@ -1248,13 +1250,13 @@ var postOnCheckout = function postOnCheckout(data, accessToken) {
1248
1250
  return res;
1249
1251
  };
1250
1252
  var authorize = function authorize(data) {
1251
- return publicRequest.post("/v1/oauth/authorize-rn?client_id=" + (CONFIGS.CLIENT_ID || 'e9d8f8922797b4621e562255afe90dbf'), data);
1253
+ return publicRequest.post("v1/oauth/authorize-rn?client_id=" + (CONFIGS.CLIENT_ID || 'e9d8f8922797b4621e562255afe90dbf'), data);
1252
1254
  };
1253
1255
  var register = function register(data) {
1254
- return publicRequest.post('/v1/oauth/register-rn', data);
1256
+ return publicRequest.post('v1/oauth/register-rn', data);
1255
1257
  };
1256
1258
  var getAccessToken = function getAccessToken(data) {
1257
- return publicRequest.post('/v1/oauth/access_token', data);
1259
+ return publicRequest.post('v1/oauth/access_token', data);
1258
1260
  };
1259
1261
  var getPaymentData = function getPaymentData(hash) {
1260
1262
  var response = publicRequest.get("v1/order/" + hash + "/review/")["catch"](function (error) {
@@ -1287,28 +1289,38 @@ var getCountries = function getCountries() {
1287
1289
  return publicRequest.get('/countries/');
1288
1290
  };
1289
1291
  var getConfirmationData = function getConfirmationData(orderHash) {
1290
- return publicRequest.get("/v1/order/" + orderHash + "/payment/complete");
1292
+ return publicRequest.get("v1/order/" + orderHash + "/payment/complete");
1291
1293
  };
1292
1294
  var getStates = function getStates(countryId) {
1293
1295
  return publicRequest.get("/countries/" + countryId + "/states/");
1294
1296
  };
1295
1297
  var getOrders = function getOrders(page, limit, eventSlug) {
1296
- return publicRequest.get("/v1/account/orders/?page=" + page + "&limit=" + limit + "&filter[event]=" + eventSlug + "&filter[brand]=" + CONFIGS.BRAND_SLUG);
1298
+ return publicRequest.get("v1/account/orders/?page=" + page + "&limit=" + limit + "&filter[event]=" + eventSlug + "&filter[brand]=" + CONFIGS.BRAND_SLUG);
1297
1299
  };
1298
1300
  var getOrderDetails = function getOrderDetails(orderId) {
1299
- return publicRequest.get("/v1/account/order/" + orderId);
1301
+ return publicRequest.get("v1/account/order/" + orderId);
1300
1302
  };
1301
1303
  var addToWaitingList = function addToWaitingList(id, data) {
1302
- return publicRequest.post("/v1/event/" + id + "/add_to_waiting_list", data);
1304
+ return publicRequest.post("v1/event/" + id + "/add_to_waiting_list", data);
1303
1305
  };
1304
1306
  var getConditions = function getConditions(eventId) {
1305
1307
  return publicRequest.get("v1/event/" + eventId + "/conditions");
1308
+ }; // resale
1309
+
1310
+ var resaleTicket = function resaleTicket(data, hash) {
1311
+ return publicRequest.post("v1/ticket/" + hash + "/sell", data);
1312
+ };
1313
+ var removeFromResale = function removeFromResale(hash) {
1314
+ return publicRequest["delete"]("v1/ticket/" + hash + "/sell");
1306
1315
  };
1307
1316
  var postReferralVisits = function postReferralVisits(eventId, referralId) {
1308
- return publicRequest.post("/v1/event/" + eventId + "/referrer/", {
1317
+ return publicRequest.post("v1/event/" + eventId + "/referrer/", {
1309
1318
  referrer: "" + referralId
1310
1319
  });
1311
1320
  };
1321
+ var checkTicketStatus = function checkTicketStatus(hash) {
1322
+ return publicRequest.post("v1/ticket/" + hash + "/status/");
1323
+ };
1312
1324
 
1313
1325
  var style = {
1314
1326
  position: 'absolute',
@@ -1911,6 +1923,26 @@ var assingUniqueIds = function assingUniqueIds(data) {
1911
1923
  });
1912
1924
  };
1913
1925
 
1926
+ var _excluded$1 = ["label", "field", "selectOptions", "theme", "setFieldValue"];
1927
+ var CheckboxField = function CheckboxField(_ref) {
1928
+ var _rest$form, _field$name, _rest$form2, _field$name2;
1929
+
1930
+ var label = _ref.label,
1931
+ field = _ref.field,
1932
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1933
+
1934
+ var customTheme = useTheme();
1935
+ return React.createElement(FormControl, {
1936
+ error: !!(rest != null && (_rest$form = rest.form) != null && _rest$form.errors && rest.form.errors[(_field$name = field == null ? void 0 : field.name) != null ? _field$name : ""])
1937
+ }, React.createElement(FormGroup, null, React.createElement(FormControlLabel, {
1938
+ control: React.createElement(Checkbox, Object.assign({}, field, rest)),
1939
+ label: label,
1940
+ componentsProps: {
1941
+ typography: customTheme == null ? void 0 : customTheme.checkbox
1942
+ }
1943
+ })), !!(rest != null && (_rest$form2 = rest.form) != null && _rest$form2.errors && rest.form.errors[(_field$name2 = field == null ? void 0 : field.name) != null ? _field$name2 : ""]) ? React.createElement(FormHelperText, null, "Required") : null);
1944
+ };
1945
+
1914
1946
  var CustomField = function CustomField(_ref) {
1915
1947
  var label = _ref.label,
1916
1948
  _ref$type = _ref.type,
@@ -1960,76 +1992,6 @@ var CustomField = function CustomField(_ref) {
1960
1992
  }) : null);
1961
1993
  };
1962
1994
 
1963
- var _excluded$1 = ["label", "field", "selectOptions", "theme", "setFieldValue"];
1964
- var CheckboxField = function CheckboxField(_ref) {
1965
- var _rest$form, _field$name, _rest$form2, _field$name2;
1966
-
1967
- var label = _ref.label,
1968
- field = _ref.field,
1969
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1970
-
1971
- var customTheme = useTheme();
1972
- return React.createElement(FormControl, {
1973
- error: !!(rest != null && (_rest$form = rest.form) != null && _rest$form.errors && rest.form.errors[(_field$name = field == null ? void 0 : field.name) != null ? _field$name : ""])
1974
- }, React.createElement(FormGroup, null, React.createElement(FormControlLabel, {
1975
- control: React.createElement(Checkbox, Object.assign({}, field, rest)),
1976
- label: label,
1977
- componentsProps: {
1978
- typography: customTheme == null ? void 0 : customTheme.checkbox
1979
- }
1980
- })), !!(rest != null && (_rest$form2 = rest.form) != null && _rest$form2.errors && rest.form.errors[(_field$name2 = field == null ? void 0 : field.name) != null ? _field$name2 : ""]) ? React.createElement(FormHelperText, null, "Required") : null);
1981
- };
1982
-
1983
- var SelectField = function SelectField(_ref) {
1984
- var label = _ref.label,
1985
- _ref$type = _ref.type,
1986
- type = _ref$type === void 0 ? 'text' : _ref$type,
1987
- field = _ref.field,
1988
- _ref$selectOptions = _ref.selectOptions,
1989
- selectOptions = _ref$selectOptions === void 0 ? [] : _ref$selectOptions,
1990
- _ref$form = _ref.form,
1991
- touched = _ref$form.touched,
1992
- errors = _ref$form.errors,
1993
- theme = _ref.theme;
1994
- var isTouched = Boolean(_get(touched, field.name));
1995
-
1996
- var error = _get(errors, field.name);
1997
-
1998
- var customTheme = useTheme();
1999
- return React.createElement(FormControl, {
2000
- fullWidth: true
2001
- }, React.createElement(InputLabel, {
2002
- style: customTheme == null ? void 0 : customTheme.input,
2003
- htmlFor: field.name,
2004
- error: !!error && isTouched,
2005
- shrink: true
2006
- }, label), React.createElement(Select, Object.assign({
2007
- id: field.name,
2008
- label: label,
2009
- type: type,
2010
- fullWidth: true,
2011
- error: !!error && isTouched,
2012
- inputProps: {
2013
- id: field.name
2014
- },
2015
- "native": true,
2016
- className: theme,
2017
- MenuProps: {
2018
- className: theme
2019
- }
2020
- }, field, {
2021
- style: customTheme == null ? void 0 : customTheme.input
2022
- }), _map(selectOptions, function (option) {
2023
- return React.createElement("option", {
2024
- key: option.value,
2025
- value: option.value,
2026
- disabled: option.disabled
2027
- }, option.label);
2028
- })), isTouched && error ? React.createElement(FormHelperText, {
2029
- error: !!error && isTouched
2030
- }, error) : null);
2031
- };
2032
-
2033
1995
  var currencyNormalizerCreator = function currencyNormalizerCreator(value, currency) {
2034
1996
  return !value ? '' : "" + getCurrencySymbolByCurrency(currency) + value;
2035
1997
  };
@@ -2142,6 +2104,62 @@ var FormikPhoneNumberField = function FormikPhoneNumberField(_ref) {
2142
2104
  }, rest));
2143
2105
  };
2144
2106
 
2107
+ function Loader() {
2108
+ return React.createElement("div", {
2109
+ className: "loader-container"
2110
+ }, React.createElement(CircularProgress, null));
2111
+ }
2112
+
2113
+ var SelectField = function SelectField(_ref) {
2114
+ var label = _ref.label,
2115
+ _ref$type = _ref.type,
2116
+ type = _ref$type === void 0 ? 'text' : _ref$type,
2117
+ field = _ref.field,
2118
+ _ref$selectOptions = _ref.selectOptions,
2119
+ selectOptions = _ref$selectOptions === void 0 ? [] : _ref$selectOptions,
2120
+ _ref$form = _ref.form,
2121
+ touched = _ref$form.touched,
2122
+ errors = _ref$form.errors,
2123
+ theme = _ref.theme;
2124
+ var isTouched = Boolean(_get(touched, field.name));
2125
+
2126
+ var error = _get(errors, field.name);
2127
+
2128
+ var customTheme = useTheme();
2129
+ return React.createElement(FormControl, {
2130
+ fullWidth: true
2131
+ }, React.createElement(InputLabel, {
2132
+ style: customTheme == null ? void 0 : customTheme.input,
2133
+ htmlFor: field.name,
2134
+ error: !!error && isTouched,
2135
+ shrink: true
2136
+ }, label), React.createElement(Select, Object.assign({
2137
+ id: field.name,
2138
+ label: label,
2139
+ type: type,
2140
+ fullWidth: true,
2141
+ error: !!error && isTouched,
2142
+ inputProps: {
2143
+ id: field.name
2144
+ },
2145
+ "native": true,
2146
+ className: theme,
2147
+ MenuProps: {
2148
+ className: theme
2149
+ }
2150
+ }, field, {
2151
+ style: customTheme == null ? void 0 : customTheme.input
2152
+ }), _map(selectOptions, function (option) {
2153
+ return React.createElement("option", {
2154
+ key: option.value,
2155
+ value: option.value,
2156
+ disabled: option.disabled
2157
+ }, option.label);
2158
+ })), isTouched && error ? React.createElement(FormHelperText, {
2159
+ error: !!error && isTouched
2160
+ }, error) : null);
2161
+ };
2162
+
2145
2163
  var LogicRunner = function LogicRunner(_ref) {
2146
2164
  var values = _ref.values,
2147
2165
  setStates = _ref.setStates,
@@ -2661,7 +2679,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2661
2679
  color: '#fff'
2662
2680
  },
2663
2681
  open: true
2664
- }, React.createElement(CircularProgress, {
2682
+ }, React.createElement(CircularProgress$1, {
2665
2683
  color: "inherit"
2666
2684
  }));
2667
2685
  }
@@ -2949,7 +2967,7 @@ var BillingInfoContainer = function BillingInfoContainer(_ref3) {
2949
2967
  variant: "contained",
2950
2968
  className: "login-register-button",
2951
2969
  disabled: props.isSubmitting
2952
- }, props.isSubmitting ? React.createElement(CircularProgress, {
2970
+ }, props.isSubmitting ? React.createElement(CircularProgress$1, {
2953
2971
  size: 26
2954
2972
  }) : buttonName))));
2955
2973
  }), showModalLogin && React.createElement(LoginModal, {
@@ -3250,7 +3268,7 @@ var CheckoutForm = function CheckoutForm(_ref) {
3250
3268
  }, React.createElement("button", {
3251
3269
  disabled: buttonIsDiabled,
3252
3270
  type: "submit"
3253
- }, isLoading ? React.createElement(CircularProgress$1, {
3271
+ }, isLoading ? React.createElement(CircularProgress, {
3254
3272
  size: 26
3255
3273
  }) : "Pay " + getCurrencySymbolByCurrency(currency) + total))));
3256
3274
  };
@@ -3328,12 +3346,6 @@ var getStripePromise = function getStripePromise(reviewData) {
3328
3346
  return loadStripe(stripePublishableKey, options);
3329
3347
  };
3330
3348
 
3331
- function Loader() {
3332
- return React.createElement("div", {
3333
- className: "loader-container"
3334
- }, React.createElement(CircularProgress$1, null));
3335
- }
3336
-
3337
3349
  var initialOrderValues = {
3338
3350
  product_name: '',
3339
3351
  ticketType: '',
@@ -3643,7 +3655,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3643
3655
  onClick: function onClick() {
3644
3656
  handlePaymentMiddleWare(null);
3645
3657
  }
3646
- }, paymentIsLoading ? React.createElement(CircularProgress$1, {
3658
+ }, paymentIsLoading ? React.createElement(CircularProgress, {
3647
3659
  size: 26
3648
3660
  }) : "Complete Registration")))));
3649
3661
  };
@@ -4280,7 +4292,7 @@ var WaitingList = function WaitingList(_ref) {
4280
4292
  type: "submit",
4281
4293
  variant: "contained",
4282
4294
  className: "waiting-list-button"
4283
- }, loading ? React.createElement(CircularProgress$1, {
4295
+ }, loading ? React.createElement(CircularProgress, {
4284
4296
  size: "22px"
4285
4297
  }) : 'ADD TO WAITING LIST')))));
4286
4298
  };
@@ -4312,7 +4324,8 @@ var PromoCodeSection = function PromoCodeSection(_ref) {
4312
4324
  setPromoCode = _ref.setPromoCode,
4313
4325
  setPromoCodeUpdated = _ref.setPromoCodeUpdated,
4314
4326
  setShowPromoInput = _ref.setShowPromoInput,
4315
- isAccessCodeEnabled = _ref.isAccessCodeEnabled;
4327
+ isAccessCodeEnabled = _ref.isAccessCodeEnabled,
4328
+ isPromoLoading = _ref.isPromoLoading;
4316
4329
  var isPromoCodeHasValue = !!promoCode.trim();
4317
4330
 
4318
4331
  var renderInputField = function renderInputField() {
@@ -4345,7 +4358,7 @@ var PromoCodeSection = function PromoCodeSection(_ref) {
4345
4358
  }, isAccessCodeEnabled ? 'ENTER' : 'APPLY'));
4346
4359
  };
4347
4360
 
4348
- return React.createElement("div", null, promoCodeIsApplied ? React.createElement("div", {
4361
+ return isPromoLoading ? React.createElement(Loader, null) : React.createElement("div", null, promoCodeIsApplied ? React.createElement("div", {
4349
4362
  className: "alert-info"
4350
4363
  }, React.createElement(SVG, {
4351
4364
  src: getImage('done.svg'),
@@ -4482,12 +4495,6 @@ var ReferralLogic = function ReferralLogic(props) {
4482
4495
  return null;
4483
4496
  };
4484
4497
 
4485
- function Loader$1() {
4486
- return React.createElement("div", {
4487
- className: "loader-container"
4488
- }, React.createElement(CircularProgress$1, null));
4489
- }
4490
-
4491
4498
  var TicketsContainer = function TicketsContainer(_ref) {
4492
4499
  var onLoginSuccess = _ref.onLoginSuccess,
4493
4500
  getTicketsLabel = _ref.getTicketsLabel,
@@ -4546,24 +4553,28 @@ var TicketsContainer = function TicketsContainer(_ref) {
4546
4553
  setIsLoading = _useState6[1];
4547
4554
 
4548
4555
  var _useState7 = useState(false),
4549
- handleBookIsLoading = _useState7[0],
4550
- setHandleBookIsLoading = _useState7[1];
4556
+ isPromoLoading = _useState7[0],
4557
+ setIsPromoLoading = _useState7[1];
4551
4558
 
4552
- var _useState8 = useState(''),
4553
- promoCode = _useState8[0],
4554
- setPromoCode = _useState8[1];
4559
+ var _useState8 = useState(false),
4560
+ handleBookIsLoading = _useState8[0],
4561
+ setHandleBookIsLoading = _useState8[1];
4555
4562
 
4556
- var _useState9 = useState(getQueryVariable('r') || queryPromoCode),
4557
- promoCodeUpdated = _useState9[0],
4558
- setPromoCodeUpdated = _useState9[1];
4563
+ var _useState9 = useState(''),
4564
+ promoCode = _useState9[0],
4565
+ setPromoCode = _useState9[1];
4559
4566
 
4560
- var _useState10 = useState(false),
4561
- showPromoInput = _useState10[0],
4562
- setShowPromoInput = _useState10[1];
4567
+ var _useState10 = useState(getQueryVariable('r') || queryPromoCode),
4568
+ promoCodeUpdated = _useState10[0],
4569
+ setPromoCodeUpdated = _useState10[1];
4563
4570
 
4564
4571
  var _useState11 = useState(false),
4565
- promoCodeIsApplied = _useState11[0],
4566
- setPromoCodeIsApplied = _useState11[1];
4572
+ showPromoInput = _useState11[0],
4573
+ setShowPromoInput = _useState11[1];
4574
+
4575
+ var _useState12 = useState(false),
4576
+ promoCodeIsApplied = _useState12[0],
4577
+ setPromoCodeIsApplied = _useState12[1];
4567
4578
 
4568
4579
  useEffect(function () {
4569
4580
  if (typeof window !== 'undefined') {
@@ -4580,7 +4591,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4580
4591
  }
4581
4592
  }, []);
4582
4593
  useEffect(function () {
4583
- !!eventId && getTicketsApi();
4594
+ !!eventId && getTicketsApi(!!promoCodeUpdated);
4584
4595
  }, [eventId, promoCodeUpdated]);
4585
4596
 
4586
4597
  var handleLogout = function handleLogout() {
@@ -4612,12 +4623,12 @@ var TicketsContainer = function TicketsContainer(_ref) {
4612
4623
  }
4613
4624
  };
4614
4625
 
4615
- function getTicketsApi() {
4626
+ function getTicketsApi(_x) {
4616
4627
  return _getTicketsApi.apply(this, arguments);
4617
4628
  }
4618
4629
 
4619
4630
  function _getTicketsApi() {
4620
- _getTicketsApi = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2() {
4631
+ _getTicketsApi = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(isUpdateingPromoCode) {
4621
4632
  var response, eventResponse, attributes, _event2;
4622
4633
 
4623
4634
  return runtime_1.wrap(function _callee2$(_context2) {
@@ -4625,16 +4636,17 @@ var TicketsContainer = function TicketsContainer(_ref) {
4625
4636
  switch (_context2.prev = _context2.next) {
4626
4637
  case 0:
4627
4638
  _context2.prev = 0;
4628
- setIsLoading(true);
4629
- _context2.next = 4;
4639
+ !isUpdateingPromoCode && setIsLoading(true);
4640
+ setIsPromoLoading(true);
4641
+ _context2.next = 5;
4630
4642
  return getTickets(eventId, promoCodeUpdated);
4631
4643
 
4632
- case 4:
4644
+ case 5:
4633
4645
  response = _context2.sent;
4634
- _context2.next = 7;
4646
+ _context2.next = 8;
4635
4647
  return getEvent(eventId);
4636
4648
 
4637
- case 7:
4649
+ case 8:
4638
4650
  eventResponse = _context2.sent;
4639
4651
 
4640
4652
  if (response.data.success) {
@@ -4652,28 +4664,29 @@ var TicketsContainer = function TicketsContainer(_ref) {
4652
4664
  setEvent(_event2);
4653
4665
  }
4654
4666
 
4655
- _context2.next = 15;
4667
+ _context2.next = 16;
4656
4668
  break;
4657
4669
 
4658
- case 12:
4659
- _context2.prev = 12;
4670
+ case 13:
4671
+ _context2.prev = 13;
4660
4672
  _context2.t0 = _context2["catch"](0);
4661
4673
 
4662
4674
  if (axios.isAxiosError(_context2.t0)) {
4663
4675
  onGetTicketsError(_context2.t0);
4664
4676
  }
4665
4677
 
4666
- case 15:
4667
- _context2.prev = 15;
4678
+ case 16:
4679
+ _context2.prev = 16;
4668
4680
  setIsLoading(false);
4669
- return _context2.finish(15);
4681
+ setIsPromoLoading(false);
4682
+ return _context2.finish(16);
4670
4683
 
4671
- case 18:
4684
+ case 20:
4672
4685
  case "end":
4673
4686
  return _context2.stop();
4674
4687
  }
4675
4688
  }
4676
- }, _callee2, null, [[0, 12, 15, 18]]);
4689
+ }, _callee2, null, [[0, 13, 16, 20]]);
4677
4690
  }));
4678
4691
  return _getTicketsApi.apply(this, arguments);
4679
4692
  }
@@ -4831,7 +4844,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
4831
4844
  }), React.createElement("div", {
4832
4845
  className: "get-tickets-page " + theme,
4833
4846
  style: contentStyle
4834
- }, isLoading ? React.createElement(Loader$1, null) : React.createElement("div", null, React.createElement(TicketsSection, {
4847
+ }, isLoading ? React.createElement(Loader, null) : React.createElement("div", null, React.createElement(TicketsSection, {
4835
4848
  ticketsList: tickets,
4836
4849
  selectedTickets: selectedTickets,
4837
4850
  handleTicketSelect: handleTicketSelect,
@@ -4856,7 +4869,8 @@ var TicketsContainer = function TicketsContainer(_ref) {
4856
4869
  setShowPromoInput: setShowPromoInput,
4857
4870
  isPromotionsEnabled: isPromotionsEnabled,
4858
4871
  isAccessCodeEnabled: isAccessCodeEnabled,
4859
- isAllTicketsSoldOut: isAllTicketsSoldOut
4872
+ isAllTicketsSoldOut: isAllTicketsSoldOut,
4873
+ isPromoLoading: isPromoLoading
4860
4874
  }), (isTicketOnSale || !(event != null && event.salesEnded)) && React.createElement(Button$1, {
4861
4875
  "aria-hidden": true,
4862
4876
  className: "book-button " + (handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0 ? 'disabled' : ''),
@@ -5040,7 +5054,7 @@ var MyTicketsContainer = function MyTicketsContainer(_ref) {
5040
5054
  className: "my-ticket " + theme
5041
5055
  }, loading && React.createElement("div", {
5042
5056
  className: "loading"
5043
- }, React.createElement(CircularProgress$1, null)), data && React.createElement(React.Fragment, null, React.createElement(Autocomplete, {
5057
+ }, React.createElement(CircularProgress, null)), data && React.createElement(React.Fragment, null, React.createElement(Autocomplete, {
5044
5058
  disablePortal: true,
5045
5059
  id: "combo-box-demo",
5046
5060
  getOptionLabel: function getOptionLabel(option) {
@@ -5084,7 +5098,11 @@ var MyTicketsContainer = function MyTicketsContainer(_ref) {
5084
5098
 
5085
5099
  var TicketsTable = function TicketsTable(_ref) {
5086
5100
  var _ref$tickets = _ref.tickets,
5087
- tickets = _ref$tickets === void 0 ? [] : _ref$tickets;
5101
+ tickets = _ref$tickets === void 0 ? [] : _ref$tickets,
5102
+ _ref$handleSellTicket = _ref.handleSellTicket,
5103
+ handleSellTicket = _ref$handleSellTicket === void 0 ? function () {} : _ref$handleSellTicket,
5104
+ _ref$handleRemoveFrom = _ref.handleRemoveFromResale,
5105
+ handleRemoveFromResale = _ref$handleRemoveFrom === void 0 ? function () {} : _ref$handleRemoveFrom;
5088
5106
  return React.createElement("div", {
5089
5107
  className: "tickets-box"
5090
5108
  }, React.createElement("h4", {
@@ -5093,19 +5111,31 @@ var TicketsTable = function TicketsTable(_ref) {
5093
5111
  component: Paper
5094
5112
  }, React.createElement(Table, {
5095
5113
  "aria-label": "collapsible table"
5096
- }, React.createElement(TableHead, null, React.createElement(TableRow, null, React.createElement(TableCell, null, "Ticket ID"), React.createElement(TableCell, null, "Ticket Type"), React.createElement(TableCell, null, "Ticket Holder Name"), React.createElement(TableCell, null, "Status"), React.createElement(TableCell, null, "Download"))), React.createElement(TableBody, null, tickets.map(function (ticket, index) {
5114
+ }, React.createElement(TableHead, null, React.createElement(TableRow, null, React.createElement(TableCell, null, "Ticket ID"), React.createElement(TableCell, null, "Ticket Type"), React.createElement(TableCell, null, "Ticket Holder Name"), React.createElement(TableCell, null, "Status"), React.createElement(TableCell, null, "Download"), React.createElement(TableCell, null))), React.createElement(TableBody, null, tickets.map(function (ticket, index) {
5097
5115
  var _ticket$add_ons;
5098
5116
 
5099
5117
  return React.createElement(Fragment, {
5100
5118
  key: index
5101
5119
  }, React.createElement(TableRow, null, React.createElement(TableCell, null, ticket.hash), React.createElement(TableCell, null, ticket.ticket_type), React.createElement(TableCell, null, ticket.holder_name), React.createElement(TableCell, null, ticket.status), React.createElement(TableCell, null, React.createElement("span", {
5102
5120
  "aria-hidden": true,
5103
- className: "download-button",
5121
+ className: "action-button",
5104
5122
  onClick: function onClick() {
5105
5123
  return downloadPDF(ticket.pdf_link);
5106
5124
  }
5107
- }, "Download"))), !!((_ticket$add_ons = ticket.add_ons) != null && _ticket$add_ons.length) && React.createElement(TableRow, null, React.createElement(TableCell, {
5108
- colSpan: 5
5125
+ }, "Download")), React.createElement(TableCell, null, ticket.is_sellable && React.createElement("span", {
5126
+ "aria-hidden": true,
5127
+ className: "action-button",
5128
+ onClick: function onClick() {
5129
+ return handleSellTicket(ticket);
5130
+ }
5131
+ }, "Sell Ticket"), ticket.is_on_sale && React.createElement("span", {
5132
+ "aria-hidden": true,
5133
+ className: "action-button",
5134
+ onClick: function onClick() {
5135
+ return handleRemoveFromResale(ticket);
5136
+ }
5137
+ }, "Remove from Resale"))), !!((_ticket$add_ons = ticket.add_ons) != null && _ticket$add_ons.length) && React.createElement(TableRow, null, React.createElement(TableCell, {
5138
+ colSpan: 6
5109
5139
  }, React.createElement(Table, {
5110
5140
  className: "ticket-add-on-table"
5111
5141
  }, React.createElement(TableHead, null, React.createElement(TableRow, null, React.createElement(TableCell, null, "Add-On"), React.createElement(TableCell, null, "Status"))), React.createElement(TableBody, null, ticket.add_ons.map(function (add_on, index) {
@@ -5116,13 +5146,220 @@ var TicketsTable = function TicketsTable(_ref) {
5116
5146
  })))));
5117
5147
  };
5118
5148
 
5149
+ var _excluded$3 = ["label", "field", "theme"];
5150
+ var RadioField = function RadioField(_ref) {
5151
+ var label = _ref.label,
5152
+ field = _ref.field,
5153
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
5154
+
5155
+ var customTheme = useTheme();
5156
+ return React.createElement(FormGroup, null, React.createElement(FormControlLabel, {
5157
+ control: React.createElement(Radio, Object.assign({}, field, rest)),
5158
+ label: label,
5159
+ componentsProps: {
5160
+ typography: customTheme == null ? void 0 : customTheme.checkbox
5161
+ }
5162
+ }));
5163
+ };
5164
+
5165
+ var style$1 = {
5166
+ position: 'absolute',
5167
+ top: '50%',
5168
+ left: '50%',
5169
+ transform: 'translate(-50%, -50%)',
5170
+ minWidth: 480,
5171
+ backgroundColor: '#e3e3e3',
5172
+ border: '1px solid white',
5173
+ outline: 'none',
5174
+ padding: '14px',
5175
+ maxHeight: '85vh',
5176
+ overflow: 'auto'
5177
+ };
5178
+ var schema = /*#__PURE__*/object().shape({
5179
+ to: /*#__PURE__*/string().required(),
5180
+ first_name: /*#__PURE__*/string().when('to', {
5181
+ is: function is(to) {
5182
+ return to === 'friend';
5183
+ },
5184
+ then: /*#__PURE__*/string().required('First Name is required')
5185
+ }),
5186
+ last_name: /*#__PURE__*/string().when('to', {
5187
+ is: function is(to) {
5188
+ return to === 'friend';
5189
+ },
5190
+ then: /*#__PURE__*/string().required('Last Name is required')
5191
+ }),
5192
+ email: /*#__PURE__*/string().when('to', {
5193
+ is: function is(to) {
5194
+ return to === 'friend';
5195
+ },
5196
+ then: /*#__PURE__*/string().email('Invalid email').required('Email is required')
5197
+ }),
5198
+ confirm_email: /*#__PURE__*/string().when('to', {
5199
+ is: function is(to) {
5200
+ return to === 'friend';
5201
+ },
5202
+ then: /*#__PURE__*/string().email('Invalid email').oneOf([ref('email'), null], 'Emails must match').required('Confirm Email is required')
5203
+ }),
5204
+ confirm: /*#__PURE__*/boolean().oneOf([true])
5205
+ });
5206
+ var initialValues = {
5207
+ to: 'friend',
5208
+ first_name: '',
5209
+ last_name: '',
5210
+ email: '',
5211
+ confirm_email: '',
5212
+ confirm: false
5213
+ };
5214
+ var TicketResaleModal = function TicketResaleModal(_ref) {
5215
+ var _ref$ticket = _ref.ticket,
5216
+ ticket = _ref$ticket === void 0 ? {} : _ref$ticket,
5217
+ _ref$onClose = _ref.onClose,
5218
+ onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,
5219
+ _ref$onSubmit = _ref.onSubmit,
5220
+ onSubmit = _ref$onSubmit === void 0 ? function () {} : _ref$onSubmit;
5221
+ var hash = ticket.hash,
5222
+ holder_name = ticket.holder_name,
5223
+ event_name = ticket.event_name,
5224
+ currency = ticket.currency,
5225
+ resale_fee_amount = ticket.resale_fee_amount;
5226
+ return React.createElement(Modal, {
5227
+ open: true,
5228
+ onClose: onClose,
5229
+ "aria-labelledby": "modal-modal-title",
5230
+ "aria-describedby": "modal-modal-description",
5231
+ className: 'resale-modal'
5232
+ }, React.createElement(Box, {
5233
+ style: style$1
5234
+ }, React.createElement("h3", null, "Sell Ticket"), React.createElement("div", null, React.createElement("h3", null, "Ticket Details"), React.createElement("div", null, React.createElement("h4", null, "Event"), React.createElement("p", null, event_name)), React.createElement("div", null, React.createElement("h4", null, "Ticket Holder"), React.createElement("p", null, holder_name)), React.createElement("div", null, React.createElement("h4", null, "Ticket ID"), React.createElement("p", null, hash))), React.createElement("div", null, React.createElement("h3", null, "Sell to Whom"), React.createElement(Formik, {
5235
+ initialValues: initialValues,
5236
+ validationSchema: schema,
5237
+ onSubmit: onSubmit
5238
+ }, function (_ref2) {
5239
+ var values = _ref2.values,
5240
+ isValid = _ref2.isValid,
5241
+ dirty = _ref2.dirty;
5242
+ return React.createElement(Form, null, React.createElement("div", null, React.createElement(Field, {
5243
+ name: 'to',
5244
+ label: 'I want to sell the ticket to someone I know',
5245
+ type: 'radio',
5246
+ value: 'friend',
5247
+ component: RadioField
5248
+ }), values.to === 'friend' && React.createElement("div", {
5249
+ className: 'sell-to-friend'
5250
+ }, React.createElement("div", {
5251
+ className: 'user-info-box'
5252
+ }, React.createElement("div", {
5253
+ className: 'field-box'
5254
+ }, React.createElement("div", {
5255
+ className: 'icon'
5256
+ }, React.createElement(SVG, {
5257
+ src: getImage('user.svg'),
5258
+ width: '24',
5259
+ height: '24'
5260
+ })), React.createElement(Field, {
5261
+ name: 'first_name',
5262
+ label: 'First Name',
5263
+ type: 'text',
5264
+ component: CustomField
5265
+ })), React.createElement("div", {
5266
+ className: 'field-box'
5267
+ }, React.createElement("div", {
5268
+ className: 'empty-box'
5269
+ }), React.createElement(Field, {
5270
+ name: 'last_name',
5271
+ label: 'Last Name',
5272
+ type: 'text',
5273
+ component: CustomField
5274
+ }))), React.createElement("div", {
5275
+ className: 'email-info-box'
5276
+ }, React.createElement("div", {
5277
+ className: 'field-box'
5278
+ }, React.createElement("div", {
5279
+ className: 'icon'
5280
+ }, React.createElement(SVG, {
5281
+ src: getImage('email.svg'),
5282
+ width: '24',
5283
+ height: '24'
5284
+ })), React.createElement(Field, {
5285
+ name: 'email',
5286
+ label: 'Email address',
5287
+ type: 'text',
5288
+ component: CustomField
5289
+ })), React.createElement("div", {
5290
+ className: 'field-box'
5291
+ }, React.createElement("div", {
5292
+ className: 'empty-box'
5293
+ }), React.createElement(Field, {
5294
+ name: 'confirm_email',
5295
+ label: 'Confirm Email address',
5296
+ type: 'text',
5297
+ component: CustomField
5298
+ }))))), React.createElement("div", null, React.createElement(Field, {
5299
+ name: 'to',
5300
+ label: 'I will sell my ticket to anyone who wants to buy it',
5301
+ type: 'radio',
5302
+ value: 'anyone',
5303
+ component: RadioField
5304
+ })), React.createElement("div", null, React.createElement("h4", null, "Terms of Resale"), React.createElement("p", null, "I confirm that I want to sell this ticket and that, if someone chooses to buy it, I will no longer own it or have the right to ask for it back."), React.createElement("p", null, "I also understand that, if no one chooses to buy it, it remains my property, is valid for entry to ", React.createElement("strong", null, event_name), " and I will not receive any refund."), React.createElement("p", null, "If my ticket is sold, the original card I used to buy my ticket will be refunded with the original amount paid, minus a small handling fee of ", React.createElement("strong", null, currency + resale_fee_amount), ", and that any existing refunds due to me for referring sales for this event are no longer valid."), React.createElement(Field, {
5305
+ name: 'confirm',
5306
+ label: 'I agree',
5307
+ type: 'checkbox',
5308
+ component: CheckboxField
5309
+ })), React.createElement("div", {
5310
+ className: "resale-action-button"
5311
+ }, React.createElement(Button, {
5312
+ type: "submit",
5313
+ disabled: !(isValid && dirty)
5314
+ }, "Sell Ticket")));
5315
+ }))));
5316
+ };
5317
+
5318
+ var style$2 = {
5319
+ position: 'absolute',
5320
+ top: '50%',
5321
+ left: '50%',
5322
+ transform: 'translate(-50%, -50%)',
5323
+ minWidth: 480,
5324
+ backgroundColor: '#e3e3e3',
5325
+ border: '1px solid white',
5326
+ outline: 'none',
5327
+ padding: '14px',
5328
+ maxHeight: '85vh',
5329
+ overflow: 'auto'
5330
+ };
5331
+
5332
+ var ConfirmModal = function ConfirmModal(_ref) {
5333
+ var _ref$message = _ref.message,
5334
+ message = _ref$message === void 0 ? '' : _ref$message,
5335
+ _ref$onClose = _ref.onClose,
5336
+ onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,
5337
+ _ref$onConfirm = _ref.onConfirm,
5338
+ onConfirm = _ref$onConfirm === void 0 ? function () {} : _ref$onConfirm;
5339
+ return React.createElement(Modal, {
5340
+ open: true,
5341
+ onClose: onClose,
5342
+ "aria-labelledby": "modal-modal-title",
5343
+ "aria-describedby": "modal-modal-description",
5344
+ className: 'confirm-modal'
5345
+ }, React.createElement(Box, {
5346
+ style: style$2
5347
+ }, React.createElement("p", null, message), React.createElement("div", {
5348
+ className: 'footer'
5349
+ }, React.createElement(Button, {
5350
+ onClick: onClose
5351
+ }, "Cancel"), React.createElement(Button, {
5352
+ onClick: onConfirm
5353
+ }, "OK"))));
5354
+ };
5355
+
5119
5356
  var getTotal = function getTotal(data) {
5120
5357
  if (!(data != null && data.total) || !_has(data, 'items.ticket_types.length')) return '';
5121
5358
  return data.items.ticket_types[0].currency + data.total;
5122
5359
  };
5123
5360
 
5124
5361
  var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
5125
- var _data$items$ticket_ty, _data$items$add_ons;
5362
+ var _data$items, _data$items$ticket_ty, _data$items2, _data$items2$add_ons;
5126
5363
 
5127
5364
  var _ref$onGetOrdersSucce = _ref.onGetOrdersSuccess,
5128
5365
  onGetOrdersSuccess = _ref$onGetOrdersSucce === void 0 ? function () {} : _ref$onGetOrdersSucce,
@@ -5137,6 +5374,18 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
5137
5374
  loading = _useState2[0],
5138
5375
  setLoading = _useState2[1];
5139
5376
 
5377
+ var _useState3 = useState(false),
5378
+ showResaleModal = _useState3[0],
5379
+ setShowResaleModal = _useState3[1];
5380
+
5381
+ var _useState4 = useState(false),
5382
+ showRemoveResaleModal = _useState4[0],
5383
+ setShowRemoveResaleModal = _useState4[1];
5384
+
5385
+ var _useState5 = useState(null),
5386
+ activeTicket = _useState5[0],
5387
+ setActiveTicket = _useState5[1];
5388
+
5140
5389
  useEffect(function () {
5141
5390
  _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
5142
5391
  var orderId, params, response, _data;
@@ -5183,11 +5432,136 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
5183
5432
  }, _callee, null, [[0, 12, 15, 18]]);
5184
5433
  }))();
5185
5434
  }, []);
5435
+
5436
+ var handleSellTicket = function handleSellTicket(ticket) {
5437
+ setActiveTicket(ticket);
5438
+ setShowResaleModal(true);
5439
+ };
5440
+
5441
+ var handleOnClose = function handleOnClose() {
5442
+ setShowResaleModal(false);
5443
+ setActiveTicket(null);
5444
+ };
5445
+
5446
+ var handleOnSubmit = /*#__PURE__*/function () {
5447
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(values) {
5448
+ var _updatedData$tickets, to, first_name, last_name, email, confirm_email, confirm, formData, updatedData;
5449
+
5450
+ return runtime_1.wrap(function _callee2$(_context2) {
5451
+ while (1) {
5452
+ switch (_context2.prev = _context2.next) {
5453
+ case 0:
5454
+ _context2.prev = 0;
5455
+ setLoading(true);
5456
+ to = values.to, first_name = values.first_name, last_name = values.last_name, email = values.email, confirm_email = values.confirm_email, confirm = values.confirm;
5457
+ formData = new FormData();
5458
+ formData.append('to', to);
5459
+ formData.append('first_name', first_name);
5460
+ formData.append('last_name', last_name);
5461
+ formData.append('email', email);
5462
+ formData.append('confirm_email', confirm_email);
5463
+ formData.append('confirm', String(confirm));
5464
+ _context2.next = 12;
5465
+ return resaleTicket(formData, activeTicket.hash);
5466
+
5467
+ case 12:
5468
+ updatedData = _extends({}, data);
5469
+ updatedData == null ? void 0 : (_updatedData$tickets = updatedData.tickets) == null ? void 0 : _updatedData$tickets.forEach(function (ticket) {
5470
+ if (ticket.hash === activeTicket.hash) {
5471
+ ticket.is_sellable = false;
5472
+ ticket.is_on_sale = true;
5473
+ }
5474
+ });
5475
+ setData(updatedData);
5476
+ _context2.next = 19;
5477
+ break;
5478
+
5479
+ case 17:
5480
+ _context2.prev = 17;
5481
+ _context2.t0 = _context2["catch"](0);
5482
+
5483
+ case 19:
5484
+ _context2.prev = 19;
5485
+ setShowResaleModal(false);
5486
+ setLoading(false);
5487
+ return _context2.finish(19);
5488
+
5489
+ case 23:
5490
+ case "end":
5491
+ return _context2.stop();
5492
+ }
5493
+ }
5494
+ }, _callee2, null, [[0, 17, 19, 23]]);
5495
+ }));
5496
+
5497
+ return function handleOnSubmit(_x) {
5498
+ return _ref3.apply(this, arguments);
5499
+ };
5500
+ }();
5501
+
5502
+ var handleRemoveFromResale = function handleRemoveFromResale(ticket) {
5503
+ setShowRemoveResaleModal(true);
5504
+ setActiveTicket(ticket);
5505
+ };
5506
+
5507
+ var onCloseRemoveResale = function onCloseRemoveResale() {
5508
+ setShowRemoveResaleModal(false);
5509
+ setActiveTicket(null);
5510
+ };
5511
+
5512
+ var onConfirmRemoveResale = /*#__PURE__*/function () {
5513
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3() {
5514
+ var _updatedData$tickets2, updatedData;
5515
+
5516
+ return runtime_1.wrap(function _callee3$(_context3) {
5517
+ while (1) {
5518
+ switch (_context3.prev = _context3.next) {
5519
+ case 0:
5520
+ _context3.prev = 0;
5521
+ setLoading(true);
5522
+ _context3.next = 4;
5523
+ return removeFromResale(activeTicket.hash);
5524
+
5525
+ case 4:
5526
+ updatedData = _extends({}, data);
5527
+ updatedData == null ? void 0 : (_updatedData$tickets2 = updatedData.tickets) == null ? void 0 : _updatedData$tickets2.forEach(function (ticket) {
5528
+ if (ticket.hash === activeTicket.hash) {
5529
+ ticket.is_sellable = true;
5530
+ ticket.is_on_sale = false;
5531
+ }
5532
+ });
5533
+ setData(updatedData);
5534
+ _context3.next = 11;
5535
+ break;
5536
+
5537
+ case 9:
5538
+ _context3.prev = 9;
5539
+ _context3.t0 = _context3["catch"](0);
5540
+
5541
+ case 11:
5542
+ _context3.prev = 11;
5543
+ setShowRemoveResaleModal(false);
5544
+ setLoading(false);
5545
+ return _context3.finish(11);
5546
+
5547
+ case 15:
5548
+ case "end":
5549
+ return _context3.stop();
5550
+ }
5551
+ }
5552
+ }, _callee3, null, [[0, 9, 11, 15]]);
5553
+ }));
5554
+
5555
+ return function onConfirmRemoveResale() {
5556
+ return _ref4.apply(this, arguments);
5557
+ };
5558
+ }();
5559
+
5186
5560
  return React.createElement("div", {
5187
5561
  className: "order-details"
5188
5562
  }, loading ? React.createElement("div", {
5189
5563
  className: "loading"
5190
- }, React.createElement(CircularProgress$1, null)) : React.createElement(React.Fragment, null, React.createElement("h1", {
5564
+ }, React.createElement(CircularProgress, null)) : React.createElement(React.Fragment, null, React.createElement("h1", {
5191
5565
  className: "layout-title"
5192
5566
  }, "Order Details"), React.createElement("div", {
5193
5567
  className: "order-summary-box"
@@ -5203,18 +5577,20 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
5203
5577
  component: Paper
5204
5578
  }, React.createElement(Table, {
5205
5579
  "aria-label": "collapsible table"
5206
- }, React.createElement(TableHead, null, React.createElement(TableRow, null, React.createElement(TableCell, null, "Items"), React.createElement(TableCell, null, "Price"), React.createElement(TableCell, null, "Quantity"), React.createElement(TableCell, null, "Total"))), React.createElement(TableBody, null, data == null ? void 0 : (_data$items$ticket_ty = data.items.ticket_types) == null ? void 0 : _data$items$ticket_ty.map(function (ticket, index) {
5580
+ }, React.createElement(TableHead, null, React.createElement(TableRow, null, React.createElement(TableCell, null, "Items"), React.createElement(TableCell, null, "Price"), React.createElement(TableCell, null, "Quantity"), React.createElement(TableCell, null, "Total"))), React.createElement(TableBody, null, data == null ? void 0 : (_data$items = data.items) == null ? void 0 : (_data$items$ticket_ty = _data$items.ticket_types) == null ? void 0 : _data$items$ticket_ty.map(function (ticket, index) {
5207
5581
  return React.createElement(TableRow, {
5208
5582
  key: index
5209
5583
  }, React.createElement(TableCell, null, React.createElement("b", null, "Ticket Type: "), ticket.name), React.createElement(TableCell, null, ticket.currency + ticket.price), React.createElement(TableCell, null, ticket.quantity), React.createElement(TableCell, null, ticket.currency + ticket.total));
5210
- }), data == null ? void 0 : (_data$items$add_ons = data.items.add_ons) == null ? void 0 : _data$items$add_ons.map(function (ticket, index) {
5584
+ }), data == null ? void 0 : (_data$items2 = data.items) == null ? void 0 : (_data$items2$add_ons = _data$items2.add_ons) == null ? void 0 : _data$items2$add_ons.map(function (ticket, index) {
5211
5585
  return React.createElement(TableRow, {
5212
5586
  key: index
5213
5587
  }, React.createElement(TableCell, null, React.createElement("b", null, "Add-On: "), ticket.name), React.createElement(TableCell, null, ticket.currency + ticket.price), React.createElement(TableCell, null, ticket.quantity), React.createElement(TableCell, null, ticket.currency + ticket.total));
5214
5588
  }), React.createElement(TableRow, {
5215
5589
  className: "total-row"
5216
5590
  }, React.createElement(TableCell, null), React.createElement(TableCell, null), React.createElement(TableCell, null, "Total"), React.createElement(TableCell, null, getTotal(data))))))), React.createElement(TicketsTable, {
5217
- tickets: data.tickets
5591
+ tickets: data.tickets,
5592
+ handleSellTicket: handleSellTicket,
5593
+ handleRemoveFromResale: handleRemoveFromResale
5218
5594
  }), React.createElement("div", {
5219
5595
  className: "return-button-container"
5220
5596
  }, React.createElement("button", {
@@ -5225,8 +5601,93 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
5225
5601
  window.location.assign('/orders');
5226
5602
  }
5227
5603
  }
5228
- }, "Return to Order History"))));
5604
+ }, "Return to Order History"))), showResaleModal && React.createElement(TicketResaleModal, {
5605
+ ticket: activeTicket,
5606
+ onClose: handleOnClose,
5607
+ onSubmit: handleOnSubmit
5608
+ }), showRemoveResaleModal && React.createElement(ConfirmModal, {
5609
+ message: "Are you sure you want to withdraw your ticket from resale?",
5610
+ onClose: onCloseRemoveResale,
5611
+ onConfirm: onConfirmRemoveResale
5612
+ }));
5613
+ };
5614
+
5615
+ var TicketResaleContainer = function TicketResaleContainer(_ref) {
5616
+ var _ref$onCheckTicketSta = _ref.onCheckTicketStatusSuccess,
5617
+ onCheckTicketStatusSuccess = _ref$onCheckTicketSta === void 0 ? function () {} : _ref$onCheckTicketSta,
5618
+ _ref$onCheckTicketSta2 = _ref.onCheckTicketStatusError,
5619
+ onCheckTicketStatusError = _ref$onCheckTicketSta2 === void 0 ? function () {} : _ref$onCheckTicketSta2,
5620
+ orderHash = _ref.orderHash;
5621
+ var isWindowDefined = typeof window !== 'undefined';
5622
+
5623
+ var _useState = useState(null),
5624
+ error = _useState[0],
5625
+ setError = _useState[1];
5626
+
5627
+ useEffect(function () {
5628
+ _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
5629
+ var params, hash, response, data, age_required, names_required, event_id, _error$response, _error$response$data;
5630
+
5631
+ return runtime_1.wrap(function _callee$(_context) {
5632
+ while (1) {
5633
+ switch (_context.prev = _context.next) {
5634
+ case 0:
5635
+ if (!isWindowDefined) {
5636
+ _context.next = 24;
5637
+ break;
5638
+ }
5639
+
5640
+ params = new URL("" + window.location).searchParams;
5641
+ hash = params.get('o') || orderHash || null;
5642
+
5643
+ if (!hash) {
5644
+ _context.next = 23;
5645
+ break;
5646
+ }
5647
+
5648
+ _context.prev = 4;
5649
+ _context.next = 7;
5650
+ return checkTicketStatus(hash);
5651
+
5652
+ case 7:
5653
+ response = _context.sent;
5654
+ data = _get(response, 'data.data.attributes');
5655
+ age_required = _get(data, 'age_required', false);
5656
+ names_required = _get(data, 'names_required', false);
5657
+ event_id = _get(data, 'event_id');
5658
+ onCheckTicketStatusSuccess(response.data);
5659
+ window.location.href = "/billing/billing-info/?age_required=" + age_required + "&names_required=" + names_required + "&event_id=" + event_id;
5660
+ _context.next = 21;
5661
+ break;
5662
+
5663
+ case 16:
5664
+ _context.prev = 16;
5665
+ _context.t0 = _context["catch"](4);
5666
+ console.log(_context.t0);
5667
+ 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);
5668
+ onCheckTicketStatusError(_context.t0.response);
5669
+
5670
+ case 21:
5671
+ _context.next = 24;
5672
+ break;
5673
+
5674
+ case 23:
5675
+ window.location.href = '/';
5676
+
5677
+ case 24:
5678
+ case "end":
5679
+ return _context.stop();
5680
+ }
5681
+ }
5682
+ }, _callee, null, [[4, 16]]);
5683
+ }))();
5684
+ }, []);
5685
+ return React.createElement("div", {
5686
+ className: "ticket-resale-page"
5687
+ }, React.createElement("div", {
5688
+ className: "error-block"
5689
+ }, React.createElement("h3", null, error)));
5229
5690
  };
5230
5691
 
5231
- export { BillingInfoContainer, ConfirmationContainer, LoginModal, MyTicketsContainer, OrderDetailsContainer, PaymentContainer, TicketsContainer, createFixedFloatNormalizer, currencyNormalizerCreator, setConfigs };
5692
+ export { BillingInfoContainer, ConfirmationContainer, LoginModal, MyTicketsContainer, OrderDetailsContainer, PaymentContainer, TicketResaleContainer, TicketsContainer, createFixedFloatNormalizer, currencyNormalizerCreator, setConfigs };
5232
5693
  //# sourceMappingURL=tf-checkout-react.esm.js.map