ordering-ui-react-native 0.16.75 → 0.16.76-release

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 (216) hide show
  1. package/package.json +6 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/styles.tsx +8 -14
  4. package/src/components/BusinessInformation/index.tsx +19 -4
  5. package/src/components/BusinessInformation/styles.tsx +2 -2
  6. package/src/components/BusinessProductsList/index.tsx +10 -10
  7. package/src/components/BusinessesListing/index.tsx +1 -1
  8. package/src/components/LanguageSelector/index.tsx +21 -16
  9. package/src/components/Messages/index.tsx +2 -2
  10. package/src/components/OrderCreating/index.tsx +2 -2
  11. package/src/components/OrdersOption/index.tsx +54 -56
  12. package/src/components/PaymentOptions/index.tsx +298 -347
  13. package/src/components/PaymentOptionsWebView/index.tsx +119 -120
  14. package/src/components/SingleProductReview/index.tsx +7 -4
  15. package/src/components/VerifyPhone/styles.tsx +1 -2
  16. package/src/components/shared/OToast.tsx +4 -4
  17. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  18. package/src/utils/index.tsx +2 -1
  19. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +260 -238
  20. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  21. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  22. package/themes/business/src/components/Chat/index.tsx +31 -31
  23. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  24. package/themes/business/src/components/LoginForm/Otp/index.tsx +120 -0
  25. package/themes/business/src/components/LoginForm/Otp/styles.tsx +7 -0
  26. package/themes/business/src/components/LoginForm/index.tsx +332 -140
  27. package/themes/business/src/components/LoginForm/styles.tsx +10 -0
  28. package/themes/business/src/components/MapView/index.tsx +14 -3
  29. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  30. package/themes/business/src/components/NewOrderNotification/index.tsx +31 -41
  31. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +70 -43
  32. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +3 -3
  33. package/themes/business/src/components/OrdersOption/index.tsx +63 -73
  34. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  35. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  36. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  37. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  38. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  39. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  40. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  41. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  42. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  43. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
  44. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  45. package/themes/business/src/components/PreviousOrders/index.tsx +440 -245
  46. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  47. package/themes/business/src/components/ProductItemAccordion/index.tsx +24 -5
  48. package/themes/business/src/components/ReviewCustomer/index.tsx +39 -15
  49. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  50. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  51. package/themes/business/src/components/shared/OLink.tsx +33 -13
  52. package/themes/business/src/components/shared/OText.tsx +8 -2
  53. package/themes/business/src/types/index.tsx +29 -3
  54. package/themes/business/src/utils/index.tsx +26 -0
  55. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  56. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  57. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  58. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  59. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  60. package/themes/kiosk/src/components/LoginForm/Otp/index.tsx +92 -0
  61. package/themes/kiosk/src/components/LoginForm/Otp/styles.tsx +7 -0
  62. package/themes/kiosk/src/components/LoginForm/index.tsx +545 -112
  63. package/themes/kiosk/src/components/LoginForm/styles.tsx +18 -0
  64. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  65. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  66. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  67. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +1 -0
  68. package/themes/kiosk/src/components/PhoneInputNumber/styles.tsx +1 -3
  69. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  70. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  71. package/themes/kiosk/src/components/shared/OModal.tsx +14 -11
  72. package/themes/kiosk/src/layouts/Container.tsx +7 -1
  73. package/themes/kiosk/src/types/index.d.ts +15 -0
  74. package/themes/kiosk/src/utils/index.tsx +15 -0
  75. package/themes/original/index.tsx +8 -0
  76. package/themes/original/src/components/AddressDetails/index.tsx +10 -8
  77. package/themes/original/src/components/AddressForm/index.tsx +155 -139
  78. package/themes/original/src/components/AddressList/index.tsx +18 -18
  79. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  80. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  81. package/themes/original/src/components/BusinessBasicInformation/index.tsx +47 -22
  82. package/themes/original/src/components/BusinessController/index.tsx +101 -70
  83. package/themes/original/src/components/BusinessController/styles.tsx +14 -9
  84. package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
  85. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -6
  86. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  87. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  88. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  89. package/themes/original/src/components/BusinessListingSearch/index.tsx +104 -155
  90. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  91. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  92. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  93. package/themes/original/src/components/BusinessProductsList/index.tsx +26 -52
  94. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  95. package/themes/original/src/components/BusinessProductsListing/index.tsx +563 -493
  96. package/themes/original/src/components/BusinessProductsListing/styles.tsx +13 -12
  97. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
  98. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  99. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +116 -81
  100. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
  101. package/themes/original/src/components/BusinessesListing/index.tsx +7 -6
  102. package/themes/original/src/components/Cart/index.tsx +75 -40
  103. package/themes/original/src/components/CartContent/index.tsx +80 -18
  104. package/themes/original/src/components/CartContent/styles.tsx +11 -1
  105. package/themes/original/src/components/Checkout/index.tsx +102 -108
  106. package/themes/original/src/components/Checkout/styles.tsx +4 -3
  107. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  108. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  109. package/themes/original/src/components/DriverTips/index.tsx +47 -37
  110. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  111. package/themes/original/src/components/Favorite/index.tsx +7 -4
  112. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  113. package/themes/original/src/components/FavoriteList/index.tsx +70 -80
  114. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  115. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  116. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  117. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  118. package/themes/original/src/components/GoogleMap/index.tsx +10 -1
  119. package/themes/original/src/components/Help/index.tsx +8 -8
  120. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +14 -20
  121. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
  122. package/themes/original/src/components/HelpGuide/index.tsx +13 -12
  123. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  124. package/themes/original/src/components/HelpOrder/index.tsx +12 -20
  125. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  126. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  127. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  128. package/themes/original/src/components/LoginForm/Otp/index.tsx +89 -73
  129. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  130. package/themes/original/src/components/LoginForm/index.tsx +98 -41
  131. package/themes/original/src/components/LottieAnimation/index.tsx +78 -0
  132. package/themes/original/src/components/MessageListing/index.tsx +7 -40
  133. package/themes/original/src/components/Messages/index.tsx +42 -26
  134. package/themes/original/src/components/MomentOption/index.tsx +23 -14
  135. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  136. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -93
  137. package/themes/original/src/components/MultiCheckout/index.tsx +158 -77
  138. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  139. package/themes/original/src/components/MultiOrdersDetails/index.tsx +85 -34
  140. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  141. package/themes/original/src/components/MyOrders/index.tsx +66 -17
  142. package/themes/original/src/components/NavBar/index.tsx +7 -6
  143. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  144. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  145. package/themes/original/src/components/Notifications/index.tsx +144 -0
  146. package/themes/original/src/components/Notifications/styles.tsx +20 -0
  147. package/themes/original/src/components/OrderDetails/index.tsx +108 -218
  148. package/themes/original/src/components/OrderDetails/styles.tsx +10 -1
  149. package/themes/original/src/components/OrderItAgain/index.tsx +46 -43
  150. package/themes/original/src/components/OrderProgress/index.tsx +81 -105
  151. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  152. package/themes/original/src/components/OrderSummary/index.tsx +2 -2
  153. package/themes/original/src/components/OrderTypeSelector/index.tsx +13 -6
  154. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +93 -97
  155. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  156. package/themes/original/src/components/OrdersOption/index.tsx +86 -92
  157. package/themes/original/src/components/PageBanner/index.tsx +146 -0
  158. package/themes/original/src/components/PageBanner/styles.tsx +11 -0
  159. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  160. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  161. package/themes/original/src/components/PaymentOptions/index.tsx +1 -1
  162. package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
  163. package/themes/original/src/components/PlaceSpot/index.tsx +16 -6
  164. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  165. package/themes/original/src/components/ProductForm/index.tsx +240 -254
  166. package/themes/original/src/components/ProductForm/styles.tsx +5 -8
  167. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  168. package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -10
  169. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +1 -2
  170. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  171. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -49
  172. package/themes/original/src/components/ProfessionalProfile/index.tsx +20 -9
  173. package/themes/original/src/components/Promotions/index.tsx +234 -220
  174. package/themes/original/src/components/Promotions/styles.tsx +7 -2
  175. package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
  176. package/themes/original/src/components/ReviewOrder/index.tsx +43 -11
  177. package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
  178. package/themes/original/src/components/ReviewProducts/index.tsx +8 -5
  179. package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
  180. package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
  181. package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
  182. package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
  183. package/themes/original/src/components/ServiceForm/index.tsx +360 -265
  184. package/themes/original/src/components/Sessions/index.tsx +11 -8
  185. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  186. package/themes/original/src/components/SignupForm/index.tsx +150 -100
  187. package/themes/original/src/components/SingleOrderCard/index.tsx +125 -56
  188. package/themes/original/src/components/SingleOrderCard/styles.tsx +10 -8
  189. package/themes/original/src/components/SingleProductCard/index.tsx +116 -79
  190. package/themes/original/src/components/SingleProductCard/styles.tsx +14 -13
  191. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  192. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  193. package/themes/original/src/components/StripeCardsList/index.tsx +1 -1
  194. package/themes/original/src/components/StripeElementsForm/index.tsx +3 -0
  195. package/themes/original/src/components/UpsellingProducts/index.tsx +244 -215
  196. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  197. package/themes/original/src/components/UserDetails/index.tsx +5 -3
  198. package/themes/original/src/components/UserFormDetails/index.tsx +50 -54
  199. package/themes/original/src/components/UserProfile/index.tsx +58 -35
  200. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  201. package/themes/original/src/components/UserProfileForm/index.tsx +21 -28
  202. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  203. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  204. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  205. package/themes/original/src/components/Wallets/index.tsx +177 -164
  206. package/themes/original/src/components/Wallets/styles.tsx +12 -8
  207. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  208. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  209. package/themes/original/src/components/shared/OBottomPopup.tsx +6 -4
  210. package/themes/original/src/components/shared/OButton.tsx +9 -4
  211. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  212. package/themes/original/src/components/shared/OInput.tsx +10 -1
  213. package/themes/original/src/layouts/Container.tsx +13 -9
  214. package/themes/original/src/types/index.tsx +42 -7
  215. package/themes/original/src/utils/index.tsx +322 -58
  216. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,5 +1,5 @@
