tf-checkout-react 1.0.62 → 1.0.63

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.
package/dist/index.d.ts CHANGED
@@ -2,5 +2,7 @@ export { BillingInfoContainer } from './components/billing-info-container/index'
2
2
  export { PaymentContainer } from './components/paymentContainer/index';
3
3
  export { ConfirmationContainer } from './components/confirmationContainer/index';
4
4
  export { TicketsContainer } from './components/ticketsContainer/index';
5
- export { currencyNormalizerCreator, createFixedFloatNormalizer } from './normalizers';
5
+ export { currencyNormalizerCreator, createFixedFloatNormalizer, } from './normalizers';
6
6
  export { LoginModal } from './components/loginModal';
7
+ export { MyTicketsContainer } from './components/myTicketsContainer';
8
+ export { OrderDetailsContainer } from './components/orderDetailsContainer';
@@ -42,6 +42,15 @@ var _has = _interopDefault(require('lodash/has'));
42
42
  var FormControl = _interopDefault(require('@mui/material/FormControl'));
43
43
  var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
44
44
  var Button$1 = _interopDefault(require('@mui/material/Button'));
45
+ var Table = _interopDefault(require('@mui/material/Table'));
46
+ var TableBody = _interopDefault(require('@mui/material/TableBody'));
47
+ var TableCell = _interopDefault(require('@mui/material/TableCell'));
48
+ var TableContainer = _interopDefault(require('@mui/material/TableContainer'));
49
+ var TableHead = _interopDefault(require('@mui/material/TableHead'));
50
+ var TableRow = _interopDefault(require('@mui/material/TableRow'));
51
+ var Paper = _interopDefault(require('@mui/material/Paper'));
52
+ var TablePagination = _interopDefault(require('@mui/material/TablePagination'));
53
+ var Autocomplete = _interopDefault(require('@mui/material/Autocomplete'));
45
54
 
46
55
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
47
56
  try {
@@ -1089,6 +1098,12 @@ var getConfirmationData = function getConfirmationData(orderHash) {
1089
1098
  var getStates = function getStates(countryId) {
1090
1099
  return publicRequest.get("/countries/" + countryId + "/states/");
1091
1100
  };
1101
+ var getOrders = function getOrders(page, limit, eventSlug) {
1102
+ return publicRequest.get("/v1/account/orders/?page=" + page + "&limit=" + limit + "&filter[event]=" + eventSlug);
1103
+ };
1104
+ var getOrderDetails = function getOrderDetails(orderId) {
1105
+ return publicRequest.get("/v1/account/order/" + orderId);
1106
+ };
1092
1107
  var addToWaitingList = function addToWaitingList(id, data) {
1093
1108
  return publicRequest.post("/v1/event/" + id + "/add_to_waiting_list", data);
1094
1109
  };
@@ -3883,9 +3898,336 @@ var TicketsContainer = function TicketsContainer(_ref) {
3883
3898
  }, getTicketsLabel || 'GET TICKETS'))));
3884
3899
  };
3885
3900
 
