tf-checkout-react-native 1.0.0 → 1.0.5

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 (165) hide show
  1. package/README.md +235 -7
  2. package/assets/icons/ic_check.png +0 -0
  3. package/assets/icons/ic_copy.png +0 -0
  4. package/assets/icons/ic_dropdown.png +0 -0
  5. package/assets/icons/ic_error.png +0 -0
  6. package/assets/icons/ic_next.png +0 -0
  7. package/assets/images/brand.png +0 -0
  8. package/lib/api/ApiClient.d.ts +7 -4
  9. package/lib/api/ApiClient.js +121 -98
  10. package/lib/api/ApiClient.js.map +1 -1
  11. package/lib/api/Constants.d.ts +1 -0
  12. package/lib/api/Constants.js +1 -0
  13. package/lib/api/Constants.js.map +1 -1
  14. package/lib/api/types.d.ts +23 -3
  15. package/lib/api/types.js +0 -1
  16. package/lib/api/types.js.map +1 -1
  17. package/lib/components/button/Button.js +4 -4
  18. package/lib/components/button/Button.js.map +1 -1
  19. package/lib/components/checkbox/types.d.ts +1 -1
  20. package/lib/components/datePicker/DatePicker.d.ts +1 -1
  21. package/lib/components/datePicker/DatePicker.js +10 -7
  22. package/lib/components/datePicker/DatePicker.js.map +1 -1
  23. package/lib/components/datePicker/styles.d.ts +0 -1
  24. package/lib/components/datePicker/styles.js +0 -1
  25. package/lib/components/datePicker/styles.js.map +1 -1
  26. package/lib/components/datePicker/types.d.ts +12 -4
  27. package/lib/components/dropdown/Dropdown.d.ts +1 -1
  28. package/lib/components/dropdown/Dropdown.js +26 -14
  29. package/lib/components/dropdown/Dropdown.js.map +1 -1
  30. package/lib/components/dropdown/DropdownListItem.d.ts +1 -1
  31. package/lib/components/dropdown/DropdownListItem.js +7 -5
  32. package/lib/components/dropdown/DropdownListItem.js.map +1 -1
  33. package/lib/components/dropdown/styles.d.ts +15 -3
  34. package/lib/components/dropdown/styles.js +22 -4
  35. package/lib/components/dropdown/styles.js.map +1 -1
  36. package/lib/components/dropdown/types.d.ts +16 -7
  37. package/lib/components/formField/FormField.js +10 -7
  38. package/lib/components/formField/FormField.js.map +1 -1
  39. package/lib/components/formField/types.d.ts +5 -3
  40. package/lib/components/index.d.ts +1 -0
  41. package/lib/components/index.js +1 -0
  42. package/lib/components/index.js.map +1 -1
  43. package/lib/components/input/Input.js +4 -2
  44. package/lib/components/input/Input.js.map +1 -1
  45. package/lib/components/input/types.d.ts +2 -0
  46. package/lib/components/loggedIn/LoggedIn.js +21 -7
  47. package/lib/components/loggedIn/LoggedIn.js.map +1 -1
  48. package/lib/components/loggedIn/types.d.ts +17 -5
  49. package/lib/components/login/Login.d.ts +1 -1
  50. package/lib/components/login/Login.js +21 -17
  51. package/lib/components/login/Login.js.map +1 -1
  52. package/lib/components/login/LoginView.d.ts +1 -1
  53. package/lib/components/login/LoginView.js +38 -19
  54. package/lib/components/login/LoginView.js.map +1 -1
  55. package/lib/components/login/styles.d.ts +5 -0
  56. package/lib/components/login/styles.js +5 -0
  57. package/lib/components/login/styles.js.map +1 -1
  58. package/lib/components/login/types.d.ts +24 -5
  59. package/lib/components/promoCode/PromoCode.js +9 -1
  60. package/lib/components/promoCode/PromoCode.js.map +1 -1
  61. package/lib/components/wrapper/Wrapper.d.ts +8 -0
  62. package/lib/components/wrapper/Wrapper.js +29 -0
  63. package/lib/components/wrapper/Wrapper.js.map +1 -0
  64. package/lib/containers/billingInfo/Billing.d.ts +3 -0
  65. package/lib/containers/billingInfo/Billing.js +583 -0
  66. package/lib/containers/billingInfo/Billing.js.map +1 -0
  67. package/lib/containers/billingInfo/styles.d.ts +36 -0
  68. package/lib/containers/billingInfo/styles.js +37 -0
  69. package/lib/containers/billingInfo/styles.js.map +1 -1
  70. package/lib/containers/billingInfo/types.d.ts +47 -4
  71. package/lib/containers/checkout/Checkout.d.ts +1 -1
  72. package/lib/containers/checkout/Checkout.js +54 -32
  73. package/lib/containers/checkout/Checkout.js.map +1 -1
  74. package/lib/containers/checkout/CheckoutData.js +9 -9
  75. package/lib/containers/checkout/CheckoutData.js.map +1 -1
  76. package/lib/containers/checkout/CheckoutView.d.ts +1 -1
  77. package/lib/containers/checkout/CheckoutView.js +24 -10
  78. package/lib/containers/checkout/CheckoutView.js.map +1 -1
  79. package/lib/containers/checkout/components/OrderReview.d.ts +1 -1
  80. package/lib/containers/checkout/components/OrderReview.js +4 -4
  81. package/lib/containers/checkout/components/OrderReview.js.map +1 -1
  82. package/lib/containers/checkout/styles.d.ts +17 -2
  83. package/lib/containers/checkout/styles.js +17 -2
  84. package/lib/containers/checkout/styles.js.map +1 -1
  85. package/lib/containers/checkout/types.d.ts +50 -5
  86. package/lib/containers/index.d.ts +1 -1
  87. package/lib/containers/index.js +1 -1
  88. package/lib/containers/index.js.map +1 -1
  89. package/lib/containers/myOrderDetails/MyOrderDetails.js +61 -6
  90. package/lib/containers/myOrderDetails/MyOrderDetails.js.map +1 -1
  91. package/lib/containers/myOrderDetails/MyOrderDetailsView.js +140 -36
  92. package/lib/containers/myOrderDetails/MyOrderDetailsView.js.map +1 -1
  93. package/lib/containers/myOrderDetails/components/Notification.d.ts +6 -0
  94. package/lib/containers/myOrderDetails/components/Notification.js +16 -0
  95. package/lib/containers/myOrderDetails/components/Notification.js.map +1 -0
  96. package/lib/containers/myOrderDetails/components/styles.d.ts +38 -0
  97. package/lib/containers/myOrderDetails/components/styles.js +41 -0
  98. package/lib/containers/myOrderDetails/components/styles.js.map +1 -0
  99. package/lib/containers/myOrderDetails/styles.d.ts +54 -0
  100. package/lib/containers/myOrderDetails/styles.js +54 -1
  101. package/lib/containers/myOrderDetails/styles.js.map +1 -1
  102. package/lib/containers/myOrderDetails/types.d.ts +70 -6
  103. package/lib/containers/myOrders/MyOrders.d.ts +1 -6
  104. package/lib/containers/myOrders/MyOrders.js +18 -15
  105. package/lib/containers/myOrders/MyOrders.js.map +1 -1
  106. package/lib/containers/myOrders/MyOrdersView.d.ts +1 -1
  107. package/lib/containers/myOrders/MyOrdersView.js +36 -14
  108. package/lib/containers/myOrders/MyOrdersView.js.map +1 -1
  109. package/lib/containers/myOrders/components/OrderListItem.js +1 -1
  110. package/lib/containers/myOrders/components/OrderListItem.js.map +1 -1
  111. package/lib/containers/myOrders/components/styles.d.ts +4 -0
  112. package/lib/containers/myOrders/components/styles.js +4 -0
  113. package/lib/containers/myOrders/components/styles.js.map +1 -1
  114. package/lib/containers/myOrders/styles.d.ts +19 -2
  115. package/lib/containers/myOrders/styles.js +20 -2
  116. package/lib/containers/myOrders/styles.js.map +1 -1
  117. package/lib/containers/myOrders/types.d.ts +20 -15
  118. package/lib/containers/purchaseConfirmation/PurchaseConfirmation.d.ts +1 -1
  119. package/lib/containers/purchaseConfirmation/PurchaseConfirmation.js +2 -2
  120. package/lib/containers/purchaseConfirmation/PurchaseConfirmation.js.map +1 -1
  121. package/lib/containers/purchaseConfirmation/PurchaseConfirmationView.js +4 -4
  122. package/lib/containers/purchaseConfirmation/PurchaseConfirmationView.js.map +1 -1
  123. package/lib/containers/purchaseConfirmation/types.d.ts +4 -0
  124. package/lib/containers/tickets/Tickets.d.ts +1 -1
  125. package/lib/containers/tickets/Tickets.js +22 -17
  126. package/lib/containers/tickets/Tickets.js.map +1 -1
  127. package/lib/containers/tickets/TicketsView.d.ts +1 -1
  128. package/lib/containers/tickets/TicketsView.js +7 -9
  129. package/lib/containers/tickets/TicketsView.js.map +1 -1
  130. package/lib/containers/tickets/components/TicketListItem.js +24 -8
  131. package/lib/containers/tickets/components/TicketListItem.js.map +1 -1
  132. package/lib/containers/tickets/types.d.ts +15 -2
  133. package/lib/helpers/Config.d.ts +12 -0
  134. package/lib/helpers/Config.js +32 -0
  135. package/lib/helpers/Config.js.map +1 -0
  136. package/lib/helpers/LocalStorage.d.ts +1 -0
  137. package/lib/helpers/LocalStorage.js +15 -3
  138. package/lib/helpers/LocalStorage.js.map +1 -1
  139. package/lib/helpers/Validators.d.ts +1 -0
  140. package/lib/helpers/Validators.js +5 -0
  141. package/lib/helpers/Validators.js.map +1 -1
  142. package/lib/index.d.ts +3 -2
  143. package/lib/index.js +4 -2
  144. package/lib/index.js.map +1 -1
  145. package/lib/res/colors.d.ts +2 -0
  146. package/lib/res/colors.js +4 -0
  147. package/lib/res/colors.js.map +1 -1
  148. package/lib/res/icons.d.ts +1 -0
  149. package/lib/res/icons.js +5 -4
  150. package/lib/res/icons.js.map +1 -1
  151. package/lib/res/images.js +1 -1
  152. package/lib/res/images.js.map +1 -1
  153. package/lib/res/index.d.ts +3 -0
  154. package/lib/types/IUserProfile.d.ts +1 -1
  155. package/package.json +11 -3
  156. package/src/index.tsx +35 -0
  157. package/lib/containers/billingInfo/BillingInfo.d.ts +0 -3
  158. package/lib/containers/billingInfo/BillingInfo.js +0 -627
  159. package/lib/containers/billingInfo/BillingInfo.js.map +0 -1
  160. package/lib/containers/billingInfo/BillingInfoData.d.ts +0 -6
  161. package/lib/containers/billingInfo/BillingInfoData.js +0 -79
  162. package/lib/containers/billingInfo/BillingInfoData.js.map +0 -1
  163. package/lib/containers/billingInfo/BillingInfoView.d.ts +0 -3
  164. package/lib/containers/billingInfo/BillingInfoView.js +0 -23
  165. package/lib/containers/billingInfo/BillingInfoView.js.map +0 -1