1
1
  import React, { useState } from 'react'
2
- import { View, TouchableOpacity } from 'react-native'
2
+ import { View, TouchableOpacity, Platform } from 'react-native'
3
3
  import { useLanguage, useSession, useUtils, Sessions as SessionsController } from 'ordering-components/native'
4
4
  import NavBar from '../NavBar'
5
5
  import { SessionsParams } from '../../types'
@@ -12,7 +12,8 @@ import AntIcon from 'react-native-vector-icons/AntDesign'
12
12
  import {
13
13
  SessionsWrapper,
14
14
  SessionItem,
15
- DurationWrapper
15
+ DurationWrapper,
16
+ Container
16
17
  } from './styles'
17
18
 
18
19
  export const SessionsUI = (props: SessionsParams) => {
@@ -27,7 +28,7 @@ export const SessionsUI = (props: SessionsParams) => {
27
28
  const [, t] = useLanguage()
28
29
  const [{ user }] = useSession()
29
30
  const [{ parseDate }] = useUtils()
30
- const theme = useTheme()
31
+ const theme = useTheme()
31
32
  const [confirm, setConfirm] = useState<any>({ open: false, content: null, handleOnAccept: null, id: null, title: null })
32
33
  const goToBack = () => navigation?.canGoBack() && navigation.goBack()
33
34
 
@@ -61,7 +62,9 @@ export const SessionsUI = (props: SessionsParams) => {
61
62
  }
62
63
 
63
64
  return (
64
- <>
65
+ <Container
66
+ pdng={Platform.OS === 'ios' ? '10px' : '0'}
67
+ >
65
68
  <NavBar
66
69
  title={t('SESSIONS', 'Sessions')}
67
70
  titleAlign={'center'}
@@ -77,11 +80,11 @@ export const SessionsUI = (props: SessionsParams) => {
77
80
  <SessionItem key={i}>
78
81
  <Placeholder Animation={Fade}>
79
82
  <View style={{ flexDirection: 'row', alignItems: 'center' }}>
80
- <View style={{ flex: 1}}>
83
+ <View style={{ flex: 1 }}>
81
84
  <PlaceholderLine width={40} />
82
85
  <PlaceholderLine width={40} />
83
86
  </View>
84
- <PlaceholderLine width={5}/>
87
+ <PlaceholderLine width={5} />
85
88
  </View>
86
89
  </Placeholder>
87
90
  </SessionItem>
@@ -120,7 +123,7 @@ export const SessionsUI = (props: SessionsParams) => {
120
123
  style={{ borderRadius: 7.6, marginTop: 20 }}
121
124
  />
122
125
  </SessionsWrapper>
123
- ) : (
126
+ ) : (
124
127
  <OText>{t('YOU_DONT_HAVE_ANY_SESSIONS', 'You don\'t have any sessions')}</OText>
125
128
  )
126
129
  )}
@@ -147,7 +150,7 @@ export const SessionsUI = (props: SessionsParams) => {
147
150
  onCancel={() => setConfirm({ ...confirm, open: false, title: null })}
148
151
  onClose={() => setConfirm({ ...confirm, open: false, title: null })}
149
152
  />
150
- </>
153
+ </Container>
151
154
  )
152
155
  }
153
156
 
@@ -13,3 +13,8 @@ export const SessionItem = styled.View`
13
13
  export const DurationWrapper = styled.View`
14
14
  /* flex-direction: row; */
15
15
  `
16
+
17
+ export const Container = styled.View`
18
+ padding-top: ${(props: any) => props.pdng};
19
+ margin-bottom: 50px;
20
+ `
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
- import { View, Pressable, StyleSheet, Linking, Platform, TouchableOpacity } from 'react-native';
2
+ import { View, Pressable, StyleSheet, Linking, Platform, TouchableOpacity, Vibration } from 'react-native';
3
3
  import { useForm, Controller } from 'react-hook-form';
4
4
  import Spinner from 'react-native-loading-spinner-overlay';
5
5
  import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
@@ -7,6 +7,7 @@ import CheckBox from '@react-native-community/checkbox';
7
7
  import { PhoneInputNumber } from '../PhoneInputNumber';
8
8
  import { FacebookLogin } from '../FacebookLogin';
9
9
  import Recaptcha from 'react-native-recaptcha-that-works'
10
+ import ReCaptcha from '@fatnlazycat/react-native-recaptcha-v3'
10
11
 
11
12
  import {
12
13
  SignupForm as SignUpController,
@@ -82,7 +83,8 @@ const SignupFormUI = (props: SignupParams) => {
82
83
  signUpTab,
83
84
  useSignUpFullDetails,
84
85
  useSignUpOtpEmail,
85
- useSignUpOtpCellphone
86
+ useSignUpOtpCellphone,
87
+ isGuest
86
88
  } = props;
87
89
 
88
90
  const theme = useTheme();
@@ -244,6 +246,7 @@ const SignupFormUI = (props: SignupParams) => {
244
246
  const onSubmit = (values?: any) => {
245
247
  if (phoneInputData.error && signUpTab !== 'otpEmail') {
246
248
  showToast(ToastType.Error, phoneInputData.error);
249
+ Vibration.vibrate()
247
250
  return;
248
251
  }
249
252
  if (
@@ -261,6 +264,7 @@ const SignupFormUI = (props: SignupParams) => {
261
264
  'The field Mobile phone is required.',
262
265
  ),
263
266
  );
267
+ Vibration.vibrate()
264
268
  return;
265
269
  }
266
270
  if (signUpTab === 'otpEmail' || signUpTab === 'otpCellphone') {
@@ -329,6 +333,7 @@ const SignupFormUI = (props: SignupParams) => {
329
333
  await Linking.openURL(url);
330
334
  } else {
331
335
  showToast(ToastType.Error, t('VALIDATION_ERROR_ACTIVE_URL', 'The _attribute_ is not a valid URL.').replace('_attribute_', t('URL', 'URL')))
336
+ Vibration.vibrate()
332
337
  }
333
338
  }
334
339
 
@@ -336,10 +341,12 @@ const SignupFormUI = (props: SignupParams) => {
336
341
  setRecaptchaVerified(false)
337
342
  if (!recaptchaConfig?.siteKey) {
338
343
  showToast(ToastType.Error, t('NO_RECAPTCHA_SITE_KEY', 'The config doesn\'t have recaptcha site key'));
344
+ Vibration.vibrate()
339
345
  return
340
346
  }
341
347
  if (!recaptchaConfig?.baseUrl) {
342
348
  showToast(ToastType.Error, t('NO_RECAPTCHA_BASE_URL', 'The config doesn\'t have recaptcha base url'));
349
+ Vibration.vibrate()
343
350
  return
344
351
  }
345
352
  recaptchaRef.current.open()
@@ -347,22 +354,47 @@ const SignupFormUI = (props: SignupParams) => {
347
354
 
348
355
  const onRecaptchaVerify = (token: any) => {
349
356
  setRecaptchaVerified(true)
350
- handleReCaptcha && handleReCaptcha(token)
357
+ handleReCaptcha && handleReCaptcha({ code: token, version: recaptchaConfig?.version })
351
358
  }
352
359
 
353
360
  useEffect(() => {
354
361
  if (configs && Object.keys(configs).length > 0 && enableReCaptcha) {
355
- setRecaptchaConfig({
356
- siteKey: configs?.security_recaptcha_site_key?.value || null,
357
- baseUrl: configs?.security_recaptcha_base_url?.value || null
358
- })
362
+ if (configs?.security_recaptcha_type?.value === 'v3' &&
363
+ configs?.security_recaptcha_score_v3?.value > 0 &&
364
+ configs?.security_recaptcha_site_key_v3?.value
365
+ ) {
366
+ setRecaptchaConfig({
367
+ version: 'v3',
368
+ siteKey: configs?.security_recaptcha_site_key_v3?.value || null,
369
+ baseUrl: configs?.security_recaptcha_base_url?.value || null
370
+ })
371
+ return
372
+ }
373
+ if (configs?.security_recaptcha_site_key?.value) {
374
+ setRecaptchaConfig({
375
+ version: 'v2',
376
+ siteKey: configs?.security_recaptcha_site_key?.value || null,
377
+ baseUrl: configs?.security_recaptcha_base_url?.value || null
378
+ })
379
+ }
359
380
  }
360
381
  }, [configs, enableReCaptcha])
361
382
 
362
383
  useEffect(() => {
363
384
  if (!formState.loading && formState.result?.error) {
364
- formState.result?.result &&
365
- showToast(ToastType.Error, formState.result?.result[0]);
385
+ if (formState.result?.result?.[0] === 'ERROR_AUTH_VERIFICATION_CODE') {
386
+ setRecaptchaVerified(false)
387
+ setRecaptchaConfig({
388
+ version: 'v2',
389
+ siteKey: configs?.security_recaptcha_site_key?.value || null,
390
+ baseUrl: configs?.security_recaptcha_base_url?.value || null
391
+ })
392
+ showToast(ToastType.Info, t('TRY_AGAIN', 'Please try again'))
393
+ Vibration.vibrate()
394
+ return
395
+ }
396
+ formState.result?.result && showToast(ToastType.Error, formState.result?.result[0]);
397
+ formState.result?.result && Vibration.vibrate()
366
398
  setIsLoadingVerifyModal(false);
367
399
  }
368
400
  }, [formState]);
@@ -370,6 +402,7 @@ const SignupFormUI = (props: SignupParams) => {
370
402
  useEffect(() => {
371
403
  if (Object.keys(errors).length > 0) {
372
404
  setIsLoadingVerifyModal(false);
405
+ Vibration.vibrate()
373
406
  }
374
407
  }, [errors])
375
408
 
@@ -398,6 +431,7 @@ const SignupFormUI = (props: SignupParams) => {
398
431
  ? verifyPhoneState?.result?.result
399
432
  : verifyPhoneState?.result?.result[0];
400
433
  verifyPhoneState.result?.result && showToast(ToastType.Error, message);
434
+ verifyPhoneState.result?.result && Vibration.vibrate()
401
435
  setIsLoadingVerifyModal(false);
402
436
  return;
403
437
  }
@@ -432,16 +466,19 @@ const SignupFormUI = (props: SignupParams) => {
432
466
 
433
467
  return (
434
468
  <View>
435
- <NavBar
436
- title={t('SIGNUP', 'Signup')}
437
- titleAlign={'center'}
438
- onActionLeft={() => navigation?.canGoBack() && navigation.goBack()}
439
- showCall={false}
440
- btnStyle={{ paddingLeft: 0 }}
441
- style={{ flexDirection: 'column', alignItems: 'flex-start' }}
442
- titleWrapStyle={{ paddingHorizontal: 0 }}
443
- titleStyle={{ marginLeft: 0, marginRight: 0 }}
444
- />
469
+ {isGuest ? (
470
+ <OText style={{ textAlign: 'center', marginBottom: 10 }} size={18}>{t('SIGNUP', 'Signup')}</OText>
471
+ ) : (
472
+ <NavBar
473
+ title={t('SIGNUP', 'Signup')}
474
+ titleAlign={'center'}
475
+ onActionLeft={() => navigation?.canGoBack() && navigation.goBack()}
476
+ showCall={false}
477
+ btnStyle={{ paddingLeft: 0 }}
478
+ titleWrapStyle={{ paddingHorizontal: 0 }}
479
+ titleStyle={{ marginLeft: 0, marginRight: 0 }}
480
+ />
481
+ )}
445
482
  <FormSide>
446
483
  {((Number(useSignUpFullDetails) + Number(useSignUpOtpEmail) + Number(useSignUpOtpCellphone)) > 1) && (
447
484
  <SignupWith>
@@ -610,7 +647,6 @@ const SignupFormUI = (props: SignupParams) => {
610
647
  }
611
648
  })}
612
649
  forwardRef={phoneRef}
613
- defaultCode={formState?.country_code ?? formState?.country_phone_code ?? null}
614
650
  changeCountry={(val: any) => setPhoneInputData({
615
651
  ...phoneInputData,
616
652
  phone: {
@@ -627,36 +663,49 @@ const SignupFormUI = (props: SignupParams) => {
627
663
  </View>
628
664
  )}
629
665
 
630
- {enableReCaptcha && (
666
+ {(enableReCaptcha && recaptchaConfig?.version) && (
631
667
  <>
632
- <TouchableOpacity
633
- onPress={handleOpenRecaptcha}
634
- style={{ marginHorizontal: 4, marginBottom: 10 }}
635
- >
636
- <RecaptchaButton>
637
- {recaptchaVerified ? (
638
- <MaterialCommunityIcons
639
- name="checkbox-marked"
640
- size={23}
641
- color={theme.colors.primary}
642
- />
643
- ) : (
644
- <MaterialCommunityIcons
645
- name="checkbox-blank-outline"
646
- size={23}
647
- color={theme.colors.disabled}
648
- />
649
- )}
650
- <OText size={14} mLeft={8}>{t('VERIFY_ReCAPTCHA', 'Verify reCAPTCHA')}</OText>
651
- </RecaptchaButton>
652
- </TouchableOpacity>
653
- <Recaptcha
654
- ref={recaptchaRef}
655
- siteKey={recaptchaConfig?.siteKey}
656
- baseUrl={recaptchaConfig?.baseUrl}
657
- onVerify={onRecaptchaVerify}
658
- onExpire={() => setRecaptchaVerified(false)}
659
- />
668
+ {recaptchaConfig?.version === 'v3' ? (
669
+ <ReCaptcha
670
+ url={recaptchaConfig?.baseUrl}
671
+ siteKey={recaptchaConfig?.siteKey}
672
+ containerStyle={{ height: 40 }}
673
+ onExecute={onRecaptchaVerify}
674
+ reCaptchaType={1}
675
+ />
676
+ ) : (
677
+ <>
678
+ <TouchableOpacity
679
+ onPress={handleOpenRecaptcha}
680
+ style={{ marginHorizontal: 4, marginBottom: 10 }}
681
+ >
682
+ <RecaptchaButton>
683
+ {recaptchaVerified ? (
684
+ <MaterialCommunityIcons
685
+ name="checkbox-marked"
686
+ size={23}
687
+ color={theme.colors.primary}
688
+ />
689
+ ) : (
690
+ <MaterialCommunityIcons
691
+ name="checkbox-blank-outline"
692
+ size={23}
693
+ color={theme.colors.disabled}
694
+ />
695
+ )}
696
+ <OText size={14} mLeft={8}>{t('VERIFY_ReCAPTCHA', 'Verify reCAPTCHA')}</OText>
697
+ </RecaptchaButton>
698
+ </TouchableOpacity>
699
+ <Recaptcha
700
+ ref={recaptchaRef}
701
+ siteKey={recaptchaConfig?.siteKey}
702
+ baseUrl={recaptchaConfig?.baseUrl}
703
+ onVerify={onRecaptchaVerify}
704
+ onExpire={() => setRecaptchaVerified(false)}
705
+ />
706
+ </>
707
+ )}
708
+
660
709
  </>
661
710
  )}
662
711
  {(signUpTab === 'default') && (
@@ -849,64 +898,65 @@ const SignupFormUI = (props: SignupParams) => {
849
898
  </View>
850
899
  )
851
900
  }
852
- <View
853
- style={{
854
- flexDirection: 'row',
855
- width: '100%',
856
- justifyContent: 'space-between',
857
- alignItems: 'center',
858
- marginVertical: 30,
859
- }}>
860
- <View style={style.line} />
861
- <OText
862
- size={14}
863
- mBottom={10}
864
- style={{ paddingHorizontal: 19 }}
865
- color={theme.colors.disabled}>
866
- {t('OR', 'or')}
867
- </OText>
868
- <View style={style.line} />
869
- </View>
870
-
871
- {configs && Object.keys(configs).length > 0 && (
872
- (((configs?.facebook_login?.value === 'true' || configs?.facebook_login?.value === '1') && configs?.facebook_id?.value) ||
873
- (configs?.google_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null)) &&
901
+ {configs && Object.keys(configs).length > 0 && !isGuest && (
902
+ (((configs?.facebook_login?.value === 'true' || configs?.facebook_login?.value === '1') && configs?.facebook_id?.value && facebookLoginEnabled) ||
903
+ ((configs?.google_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null) && googleLoginEnabled) ||
904
+ ((configs?.apple_login_client_id?.value !== '' && configs?.apple_login_client_id?.value !== null) && appleLoginEnabled)) &&
874
905
  (
875
- <ButtonsWrapper>
876
- <SocialButtons>
877
- {(configs?.facebook_login?.value === 'true' || configs?.facebook_login?.value === '1') &&
878
- configs?.facebook_id?.value &&
879
- facebookLoginEnabled &&
880
- (
881
- <FacebookLogin
906
+ <>
907
+ <View
908
+ style={{
909
+ flexDirection: 'row',
910
+ width: '100%',
911
+ justifyContent: 'space-between',
912
+ alignItems: 'center',
913
+ marginVertical: 30,
914
+ }}>
915
+ <View style={style.line} />
916
+ <OText
917
+ size={14}
918
+ mBottom={10}
919
+ style={{ paddingHorizontal: 19 }}
920
+ color={theme.colors.disabled}>
921
+ {t('OR', 'or')}
922
+ </OText>
923
+ <View style={style.line} />
924
+ </View>
925
+ <ButtonsWrapper>
926
+ <SocialButtons>
927
+ {(configs?.facebook_login?.value === 'true' || configs?.facebook_login?.value === '1') &&
928
+ configs?.facebook_id?.value &&
929
+ facebookLoginEnabled &&
930
+ (
931
+ <FacebookLogin
932
+ notificationState={notificationState}
933
+ handleErrors={(err: any) => { showToast(ToastType.Error, err), Vibration.vibrate() }}
934
+ handleLoading={(val: boolean) => setIsFBLoading(val)}
935
+ handleSuccessFacebookLogin={handleSuccessFacebook}
936
+ />
937
+ )}
938
+ {(configs?.google_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null) && googleLoginEnabled && (
939
+ <GoogleLogin
882
940
  notificationState={notificationState}
883
- handleErrors={(err: any) => showToast(ToastType.Error, err)}
941
+ webClientId={configs?.google_login_client_id?.value}
942
+ handleErrors={(err: any) => { showToast(ToastType.Error, err), Vibration.vibrate() }}
884
943
  handleLoading={(val: boolean) => setIsFBLoading(val)}
885
- handleSuccessFacebookLogin={handleSuccessFacebook}
944
+ handleSuccessGoogleLogin={handleSuccessFacebook}
886
945
  />
887
946
  )}
888
- {(configs?.google_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null) && googleLoginEnabled && (
889
- <GoogleLogin
890
- notificationState={notificationState}
891
- webClientId={configs?.google_login_client_id?.value}
892
- handleErrors={(err: any) => showToast(ToastType.Error, err)}
893
- handleLoading={(val: boolean) => setIsFBLoading(val)}
894
- handleSuccessGoogleLogin={handleSuccessFacebook}
895
- />
896
- )}
897
- {(configs?.apple_login_client_id?.value !== '' && configs?.apple_login_client_id?.value !== null) && appleLoginEnabled && (
898
- <AppleLogin
899
- notificationState={notificationState}
900
- handleErrors={(err: any) => showToast(ToastType.Error, err)}
901
- handleLoading={(val: boolean) => setIsFBLoading(val)}
902
- handleSuccessAppleLogin={handleSuccessFacebook}
903
- />
904
- )}
905
- </SocialButtons>
906
- </ButtonsWrapper>
947
+ {(configs?.apple_login_client_id?.value !== '' && configs?.apple_login_client_id?.value !== null) && appleLoginEnabled && (
948
+ <AppleLogin
949
+ notificationState={notificationState}
950
+ handleErrors={(err: any) => { showToast(ToastType.Error, err), Vibration.vibrate() }}
951
+ handleLoading={(val: boolean) => setIsFBLoading(val)}
952
+ handleSuccessAppleLogin={handleSuccessFacebook}
953
+ />
954
+ )}
955
+ </SocialButtons>
956
+ </ButtonsWrapper>
957
+ </>
907
958
  )
908
959
  )}
909
-
910
960
  </FormSide>
911
961
  <OModal
912
962
  open={willVerifyOtpState}