3901
+ var EventInfoItem = function EventInfoItem(_ref) {
3902
+ var image = _ref.image,
3903
+ name = _ref.name;
3904
+ return React__default.createElement("div", {
3905
+ className: 'event-info'
3906
+ }, React__default.createElement("img", {
3907
+ src: image,
3908
+ alt: "event"
3909
+ }), name);
3910
+ };
3911
+
3912
+ var tableConfig = function tableConfig(key) {
3913
+ var config;
3914
+
3915
+ switch (key) {
3916
+ default:
3917
+ config = {
3918
+ header: ['Order No.', 'Date', 'Event', 'Total'],
3919
+ body: [function (row) {
3920
+ return row.id;
3921
+ }, function (row) {
3922
+ return row.date;
3923
+ }, function (row) {
3924
+ return React__default.createElement(EventInfoItem, {
3925
+ image: row.image,
3926
+ name: row.eventName
3927
+ });
3928
+ }, function (row) {
3929
+ return row.currency + row.amount;
3930
+ }]
3931
+ };
3932
+ }
3933
+
3934
+ return config;
3935
+ };
3936
+
3937
+ var Row = function Row(_ref) {
3938
+ var row = _ref.row,
3939
+ handleDetailsInfo = _ref.handleDetailsInfo;
3940
+ return React__default.createElement(TableRow, {
3941
+ sx: {
3942
+ '& > *': {
3943
+ borderBottom: 'unset'
3944
+ }
3945
+ }
3946
+ }, tableConfig().body.map(function (column, index) {
3947
+ return React__default.createElement(TableCell, {
3948
+ component: "th",
3949
+ scope: "row",
3950
+ key: index
3951
+ }, column(row));
3952
+ }), React__default.createElement(TableCell, {
3953
+ component: "th",
3954
+ scope: "row"
3955
+ }, React__default.createElement("button", {
3956
+ type: 'button',
3957
+ className: "order-details-button",
3958
+ onClick: function onClick() {
3959
+ return handleDetailsInfo(row.id);
3960
+ }
3961
+ }, "Details")));
3962
+ };
3963
+
3964
+ var MyTicketsContainer = function MyTicketsContainer(_ref) {
3965
+ var _data$orders;
3966
+
3967
+ var _ref$handleDetailsInf = _ref.handleDetailsInfo,
3968
+ handleDetailsInfo = _ref$handleDetailsInf === void 0 ? function () {} : _ref$handleDetailsInf,
3969
+ _ref$onGetOrdersSucce = _ref.onGetOrdersSuccess,
3970
+ onGetOrdersSuccess = _ref$onGetOrdersSucce === void 0 ? function () {} : _ref$onGetOrdersSucce,
3971
+ _ref$onGetOrdersError = _ref.onGetOrdersError,
3972
+ onGetOrdersError = _ref$onGetOrdersError === void 0 ? function () {} : _ref$onGetOrdersError;
3973
+
3974
+ var _useState = React.useState(null),
3975
+ data = _useState[0],
3976
+ setData = _useState[1];
3977
+
3978
+ var _useState2 = React.useState(true),
3979
+ loading = _useState2[0],
3980
+ setLoading = _useState2[1];
3981
+
3982
+ var _useState3 = React.useState(10),
3983
+ limit = _useState3[0],
3984
+ setLimit = _useState3[1];
3985
+
3986
+ var _useState4 = React.useState(''),
3987
+ filter = _useState4[0],
3988
+ setFilter = _useState4[1]; //just once
3989
+
3990
+
3991
+ React.useEffect(function () {
3992
+ fetchData(1, limit, filter);
3993
+ }, []);
3994
+
3995
+ var fetchData = /*#__PURE__*/function () {
3996
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(page, limit, filter) {
3997
+ var response, _data;
3998
+
3999
+ return runtime_1.wrap(function _callee$(_context) {
4000
+ while (1) {
4001
+ switch (_context.prev = _context.next) {
4002
+ case 0:
4003
+ _context.prev = 0;
4004
+ setLoading(true);
4005
+ _context.next = 4;
4006
+ return getOrders(page, limit, filter);
4007
+
4008
+ case 4:
4009
+ response = _context.sent;
4010
+ onGetOrdersSuccess(response);
4011
+ _data = _get(response, 'data.data.attributes');
4012
+ _data.page -= 1;
4013
+ setData(_data);
4014
+ _context.next = 14;
4015
+ break;
4016
+
4017
+ case 11:
4018
+ _context.prev = 11;
4019
+ _context.t0 = _context["catch"](0);
4020
+ onGetOrdersError(_context.t0);
4021
+
4022
+ case 14:
4023
+ _context.prev = 14;
4024
+ setLoading(false);
4025
+ return _context.finish(14);
4026
+
4027
+ case 17:
4028
+ case "end":
4029
+ return _context.stop();
4030
+ }
4031
+ }
4032
+ }, _callee, null, [[0, 11, 14, 17]]);
4033
+ }));
4034
+
4035
+ return function fetchData(_x, _x2, _x3) {
4036
+ return _ref2.apply(this, arguments);
4037
+ };
4038
+ }();
4039
+
4040
+ var handleChangePage = function handleChangePage(_event, newPage) {
4041
+ fetchData(newPage + 1, limit, filter);
4042
+ };
4043
+
4044
+ var handleChangeRowsPerPage = function handleChangeRowsPerPage(event) {
4045
+ fetchData(1, +event.target.value, filter);
4046
+ setLimit(+event.target.value);
4047
+ };
4048
+
4049
+ var onChange = function onChange(_event, eventFilter) {
4050
+ fetchData(1, limit, (eventFilter == null ? void 0 : eventFilter.url_name) || '');
4051
+ setFilter((eventFilter == null ? void 0 : eventFilter.url_name) || '');
4052
+ };
4053
+
4054
+ return React__default.createElement("div", {
4055
+ className: 'my-ticket'
4056
+ }, loading && React__default.createElement("div", {
4057
+ className: 'loading'
4058
+ }, React__default.createElement(CircularProgress, null)), data && React__default.createElement(React__default.Fragment, null, React__default.createElement(Autocomplete, {
4059
+ disablePortal: true,
4060
+ id: "combo-box-demo",
4061
+ getOptionLabel: function getOptionLabel(option) {
4062
+ return option.event_name;
4063
+ },
4064
+ onChange: onChange,
4065
+ options: data.purchased_events,
4066
+ sx: {
4067
+ width: 300
4068
+ },
4069
+ renderInput: function renderInput(params) {
4070
+ return React__default.createElement(TextField, Object.assign({}, params, {
4071
+ label: "Events"
4072
+ }));
4073
+ }
4074
+ }), React__default.createElement(TableContainer, {
4075
+ component: Paper,
4076
+ className: 'my-ticket-table'
4077
+ }, React__default.createElement(Table, {
4078
+ "aria-label": "collapsible table"
4079
+ }, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, tableConfig().header.map(function (column, index) {
4080
+ return React__default.createElement(TableCell, {
4081
+ key: index
4082
+ }, column);
4083
+ }), React__default.createElement(TableCell, null))), React__default.createElement(TableBody, null, (_data$orders = data.orders) == null ? void 0 : _data$orders.map(function (row) {
4084
+ return React__default.createElement(Row, {
4085
+ key: row.id,
4086
+ row: row,
4087
+ handleDetailsInfo: handleDetailsInfo
4088
+ });
4089
+ })))), React__default.createElement(TablePagination, {
4090
+ rowsPerPageOptions: [10, 25, 100],
4091
+ component: "div",
4092
+ count: data.total_count,
4093
+ rowsPerPage: limit,
4094
+ page: data.page,
4095
+ onPageChange: handleChangePage,
4096
+ onRowsPerPageChange: handleChangeRowsPerPage
4097
+ })));
4098
+ };
4099
+
4100
+ var TicketsTable = function TicketsTable(_ref) {
4101
+ var _ref$tickets = _ref.tickets,
4102
+ tickets = _ref$tickets === void 0 ? [] : _ref$tickets;
4103
+ return React__default.createElement("div", {
4104
+ className: 'tickets-box'
4105
+ }, React__default.createElement("h4", {
4106
+ className: 'sub-title'
4107
+ }, "Your Tickets"), React__default.createElement(TableContainer, {
4108
+ component: Paper
4109
+ }, React__default.createElement(Table, {
4110
+ "aria-label": "collapsible table"
4111
+ }, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, React__default.createElement(TableCell, null, "Ticket ID"), React__default.createElement(TableCell, null, "Ticket Type"), React__default.createElement(TableCell, null, "Ticket Holder Name"), React__default.createElement(TableCell, null, "Status"), React__default.createElement(TableCell, null, "Download"))), React__default.createElement(TableBody, null, tickets.map(function (ticket, index) {
4112
+ var _ticket$add_ons;
4113
+
4114
+ return React__default.createElement(React.Fragment, {
4115
+ key: index
4116
+ }, React__default.createElement(TableRow, null, React__default.createElement(TableCell, null, ticket.hash), React__default.createElement(TableCell, null, ticket.ticket_type), React__default.createElement(TableCell, null, ticket.holder_name), React__default.createElement(TableCell, null, ticket.status), React__default.createElement(TableCell, null, React__default.createElement("a", {
4117
+ className: 'download-button',
4118
+ href: ticket.pdf_link,
4119
+ download: true
4120
+ }, "Download"))), !!((_ticket$add_ons = ticket.add_ons) != null && _ticket$add_ons.length) && React__default.createElement(TableRow, null, React__default.createElement(TableCell, {
4121
+ colSpan: 5
4122
+ }, React__default.createElement(Table, {
4123
+ className: 'ticket-add-on-table'
4124
+ }, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, React__default.createElement(TableCell, null, "Add-On"), React__default.createElement(TableCell, null, "Status"))), React__default.createElement(TableBody, null, ticket.add_ons.map(function (add_on, index) {
4125
+ return React__default.createElement(TableRow, {
4126
+ key: index
4127
+ }, React__default.createElement(TableCell, null, add_on.name), React__default.createElement(TableCell, null, add_on.status));
4128
+ }))))));
4129
+ })))));
4130
+ };
4131
+
4132
+ var getTotal = function getTotal(data) {
4133
+ if (!(data != null && data.total) || !_has(data, 'items.ticket_types.length')) return '';
4134
+ return data.items.ticket_types[0].currency + data.total;
4135
+ };
4136
+
4137
+ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
4138
+ var _data$items$ticket_ty, _data$items$add_ons;
4139
+
4140
+ var _ref$onGetOrdersSucce = _ref.onGetOrdersSuccess,
4141
+ onGetOrdersSuccess = _ref$onGetOrdersSucce === void 0 ? function () {} : _ref$onGetOrdersSucce,
4142
+ _ref$onGetOrdersError = _ref.onGetOrdersError,
4143
+ onGetOrdersError = _ref$onGetOrdersError === void 0 ? function () {} : _ref$onGetOrdersError;
4144
+
4145
+ var _useState = React.useState(null),
4146
+ data = _useState[0],
4147
+ setData = _useState[1];
4148
+
4149
+ var _useState2 = React.useState(true),
4150
+ loading = _useState2[0],
4151
+ setLoading = _useState2[1];
4152
+
4153
+ React.useEffect(function () {
4154
+ _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
4155
+ var orderId, response, _data;
4156
+
4157
+ return runtime_1.wrap(function _callee$(_context) {
4158
+ while (1) {
4159
+ switch (_context.prev = _context.next) {
4160
+ case 0:
4161
+ _context.prev = 0;
4162
+ setLoading(true);
4163
+ orderId = window.location.href.split('/').slice(-1)[0];
4164
+ _context.next = 5;
4165
+ return getOrderDetails(orderId);
4166
+
4167
+ case 5:
4168
+ response = _context.sent;
4169
+ onGetOrdersSuccess(response);
4170
+ _data = _get(response, 'data.data.attributes');
4171
+ setData(_data);
4172
+ _context.next = 14;
4173
+ break;
4174
+
4175
+ case 11:
4176
+ _context.prev = 11;
4177
+ _context.t0 = _context["catch"](0);
4178
+ onGetOrdersError(_context.t0);
4179
+
4180
+ case 14:
4181
+ _context.prev = 14;
4182
+ setLoading(false);
4183
+ return _context.finish(14);
4184
+
4185
+ case 17:
4186
+ case "end":
4187
+ return _context.stop();
4188
+ }
4189
+ }
4190
+ }, _callee, null, [[0, 11, 14, 17]]);
4191
+ }))();
4192
+ }, []);
4193
+ return React__default.createElement("div", {
4194
+ className: "order-details"
4195
+ }, loading ? React__default.createElement("div", {
4196
+ className: 'loading'
4197
+ }, React__default.createElement(CircularProgress, null)) : React__default.createElement(React__default.Fragment, null, React__default.createElement("h1", {
4198
+ className: 'layout-title'
4199
+ }, "Order Details"), React__default.createElement("div", {
4200
+ className: 'order-summary-box'
4201
+ }, React__default.createElement("h4", {
4202
+ className: 'sub-title'
4203
+ }, "Order Summary"), React__default.createElement("div", null, React__default.createElement("b", null, "Your personal share link for this event is:", " "), React__default.createElement("a", {
4204
+ href: data == null ? void 0 : data.personal_share_link,
4205
+ target: '_blank',
4206
+ rel: 'noreferrer'
4207
+ }, data == null ? void 0 : data.personal_share_link)), React__default.createElement(TableContainer, {
4208
+ component: Paper
4209
+ }, React__default.createElement(Table, {
4210
+ "aria-label": "collapsible table"
4211
+ }, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, React__default.createElement(TableCell, null, "Items"), React__default.createElement(TableCell, null, "Price"), React__default.createElement(TableCell, null, "Quantity"), React__default.createElement(TableCell, null, "Total"))), React__default.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) {
4212
+ return React__default.createElement(TableRow, {
4213
+ key: index
4214
+ }, React__default.createElement(TableCell, null, React__default.createElement("b", null, "Ticket Type: "), ticket.name), React__default.createElement(TableCell, null, ticket.currency + ticket.price), React__default.createElement(TableCell, null, ticket.quantity), React__default.createElement(TableCell, null, ticket.currency + ticket.total));
4215
+ }), data == null ? void 0 : (_data$items$add_ons = data.items.add_ons) == null ? void 0 : _data$items$add_ons.map(function (ticket, index) {
4216
+ return React__default.createElement(TableRow, {
4217
+ key: index
4218
+ }, React__default.createElement(TableCell, null, React__default.createElement("b", null, "Add-On: "), ticket.name), React__default.createElement(TableCell, null, ticket.currency + ticket.price), React__default.createElement(TableCell, null, ticket.quantity), React__default.createElement(TableCell, null, ticket.currency + ticket.total));
4219
+ }), React__default.createElement(TableRow, {
4220
+ className: 'total-row'
4221
+ }, React__default.createElement(TableCell, null), React__default.createElement(TableCell, null), React__default.createElement(TableCell, null, "Total"), React__default.createElement(TableCell, null, getTotal(data))))))), React__default.createElement(TicketsTable, {
4222
+ tickets: data.tickets
4223
+ })));
4224
+ };
4225
+
3886
4226
  exports.BillingInfoContainer = BillingInfoContainer;
3887
4227
  exports.ConfirmationContainer = ConfirmationContainer;
3888
4228
  exports.LoginModal = LoginModal;
4229
+ exports.MyTicketsContainer = MyTicketsContainer;
4230
+ exports.OrderDetailsContainer = OrderDetailsContainer;
3889
4231
  exports.PaymentContainer = PaymentContainer;
3890
4232
  exports.TicketsContainer = TicketsContainer;
3891
4233
  exports.createFixedFloatNormalizer = createFixedFloatNormalizer;