@@ -0,0 +1,583 @@
1
+ import _every from 'lodash/every';
2
+ import _find from 'lodash/find';
3
+ import _forEach from 'lodash/forEach';
4
+ import _map from 'lodash/map';
5
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
6
+ import { ActivityIndicator, Alert, Image, Linking, Text, View, } from 'react-native';
7
+ import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
8
+ import { checkoutOrder, fetchCart, fetchCountries, fetchStates, fetchUserProfile, registerNewUser, } from '../../api/ApiClient';
9
+ import Constants from '../../api/Constants';
10
+ import { Button, Checkbox, DatePicker, Dropdown, Input, Loading, Login, } from '../../components';
11
+ import { Config } from '../../helpers/Config';
12
+ import { useDebounced } from '../../helpers/Debounced';
13
+ import { getData, LocalStorageKeys } from '../../helpers/LocalStorage';
14
+ import { validateAge, validateEmail, validateEmpty, validatePasswords, } from '../../helpers/Validators';
15
+ import R from '../../res';
16
+ import s from './styles';
17
+ const Billing = (props) => {
18
+ var _a, _b, _c, _d;
19
+ const { styles, texts, cartProps: { isAgeRequired, isNameRequired, isPhoneRequired, minimumAge, isBillingRequired, }, } = props;
20
+ //#region State
21
+ const [isLoading, setIsLoading] = useState(false);
22
+ const [isSubmittingData, setIsSubmittingData] = useState(false);
23
+ const [loggedUserFirstName, setLoggedUserFirstName] = useState('');
24
+ const [loginMessage, setLoginMessage] = useState('');
25
+ const [firstName, setFirstName] = useState('');
26
+ const [lastName, setLastName] = useState('');
27
+ const [email, setEmail] = useState('');
28
+ const [emailConfirmation, setEmailConfirmation] = useState('');
29
+ const [password, setPassword] = useState('');
30
+ const [passwordConfirmation, setPasswordConfirmation] = useState('');
31
+ const [isSubToTicketFairy, setIsSubToTicketFairy] = useState(false);
32
+ const [isSubToBrand, setIsSubToBrand] = useState(false);
33
+ const [phone, setPhone] = useState('');
34
+ const [street, setStreet] = useState('');
35
+ const [city, setCity] = useState('');
36
+ const [countryId, setCountryId] = useState('');
37
+ const [stateId, setStateId] = useState('');
38
+ const [postalCode, setPostalCode] = useState('');
39
+ const [dateOfBirth, setDateOfBirth] = useState(new Date());
40
+ const [selectedCountry, setSelectedCountry] = useState(undefined);
41
+ const [selectedState, setSelectedState] = useState(undefined);
42
+ const [ticketHoldersData, setTicketHoldersData] = useState([]);
43
+ const [numberOfTicketHolders, setNumberOfTicketHolders] = useState();
44
+ const [countries, setCountries] = useState([
45
+ { value: '-1', label: 'Country' },
46
+ ]);
47
+ const [states, setStates] = useState([
48
+ { value: '-1', label: 'State/County' },
49
+ ]);
50
+ const [isLoginDialogVisible, setIsLoginDialogVisible] = useState(false);
51
+ const [skipping, setSkippingStatus] = useState(isBillingRequired ? 'false' : 'skipping');
52
+ // Errors state
53
+ const firstNameError = useDebounced(firstName, validateEmpty);
54
+ const lastNameError = useDebounced(lastName, validateEmpty);
55
+ const emailError = useDebounced(email, () => validateEmail(email, emailConfirmation));
56
+ const confirmEmailError = useDebounced(emailConfirmation, () => validateEmail(emailConfirmation, email));
57
+ const passwordError = useDebounced(password, () => validatePasswords(password, passwordConfirmation));
58
+ const confirmPasswordError = useDebounced(passwordConfirmation, () => validatePasswords(passwordConfirmation, password));
59
+ const phoneError = useDebounced(phone, validateEmpty);
60
+ const streetError = useDebounced(street, validateEmpty);
61
+ const cityError = useDebounced(city, validateEmpty);
62
+ const postalCodeError = useDebounced(postalCode, validateEmpty);
63
+ const [dateOfBirthError, setDateOfBirthError] = useState('');
64
+ // End of errors state
65
+ //#endregion
66
+ //#region Refs
67
+ const storedToken = useRef('');
68
+ const storedProfileData = useRef({});
69
+ //#endregion
70
+ //#region Handlers
71
+ const showLoginDialog = () => setIsLoginDialogVisible(true);
72
+ const hideLoginDialog = () => setIsLoginDialogVisible(false);
73
+ const handleIsSubToBrandToggle = () => {
74
+ setIsSubToBrand(!isSubToBrand);
75
+ };
76
+ const handleIsSubToTicketFairyToggle = () => {
77
+ setIsSubToTicketFairy(!isSubToTicketFairy);
78
+ };
79
+ const handleOpenPrivacyLink = async () => {
80
+ const canOpenLink = await Linking.canOpenURL(Constants.PRIVACY_POLICY_LINK);
81
+ if (canOpenLink) {
82
+ await Linking.openURL(Constants.PRIVACY_POLICY_LINK);
83
+ }
84
+ };
85
+ const handleSetFormDataFromUserProfile = (userProfile, accessToken) => {
86
+ storedProfileData.current = userProfile;
87
+ setFirstName(userProfile.firstName);
88
+ setLastName(userProfile.lastName);
89
+ setEmail(userProfile.email);
90
+ setEmailConfirmation(userProfile.email);
91
+ setPhone(userProfile.phone);
92
+ setStreet(userProfile.streetAddress);
93
+ setCity(userProfile.city);
94
+ setPostalCode(userProfile.zipCode);
95
+ setCountryId(userProfile.countryId);
96
+ setStateId(userProfile.stateId);
97
+ setLoggedUserFirstName(userProfile.firstName);
98
+ setIsSubToTicketFairy(true);
99
+ const thData = [...ticketHoldersData];
100
+ thData.forEach((th, index) => {
101
+ th.firstName = index === 0 ? userProfile.firstName : '';
102
+ th.lastName = index === 0 ? userProfile.lastName : '';
103
+ th.email = index === 0 ? userProfile.email : '';
104
+ th.phone = index === 0 ? userProfile.phone : '';
105
+ });
106
+ setTicketHoldersData(thData);
107
+ if (accessToken) {
108
+ storedToken.current = accessToken;
109
+ }
110
+ };
111
+ const handleOnLoginSuccess = async (userProfile, accessToken) => {
112
+ if (props.onLoginSuccess) {
113
+ props.onLoginSuccess({
114
+ accessToken: accessToken,
115
+ userData: userProfile,
116
+ });
117
+ }
118
+ if (!isBillingRequired && skipping === 'fail') {
119
+ setSkippingStatus('skipping');
120
+ await performCheckout(getCheckoutBodyWhenSkipping({
121
+ userProfile: userProfile,
122
+ ticketsQuantity: numberOfTicketHolders || 1,
123
+ }), accessToken);
124
+ }
125
+ handleSetFormDataFromUserProfile(userProfile, accessToken);
126
+ };
127
+ const handleOnLoginFail = (error) => {
128
+ if (props.onLoginFail) {
129
+ props.onLoginFail(error);
130
+ }
131
+ };
132
+ const handleOnLogoutSuccess = () => {
133
+ setFirstName('');
134
+ setLastName('');
135
+ setEmail('');
136
+ setEmailConfirmation('');
137
+ setPhone('');
138
+ setStreet('');
139
+ setCity('');
140
+ setPostalCode('');
141
+ setPassword('');
142
+ setPasswordConfirmation('');
143
+ setCountryId('');
144
+ setStateId('');
145
+ setSelectedCountry({ value: '-1', label: 'Country' });
146
+ setStates([{ value: '-1', label: 'State/County' }]);
147
+ setIsSubToTicketFairy(false);
148
+ setIsSubToBrand(false);
149
+ storedToken.current = '';
150
+ setLoggedUserFirstName('');
151
+ const thData = [...ticketHoldersData];
152
+ thData.forEach((th) => {
153
+ th.firstName = '';
154
+ th.lastName = '';
155
+ th.email = '';
156
+ th.phone = '';
157
+ });
158
+ setTicketHoldersData(thData);
159
+ };
160
+ const handleOnSelectDate = (newDate) => {
161
+ const ageError = validateAge(newDate, minimumAge);
162
+ setDateOfBirth(newDate);
163
+ setDateOfBirthError(ageError);
164
+ };
165
+ //#endregion
166
+ //#region Form validation
167
+ const checkBasicDataValid = () => {
168
+ if (!firstName ||
169
+ !lastName ||
170
+ !email ||
171
+ !emailConfirmation ||
172
+ !city ||
173
+ !postalCode ||
174
+ (selectedState === null || selectedState === void 0 ? void 0 : selectedState.value) === '-1' ||
175
+ (selectedCountry === null || selectedCountry === void 0 ? void 0 : selectedCountry.value) === '-1') {
176
+ return false;
177
+ }
178
+ if (isPhoneRequired && !phone) {
179
+ return false;
180
+ }
181
+ if (Config.IS_BILLING_STREET_NAME_REQUIRED && !street) {
182
+ return false;
183
+ }
184
+ return true;
185
+ };
186
+ const checkExtraDataValid = () => {
187
+ if (isAgeRequired) {
188
+ const ageValidationMessage = validateAge(dateOfBirth, minimumAge);
189
+ if (ageValidationMessage) {
190
+ setDateOfBirthError(ageValidationMessage);
191
+ return ageValidationMessage;
192
+ }
193
+ }
194
+ if (!isNameRequired) {
195
+ return '';
196
+ }
197
+ return _every(_map(ticketHoldersData, (th) => validateEmpty(th.firstName) || validateEmpty(th.lastName)), (itm) => itm === '')
198
+ ? ''
199
+ : 'You must fill all Ticket Holder required fields';
200
+ };
201
+ //#endregion
202
+ //#region Submit form
203
+ const handleOnRegisterFail = (rawError) => {
204
+ if (props.onRegisterFail) {
205
+ props.onRegisterFail(rawError);
206
+ }
207
+ };
208
+ const performCheckout = async (checkoutBody, pToken) => {
209
+ try {
210
+ setIsSubmittingData(true);
211
+ const { error: checkoutError, data: checkoutData } = await checkoutOrder(checkoutBody, pToken);
212
+ setIsSubmittingData(false);
213
+ if (checkoutError) {
214
+ if (props.onCheckoutFail) {
215
+ props.onCheckoutFail(checkoutError);
216
+ }
217
+ setSkippingStatus('false');
218
+ return Alert.alert('', checkoutError);
219
+ }
220
+ const checkoutResponseData = {
221
+ id: checkoutData.data.data.attributes.id,
222
+ hash: checkoutData.data.data.attributes.hash,
223
+ total: checkoutData.data.data.attributes.total,
224
+ status: checkoutData.data.data.attributes.status,
225
+ };
226
+ setSkippingStatus('success');
227
+ props.onCheckoutSuccess(checkoutResponseData);
228
+ }
229
+ catch (err) {
230
+ setIsSubmittingData(false);
231
+ setSkippingStatus('false');
232
+ if (props.onCheckoutFail) {
233
+ props.onCheckoutFail('Error while performing checkout');
234
+ }
235
+ }
236
+ };
237
+ const getRegisterFormData = (checkoutBody) => {
238
+ const bodyFormData = new FormData();
239
+ _forEach(checkoutBody.attributes, (item, key) => {
240
+ bodyFormData.append(key, item);
241
+ });
242
+ bodyFormData.append('password_confirmation', checkoutBody.attributes.password);
243
+ bodyFormData.append('client_id', Config.CLIENT_ID);
244
+ bodyFormData.append('client_secret', Config.CLIENT_SECRET);
245
+ return bodyFormData;
246
+ };
247
+ const performNewUserRegister = async (checkoutBody) => {
248
+ const registerForm = getRegisterFormData(checkoutBody);
249
+ setIsSubmittingData(true);
250
+ const { data: registerResponseData, error: registerResponseError } = await registerNewUser(registerForm);
251
+ if (registerResponseError) {
252
+ setIsSubmittingData(false);
253
+ if (registerResponseError.isAlreadyRegistered) {
254
+ setLoginMessage(registerResponseError.message);
255
+ showLoginDialog();
256
+ return handleOnRegisterFail(registerResponseError.raw);
257
+ }
258
+ handleOnRegisterFail(registerResponseError.raw);
259
+ return Alert.alert('', registerResponseError.message);
260
+ }
261
+ if (!registerResponseData) {
262
+ setIsSubmittingData(false);
263
+ handleOnRegisterFail('Register returned no data');
264
+ return Alert.alert('', 'Register returned no data');
265
+ }
266
+ const tokens = {
267
+ accessToken: registerResponseData.access_token,
268
+ refreshToken: registerResponseData.refresh_token,
269
+ };
270
+ storedToken.current = tokens.accessToken;
271
+ if (props.onRegisterSuccess) {
272
+ props.onRegisterSuccess(tokens);
273
+ }
274
+ await performCheckout(checkoutBody, tokens.accessToken);
275
+ };
276
+ const getCheckoutBody = () => {
277
+ let parsedTicketHolders = [];
278
+ for (let i = 0; i <= numberOfTicketHolders - 1; i++) {
279
+ const individualHolder = {
280
+ first_name: ticketHoldersData[i].firstName || '',
281
+ last_name: ticketHoldersData[i].lastName || '',
282
+ phone: ticketHoldersData[i].phone || '',
283
+ email: ticketHoldersData[i].email || '',
284
+ };
285
+ parsedTicketHolders.push(individualHolder);
286
+ }
287
+ const checkoutBody = {
288
+ attributes: {
289
+ city: city,
290
+ confirm_email: emailConfirmation,
291
+ country: parseInt(selectedCountry.value, 10),
292
+ email: email,
293
+ first_name: firstName,
294
+ last_name: lastName,
295
+ password: password,
296
+ phone: phone,
297
+ state: parseInt(selectedState.value, 10),
298
+ street_address: street,
299
+ zip: postalCode,
300
+ ticket_holders: parsedTicketHolders,
301
+ ttf_opt_in: isSubToTicketFairy,
302
+ brand_opt_in: isSubToBrand,
303
+ },
304
+ };
305
+ if (isAgeRequired) {
306
+ checkoutBody.attributes.dob_day = dateOfBirth.getDate();
307
+ checkoutBody.attributes.dob_month = dateOfBirth.getMonth() + 1;
308
+ checkoutBody.attributes.dob_year = dateOfBirth.getFullYear();
309
+ }
310
+ return checkoutBody;
311
+ };
312
+ const getCheckoutBodyWhenSkipping = ({ userProfile, ticketsQuantity, }) => {
313
+ let parsedTicketHolders = [];
314
+ const hFirstName = userProfile.firstName;
315
+ const hLastName = userProfile.lastName;
316
+ const hPhone = userProfile.phone;
317
+ const hEmail = userProfile.email;
318
+ for (let i = 0; i <= ticketsQuantity - 1; i++) {
319
+ const individualHolder = i
320
+ ? {
321
+ first_name: '',
322
+ last_name: '',
323
+ phone: '',
324
+ email: '',
325
+ }
326
+ : {
327
+ first_name: hFirstName,
328
+ last_name: hLastName,
329
+ phone: hPhone,
330
+ email: hEmail,
331
+ };
332
+ parsedTicketHolders.push(individualHolder);
333
+ }
334
+ const checkoutBody = {
335
+ attributes: {
336
+ city: userProfile.city,
337
+ confirm_email: userProfile.email,
338
+ country: parseInt(userProfile.countryId, 10),
339
+ email: userProfile.email,
340
+ first_name: userProfile.firstName,
341
+ last_name: userProfile.lastName,
342
+ phone: userProfile.phone,
343
+ state: parseInt(userProfile.stateId, 10),
344
+ street_address: userProfile.streetAddress,
345
+ zip: userProfile.zipCode,
346
+ ticket_holders: parsedTicketHolders,
347
+ ttf_opt_in: isSubToTicketFairy,
348
+ brand_opt_in: isSubToBrand,
349
+ password: password,
350
+ },
351
+ };
352
+ return checkoutBody;
353
+ };
354
+ const onSubmit = async () => {
355
+ const isExtraDataValid = checkExtraDataValid();
356
+ if (isExtraDataValid) {
357
+ return Alert.alert('', isExtraDataValid);
358
+ }
359
+ const checkoutBody = getCheckoutBody();
360
+ if (loggedUserFirstName && storedToken.current) {
361
+ await performCheckout(checkoutBody, storedToken.current);
362
+ }
363
+ else {
364
+ await performNewUserRegister(checkoutBody);
365
+ }
366
+ };
367
+ //#endregion
368
+ const fetchData = async () => {
369
+ setIsLoading(true);
370
+ let usrPrfl;
371
+ const usrTkn = await getData(LocalStorageKeys.ACCESS_TOKEN);
372
+ const { data: countriesData, error: countriesError } = await fetchCountries();
373
+ if (countriesError) {
374
+ setIsLoading(false);
375
+ return Alert.alert('', countriesError || 'Error fetching countries');
376
+ }
377
+ const parsedCountries = _map(countriesData, (item, index) => {
378
+ return { label: item, value: index };
379
+ });
380
+ if (usrTkn) {
381
+ storedToken.current = usrTkn;
382
+ const { error: userProfileError, userProfile: userProfileResponse } = await fetchUserProfile(usrTkn);
383
+ if (userProfileError || !userProfileResponse) {
384
+ setIsLoading(false);
385
+ return Alert.alert('', userProfileError || 'Error fetching user profile');
386
+ }
387
+ usrPrfl = userProfileResponse;
388
+ }
389
+ else {
390
+ parsedCountries.unshift({ value: '-1', label: 'Country' });
391
+ setSelectedCountry({ value: '-1', label: 'Country' });
392
+ }
393
+ const { cartData, cartError } = await fetchCart();
394
+ if (cartError) {
395
+ setIsLoading(false);
396
+ Alert.alert('', cartError);
397
+ if (props.onFetchCartError) {
398
+ props.onFetchCartError(cartError);
399
+ }
400
+ return;
401
+ }
402
+ setNumberOfTicketHolders(cartData.quantity);
403
+ setIsSubToBrand(cartData.isMarketingOptedIn);
404
+ setIsSubToTicketFairy(cartData.isTfOptIn);
405
+ const tHolders = [];
406
+ for (let i = 0; i < cartData.quantity; i++) {
407
+ tHolders.push({
408
+ firstName: i === 0 && usrPrfl ? usrPrfl.firstName : '',
409
+ lastName: i === 0 && usrPrfl ? usrPrfl.lastName : '',
410
+ email: i === 0 && usrPrfl ? usrPrfl.email : '',
411
+ phone: i === 0 && usrPrfl ? usrPrfl.phone : '',
412
+ });
413
+ }
414
+ if (!isBillingRequired && usrTkn && usrPrfl && cartData) {
415
+ const checkoutBody = getCheckoutBodyWhenSkipping({
416
+ userProfile: usrPrfl,
417
+ ticketsQuantity: cartData.quantity,
418
+ });
419
+ await performCheckout(checkoutBody, usrTkn);
420
+ }
421
+ else {
422
+ if (skipping === 'skipping') {
423
+ setSkippingStatus('fail');
424
+ }
425
+ }
426
+ if (usrPrfl) {
427
+ handleSetFormDataFromUserProfile(usrPrfl);
428
+ }
429
+ setCountries(parsedCountries);
430
+ setTicketHoldersData(tHolders);
431
+ setIsLoading(false);
432
+ };
433
+ //#region Effects
434
+ useEffect(() => {
435
+ if (countries.length > 1 && countryId) {
436
+ const selectedCountryItem = _find(countries, (item) => item.value === countryId);
437
+ setSelectedCountry(selectedCountryItem);
438
+ }
439
+ }, [countries, countryId]);
440
+ useEffect(() => {
441
+ const getStates = async () => {
442
+ const { data: statesData, error: statesError } = await fetchStates(selectedCountry.value);
443
+ if (statesError || !statesData) {
444
+ return Alert.alert('', statesError || 'Error fetching states');
445
+ }
446
+ const parsedStates = _map(statesData, (item, index) => {
447
+ return { label: item, value: index };
448
+ });
449
+ setStates(parsedStates);
450
+ };
451
+ if (selectedCountry && selectedCountry.value !== '-1') {
452
+ getStates();
453
+ }
454
+ }, [selectedCountry]);
455
+ useEffect(() => {
456
+ if (states.length > 1 && stateId) {
457
+ const selectedStateItem = _find(states, (item) => item.value === stateId);
458
+ if (!selectedStateItem) {
459
+ return setSelectedState({ value: '-1', label: 'State/County' });
460
+ }
461
+ setSelectedState(selectedStateItem);
462
+ }
463
+ else {
464
+ setSelectedState({ value: '-1', label: 'State/County' });
465
+ }
466
+ }, [stateId, states]);
467
+ const initTicketHoldersErrors = useCallback(() => {
468
+ if (ticketHoldersData.length > 1) {
469
+ const tHolders = [];
470
+ for (let i = 0; i < ticketHoldersData.length; i++) {
471
+ tHolders.push({
472
+ firstNameError: '',
473
+ lastNameError: '',
474
+ });
475
+ }
476
+ }
477
+ }, [ticketHoldersData]);
478
+ initTicketHoldersErrors();
479
+ useEffect(() => {
480
+ fetchData();
481
+ // eslint-disable-next-line react-hooks/exhaustive-deps
482
+ }, []);
483
+ //#endregion
484
+ //#region Render
485
+ const renderTicketHolders = () => {
486
+ if (!numberOfTicketHolders) {
487
+ return null;
488
+ }
489
+ let tHolders = [];
490
+ for (let i = 0; i < numberOfTicketHolders; i++) {
491
+ tHolders.push(React.createElement(View, { key: `ticketHolder.${i}` },
492
+ React.createElement(Text, { style: styles === null || styles === void 0 ? void 0 : styles.titles },
493
+ "Ticket holder ",
494
+ i + 1),
495
+ React.createElement(Input, { label: isNameRequired ? 'First name' : 'First name (optional)', value: ticketHoldersData[i].firstName, onChangeText: (text) => {
496
+ const copyTicketHolders = [...ticketHoldersData];
497
+ copyTicketHolders[i].firstName = text;
498
+ setTicketHoldersData(copyTicketHolders);
499
+ }, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles }),
500
+ React.createElement(Input, { label: isNameRequired ? 'Last name' : 'Last name (optional)', value: ticketHoldersData[i].lastName, onChangeText: (text) => {
501
+ const copyTicketHolders = [...ticketHoldersData];
502
+ copyTicketHolders[i].lastName = text;
503
+ setTicketHoldersData(copyTicketHolders);
504
+ }, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles }),
505
+ React.createElement(Input, { label: 'Email Address (optional)', value: ticketHoldersData[i].email, onChangeText: (text) => {
506
+ const copyTicketHolders = [...ticketHoldersData];
507
+ copyTicketHolders[i].email = text;
508
+ setTicketHoldersData(copyTicketHolders);
509
+ }, keyboardType: 'email-address', styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles, autoCapitalize: 'none' }),
510
+ React.createElement(Input, { label: 'Phone (optional)', value: ticketHoldersData[i].phone, onChangeText: (text) => {
511
+ const copyTicketHolders = [...ticketHoldersData];
512
+ copyTicketHolders[i].phone = text;
513
+ setTicketHoldersData(copyTicketHolders);
514
+ }, keyboardType: 'phone-pad', styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles })));
515
+ }
516
+ return tHolders;
517
+ };
518
+ const renderCheckingOut = () => {
519
+ var _a, _b, _c, _d, _e, _f, _g, _h;
520
+ return (React.createElement(View, { style: [s.skippingRootContainer, (_a = styles === null || styles === void 0 ? void 0 : styles.skippingDialog) === null || _a === void 0 ? void 0 : _a.rootContainer] },
521
+ React.createElement(View, { style: [
522
+ s.skippingDialogContainer,
523
+ (_b = styles === null || styles === void 0 ? void 0 : styles.skippingDialog) === null || _b === void 0 ? void 0 : _b.dialogContainer,
524
+ ] },
525
+ React.createElement(Image, { source: R.images.brand, style: [s.skippingBrandImage, (_c = styles === null || styles === void 0 ? void 0 : styles.skippingDialog) === null || _c === void 0 ? void 0 : _c.brandImage] }),
526
+ React.createElement(Text, { style: [s.skippingMessage, (_d = styles === null || styles === void 0 ? void 0 : styles.skippingDialog) === null || _d === void 0 ? void 0 : _d.message] }, (texts === null || texts === void 0 ? void 0 : texts.skippingMessage) || 'Checking out...'),
527
+ React.createElement(ActivityIndicator, { color: ((_f = (_e = styles === null || styles === void 0 ? void 0 : styles.skippingDialog) === null || _e === void 0 ? void 0 : _e.spinner) === null || _f === void 0 ? void 0 : _f.color) || R.colors.black, size: ((_h = (_g = styles === null || styles === void 0 ? void 0 : styles.skippingDialog) === null || _g === void 0 ? void 0 : _g.spinner) === null || _h === void 0 ? void 0 : _h.size) || 'large' }))));
528
+ };
529
+ const brandCheckBoxText = useMemo(() => {
530
+ return (texts === null || texts === void 0 ? void 0 : texts.brandCheckBox)
531
+ ? texts.brandCheckBox
532
+ : 'I would like to be updated on news, events and offers.';
533
+ }, [texts === null || texts === void 0 ? void 0 : texts.brandCheckBox]);
534
+ const phoneLabel = useMemo(() => (isPhoneRequired ? 'Phone' : 'Phone (optional)'), [isPhoneRequired]);
535
+ const isDataValid = checkBasicDataValid();
536
+ return skipping === 'skipping' ? (renderCheckingOut()) : (React.createElement(KeyboardAwareScrollView, { extraScrollHeight: 32 },
537
+ React.createElement(View, { style: styles === null || styles === void 0 ? void 0 : styles.rootContainer },
538
+ React.createElement(Login, { onLoginSuccessful: handleOnLoginSuccess, onLogoutSuccess: handleOnLogoutSuccess, isLoginDialogVisible: isLoginDialogVisible, showLoginDialog: showLoginDialog, hideLoginDialog: hideLoginDialog, userFirstName: loggedUserFirstName, onLoginFailure: handleOnLoginFail, message: loginMessage, styles: styles === null || styles === void 0 ? void 0 : styles.loginStyles }),
539
+ React.createElement(Text, { style: styles === null || styles === void 0 ? void 0 : styles.titles }, "Get Your Tickets"),
540
+ React.createElement(Input, { label: 'First name', value: firstName, onChangeText: setFirstName, error: firstNameError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles }),
541
+ React.createElement(Input, { label: 'Last name', value: lastName, onChangeText: setLastName, error: lastNameError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles }),
542
+ React.createElement(Text, { style: styles === null || styles === void 0 ? void 0 : styles.texts }, "IMPORTANT: Please double check that your email address is correct. It's where we send your confirmation and e-tickets to!"),
543
+ React.createElement(Input, { label: 'Email', value: email, onChangeText: setEmail, keyboardType: 'email-address', error: emailError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles, autoCapitalize: 'none' }),
544
+ React.createElement(Input, { label: 'Confirm Email', value: emailConfirmation, onChangeText: setEmailConfirmation, keyboardType: 'email-address', error: confirmEmailError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles, autoCapitalize: 'none' }),
545
+ isAgeRequired && (React.createElement(DatePicker, { text: 'Date of Birth', onSelectDate: handleOnSelectDate, selectedDate: dateOfBirth, styles: styles === null || styles === void 0 ? void 0 : styles.datePicker, error: dateOfBirthError })),
546
+ !loggedUserFirstName && (React.createElement(React.Fragment, null,
547
+ React.createElement(Text, { style: styles === null || styles === void 0 ? void 0 : styles.passwordTitle }, "Choose a password for your new TICKETFAIRY account"),
548
+ React.createElement(Input, { label: 'Password', isSecure: true, onChangeText: setPassword, error: passwordError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles, autoCapitalize: 'none', secureTextEntry: true }),
549
+ React.createElement(Input, { label: 'Confirm Password', isSecure: true, onChangeText: setPasswordConfirmation, error: confirmPasswordError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles, autoCapitalize: 'none', secureTextEntry: true }))),
550
+ React.createElement(Input, { label: phoneLabel, value: phone, onChangeText: setPhone, keyboardType: 'phone-pad', error: phoneError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles }),
551
+ React.createElement(Input, { label: Config.IS_BILLING_STREET_NAME_REQUIRED
552
+ ? 'Billing Street Address'
553
+ : 'Billing Street Address (optional)', value: street, onChangeText: setStreet, error: streetError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles }),
554
+ React.createElement(Input, { label: 'City', value: city, onChangeText: setCity, error: cityError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles }),
555
+ React.createElement(Dropdown, { items: countries, onSelectItem: setSelectedCountry, selectedOption: selectedCountry, styles: styles === null || styles === void 0 ? void 0 : styles.dropdownStyles }),
556
+ React.createElement(Input, { label: 'Postal Code / Zip Code', value: postalCode, onChangeText: setPostalCode, error: postalCodeError, styles: styles === null || styles === void 0 ? void 0 : styles.inputStyles }),
557
+ React.createElement(Dropdown, { items: states, onSelectItem: setSelectedState, selectedOption: selectedState, styles: styles === null || styles === void 0 ? void 0 : styles.dropdownStyles }),
558
+ React.createElement(Checkbox, { onPress: handleIsSubToBrandToggle, text: brandCheckBoxText, isActive: isSubToBrand, styles: styles === null || styles === void 0 ? void 0 : styles.checkboxStyles }),
559
+ React.createElement(Checkbox, { onPress: handleIsSubToTicketFairyToggle, isActive: isSubToTicketFairy, customTextComp: React.createElement(Text, { style: (_a = styles === null || styles === void 0 ? void 0 : styles.customCheckbox) === null || _a === void 0 ? void 0 : _a.text },
560
+ "I agree that The Ticket Fairy may use the personal data that I have provided for marketing purposes, such as recommending events that I might be interested in, in accordance with its",
561
+ ' ',
562
+ React.createElement(Text, { style: props.privacyPolicyLinkStyle, onPress: handleOpenPrivacyLink }, "Privacy Policy.")), styles: styles === null || styles === void 0 ? void 0 : styles.checkboxStyles }),
563
+ ticketHoldersData.length > 0 && (React.createElement(React.Fragment, null,
564
+ React.createElement(Text, { style: styles === null || styles === void 0 ? void 0 : styles.headers }, " Ticket Holders"),
565
+ renderTicketHolders())),
566
+ React.createElement(Button, { onPress: onSubmit, text: (texts === null || texts === void 0 ? void 0 : texts.checkoutButton) || 'CHECKOUT', isDisabled: !isDataValid, isLoading: isSubmittingData, styles: !isDataValid
567
+ ? {
568
+ button: s.submitButtonDisabled,
569
+ ...styles === null || styles === void 0 ? void 0 : styles.checkoutButtonDisabled,
570
+ }
571
+ : {
572
+ container: [
573
+ s.submitButton,
574
+ (_b = styles === null || styles === void 0 ? void 0 : styles.checkoutButton) === null || _b === void 0 ? void 0 : _b.container,
575
+ ],
576
+ text: (_c = styles === null || styles === void 0 ? void 0 : styles.checkoutButton) === null || _c === void 0 ? void 0 : _c.text,
577
+ button: (_d = styles === null || styles === void 0 ? void 0 : styles.checkoutButton) === null || _d === void 0 ? void 0 : _d.button,
578
+ } })),
579
+ isLoading && React.createElement(Loading, null)));
580
+ //#endregion
581
+ };
582
+ export default Billing;
583
+ //# sourceMappingURL=Billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Billing.js","sourceRoot":"","sources":["../../../src/containers/billingInfo/Billing.tsx"],"names":[],"mappings":"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"}