ordering-ui-react-native 0.17.2 → 0.17.3-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 (215) hide show
  1. package/package.json +5 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/styles.tsx +8 -14
  4. package/src/components/BusinessInformation/index.tsx +11 -4
  5. package/src/components/BusinessInformation/styles.tsx +2 -2
  6. package/src/components/BusinessesListing/index.tsx +1 -1
  7. package/src/components/OrderCreating/index.tsx +1 -21
  8. package/src/components/OrdersOption/index.tsx +54 -56
  9. package/src/components/PaymentOptionsWebView/index.tsx +119 -120
  10. package/src/components/SingleProductReview/index.tsx +7 -4
  11. package/src/components/StripeMethodForm/index.tsx +1 -1
  12. package/src/components/VerifyPhone/styles.tsx +1 -2
  13. package/src/components/shared/OToast.tsx +4 -4
  14. package/src/utils/index.tsx +7 -1
  15. package/themes/business/index.tsx +2 -0
  16. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +265 -240
  17. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  18. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  19. package/themes/business/src/components/Chat/index.tsx +118 -107
  20. package/themes/business/src/components/DriverMap/index.tsx +22 -9
  21. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  22. package/themes/business/src/components/LoginForm/Otp/index.tsx +120 -0
  23. package/themes/business/src/components/LoginForm/Otp/styles.tsx +7 -0
  24. package/themes/business/src/components/LoginForm/index.tsx +238 -80
  25. package/themes/business/src/components/LoginForm/styles.tsx +10 -0
  26. package/themes/business/src/components/MapView/index.tsx +18 -7
  27. package/themes/business/src/components/NewOrderNotification/index.tsx +34 -44
  28. package/themes/business/src/components/OrderDetails/Delivery.tsx +4 -3
  29. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +96 -50
  30. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +59 -62
  31. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  32. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  33. package/themes/business/src/components/OrderMessage/index.tsx +18 -17
  34. package/themes/business/src/components/OrderSummary/index.tsx +113 -121
  35. package/themes/business/src/components/OrdersOption/index.tsx +32 -75
  36. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
  37. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  38. package/themes/business/src/components/PreviousOrders/index.tsx +445 -243
  39. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  40. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  41. package/themes/business/src/components/ReviewCustomer/index.tsx +41 -24
  42. package/themes/business/src/components/StoresList/index.tsx +2 -2
  43. package/themes/business/src/components/shared/OLink.tsx +33 -13
  44. package/themes/business/src/components/shared/OModal.tsx +16 -9
  45. package/themes/business/src/components/shared/OText.tsx +8 -2
  46. package/themes/business/src/types/index.tsx +33 -2
  47. package/themes/business/src/utils/index.tsx +51 -0
  48. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  49. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  50. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  51. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  52. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  53. package/themes/kiosk/src/components/LoginForm/Otp/index.tsx +92 -0
  54. package/themes/kiosk/src/components/LoginForm/Otp/styles.tsx +7 -0
  55. package/themes/kiosk/src/components/LoginForm/index.tsx +473 -151
  56. package/themes/kiosk/src/components/LoginForm/styles.tsx +14 -1
  57. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  58. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  59. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  60. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +3 -2
  61. package/themes/kiosk/src/components/PhoneInputNumber/styles.tsx +1 -3
  62. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  63. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  64. package/themes/kiosk/src/components/shared/OModal.tsx +14 -11
  65. package/themes/kiosk/src/layouts/Container.tsx +7 -1
  66. package/themes/kiosk/src/types/index.d.ts +13 -0
  67. package/themes/kiosk/src/utils/index.tsx +15 -0
  68. package/themes/original/index.tsx +8 -0
  69. package/themes/original/src/components/AddressDetails/index.tsx +29 -11
  70. package/themes/original/src/components/AddressForm/index.tsx +41 -16
  71. package/themes/original/src/components/AddressList/index.tsx +26 -21
  72. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  73. package/themes/original/src/components/AnalyticsSegment/index.tsx +189 -9
  74. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  75. package/themes/original/src/components/BusinessBasicInformation/index.tsx +125 -82
  76. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +9 -4
  77. package/themes/original/src/components/BusinessController/index.tsx +145 -68
  78. package/themes/original/src/components/BusinessController/styles.tsx +22 -9
  79. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  80. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  81. package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
  82. package/themes/original/src/components/BusinessItemAccordion/index.tsx +24 -23
  83. package/themes/original/src/components/BusinessListingSearch/index.tsx +52 -24
  84. package/themes/original/src/components/BusinessPreorder/index.tsx +97 -16
  85. package/themes/original/src/components/BusinessProductsList/index.tsx +20 -11
  86. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  87. package/themes/original/src/components/BusinessProductsListing/index.tsx +617 -490
  88. package/themes/original/src/components/BusinessProductsListing/styles.tsx +7 -13
  89. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  90. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -3
  91. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  92. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +98 -78
  93. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
  94. package/themes/original/src/components/BusinessesListing/index.tsx +5 -3
  95. package/themes/original/src/components/Cart/index.tsx +88 -43
  96. package/themes/original/src/components/CartContent/index.tsx +102 -3
  97. package/themes/original/src/components/CartContent/styles.tsx +15 -1
  98. package/themes/original/src/components/Checkout/index.tsx +311 -178
  99. package/themes/original/src/components/Checkout/styles.tsx +4 -2
  100. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  101. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  102. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  103. package/themes/original/src/components/DriverTips/index.tsx +52 -37
  104. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  105. package/themes/original/src/components/Favorite/index.tsx +7 -4
  106. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  107. package/themes/original/src/components/FavoriteList/index.tsx +70 -80
  108. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  109. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  110. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  111. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
  112. package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
  113. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
  114. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
  115. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +178 -0
  116. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
  117. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
  118. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
  119. package/themes/original/src/components/Help/index.tsx +8 -8
  120. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +11 -22
  121. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
  122. package/themes/original/src/components/HelpGuide/index.tsx +12 -16
  123. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  124. package/themes/original/src/components/HelpOrder/index.tsx +12 -25
  125. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  126. package/themes/original/src/components/Home/index.tsx +13 -4
  127. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  128. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  129. package/themes/original/src/components/LoginForm/Otp/index.tsx +89 -73
  130. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  131. package/themes/original/src/components/LoginForm/index.tsx +43 -19
  132. package/themes/original/src/components/LottieAnimation/index.tsx +78 -0
  133. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  134. package/themes/original/src/components/Messages/index.tsx +32 -10
  135. package/themes/original/src/components/MomentOption/index.tsx +195 -88
  136. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  137. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +117 -96
  138. package/themes/original/src/components/MultiCheckout/index.tsx +248 -83
  139. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  140. package/themes/original/src/components/MultiOrdersDetails/index.tsx +67 -20
  141. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  142. package/themes/original/src/components/MyOrders/index.tsx +66 -17
  143. package/themes/original/src/components/NavBar/index.tsx +6 -11
  144. package/themes/original/src/components/Notifications/index.tsx +144 -0
  145. package/themes/original/src/components/Notifications/styles.tsx +20 -0
  146. package/themes/original/src/components/OrderDetails/OrderEta.tsx +59 -0
  147. package/themes/original/src/components/OrderDetails/index.tsx +262 -347
  148. package/themes/original/src/components/OrderDetails/styles.tsx +10 -1
  149. package/themes/original/src/components/OrderItAgain/index.tsx +47 -43
  150. package/themes/original/src/components/OrderProgress/index.tsx +74 -112
  151. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  152. package/themes/original/src/components/OrderSummary/index.tsx +68 -29
  153. package/themes/original/src/components/OrderTypeSelector/index.tsx +4 -3
  154. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +28 -19
  155. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  156. package/themes/original/src/components/OrdersOption/index.tsx +76 -83
  157. package/themes/original/src/components/PageBanner/index.tsx +171 -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 +3 -3
  162. package/themes/original/src/components/PhoneInputNumber/index.tsx +3 -3
  163. package/themes/original/src/components/PlaceSpot/index.tsx +12 -6
  164. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  165. package/themes/original/src/components/ProductForm/index.tsx +240 -261
  166. package/themes/original/src/components/ProductForm/styles.tsx +4 -7
  167. package/themes/original/src/components/ProductItemAccordion/index.tsx +200 -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 +54 -14
  173. package/themes/original/src/components/Promotions/index.tsx +234 -220
  174. package/themes/original/src/components/Promotions/styles.tsx +10 -3
  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 +377 -270
  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 +79 -66
  187. package/themes/original/src/components/SingleOrderCard/index.tsx +126 -57
  188. package/themes/original/src/components/SingleOrderCard/styles.tsx +10 -8
  189. package/themes/original/src/components/SingleProductCard/index.tsx +111 -56
  190. package/themes/original/src/components/SingleProductCard/styles.tsx +27 -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 +4 -1
  195. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -218
  196. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  197. package/themes/original/src/components/UserDetails/index.tsx +8 -4
  198. package/themes/original/src/components/UserFormDetails/index.tsx +53 -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/Wallets/index.tsx +31 -17
  204. package/themes/original/src/components/Wallets/styles.tsx +2 -0
  205. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  206. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  207. package/themes/original/src/components/shared/OBottomPopup.tsx +1 -1
  208. package/themes/original/src/components/shared/OButton.tsx +6 -2
  209. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  210. package/themes/original/src/components/shared/OInput.tsx +10 -1
  211. package/themes/original/src/components/shared/OModal.tsx +3 -3
  212. package/themes/original/src/layouts/Container.tsx +13 -9
  213. package/themes/original/src/types/index.tsx +46 -8
  214. package/themes/original/src/utils/index.tsx +364 -58
  215. 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';
@@ -83,7 +83,8 @@ const SignupFormUI = (props: SignupParams) => {
83
83
  signUpTab,
84
84
  useSignUpFullDetails,
85
85
  useSignUpOtpEmail,
86
- useSignUpOtpCellphone
86
+ useSignUpOtpCellphone,
87
+ isGuest
87
88
  } = props;
88
89
 
89
90
  const theme = useTheme();
@@ -245,6 +246,7 @@ const SignupFormUI = (props: SignupParams) => {
245
246
  const onSubmit = (values?: any) => {
246
247
  if (phoneInputData.error && signUpTab !== 'otpEmail') {
247
248
  showToast(ToastType.Error, phoneInputData.error);
249
+ Vibration.vibrate()
248
250
  return;
249
251
  }
250
252
  if (
@@ -262,6 +264,7 @@ const SignupFormUI = (props: SignupParams) => {
262
264
  'The field Mobile phone is required.',
263
265
  ),
264
266
  );
267
+ Vibration.vibrate()
265
268
  return;
266
269
  }
267
270
  if (signUpTab === 'otpEmail' || signUpTab === 'otpCellphone') {
@@ -330,6 +333,7 @@ const SignupFormUI = (props: SignupParams) => {
330
333
  await Linking.openURL(url);
331
334
  } else {
332
335
  showToast(ToastType.Error, t('VALIDATION_ERROR_ACTIVE_URL', 'The _attribute_ is not a valid URL.').replace('_attribute_', t('URL', 'URL')))
336
+ Vibration.vibrate()
333
337
  }
334
338
  }
335
339
 
@@ -337,10 +341,12 @@ const SignupFormUI = (props: SignupParams) => {
337
341
  setRecaptchaVerified(false)
338
342
  if (!recaptchaConfig?.siteKey) {
339
343
  showToast(ToastType.Error, t('NO_RECAPTCHA_SITE_KEY', 'The config doesn\'t have recaptcha site key'));
344
+ Vibration.vibrate()
340
345
  return
341
346
  }
342
347
  if (!recaptchaConfig?.baseUrl) {
343
348
  showToast(ToastType.Error, t('NO_RECAPTCHA_BASE_URL', 'The config doesn\'t have recaptcha base url'));
349
+ Vibration.vibrate()
344
350
  return
345
351
  }
346
352
  recaptchaRef.current.open()
@@ -384,10 +390,11 @@ const SignupFormUI = (props: SignupParams) => {
384
390
  baseUrl: configs?.security_recaptcha_base_url?.value || null
385
391
  })
386
392
  showToast(ToastType.Info, t('TRY_AGAIN', 'Please try again'))
393
+ Vibration.vibrate()
387
394
  return
388
395
  }
389
- formState.result?.result &&
390
- showToast(ToastType.Error, formState.result?.result[0]);
396
+ formState.result?.result && showToast(ToastType.Error, formState.result?.result[0]);
397
+ formState.result?.result && Vibration.vibrate()
391
398
  setIsLoadingVerifyModal(false);
392
399
  }
393
400
  }, [formState]);
@@ -395,6 +402,7 @@ const SignupFormUI = (props: SignupParams) => {
395
402
  useEffect(() => {
396
403
  if (Object.keys(errors).length > 0) {
397
404
  setIsLoadingVerifyModal(false);
405
+ Vibration.vibrate()
398
406
  }
399
407
  }, [errors])
400
408
 
@@ -423,6 +431,7 @@ const SignupFormUI = (props: SignupParams) => {
423
431
  ? verifyPhoneState?.result?.result
424
432
  : verifyPhoneState?.result?.result[0];
425
433
  verifyPhoneState.result?.result && showToast(ToastType.Error, message);
434
+ verifyPhoneState.result?.result && Vibration.vibrate()
426
435
  setIsLoadingVerifyModal(false);
427
436
  return;
428
437
  }
@@ -457,16 +466,19 @@ const SignupFormUI = (props: SignupParams) => {
457
466
 
458
467
  return (
459
468
  <View>
460
- <NavBar
461
- title={t('SIGNUP', 'Signup')}
462
- titleAlign={'center'}
463
- onActionLeft={() => navigation?.canGoBack() && navigation.goBack()}
464
- showCall={false}
465
- btnStyle={{ paddingLeft: 0 }}
466
- style={{ flexDirection: 'column', alignItems: 'flex-start' }}
467
- titleWrapStyle={{ paddingHorizontal: 0 }}
468
- titleStyle={{ marginLeft: 0, marginRight: 0 }}
469
- />
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
+ )}
470
482
  <FormSide>
471
483
  {((Number(useSignUpFullDetails) + Number(useSignUpOtpEmail) + Number(useSignUpOtpCellphone)) > 1) && (
472
484
  <SignupWith>
@@ -579,7 +591,7 @@ const SignupFormUI = (props: SignupParams) => {
579
591
  control={control}
580
592
  render={({ onChange, value }: any) => (
581
593
  <OInput
582
- placeholder={t(field.name)}
594
+ placeholder={t(field.name?.replace(/\s/g, '_')?.toUpperCase(), field.name)}
583
595
  style={style.inputStyle}
584
596
  icon={
585
597
  field.code === 'email'
@@ -886,64 +898,65 @@ const SignupFormUI = (props: SignupParams) => {
886
898
  </View>
887
899
  )
888
900
  }
889
- <View
890
- style={{
891
- flexDirection: 'row',
892
- width: '100%',
893
- justifyContent: 'space-between',
894
- alignItems: 'center',
895
- marginVertical: 30,
896
- }}>
897
- <View style={style.line} />
898
- <OText
899
- size={14}
900
- mBottom={10}
901
- style={{ paddingHorizontal: 19 }}
902
- color={theme.colors.disabled}>
903
- {t('OR', 'or')}
904
- </OText>
905
- <View style={style.line} />
906
- </View>
907
-
908
- {configs && Object.keys(configs).length > 0 && (
909
- (((configs?.facebook_login?.value === 'true' || configs?.facebook_login?.value === '1') && configs?.facebook_id?.value) ||
910
- (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)) &&
911
905
  (
912
- <ButtonsWrapper>
913
- <SocialButtons>
914
- {(configs?.facebook_login?.value === 'true' || configs?.facebook_login?.value === '1') &&
915
- configs?.facebook_id?.value &&
916
- facebookLoginEnabled &&
917
- (
918
- <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
919
940
  notificationState={notificationState}
920
- 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() }}
921
943
  handleLoading={(val: boolean) => setIsFBLoading(val)}
922
- handleSuccessFacebookLogin={handleSuccessFacebook}
944
+ handleSuccessGoogleLogin={handleSuccessFacebook}
923
945
  />
924
946
  )}
925
- {(configs?.google_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null) && googleLoginEnabled && (
926
- <GoogleLogin
927
- notificationState={notificationState}
928
- webClientId={configs?.google_login_client_id?.value}
929
- handleErrors={(err: any) => showToast(ToastType.Error, err)}
930
- handleLoading={(val: boolean) => setIsFBLoading(val)}
931
- handleSuccessGoogleLogin={handleSuccessFacebook}
932
- />
933
- )}
934
- {(configs?.apple_login_client_id?.value !== '' && configs?.apple_login_client_id?.value !== null) && appleLoginEnabled && (
935
- <AppleLogin
936
- notificationState={notificationState}
937
- handleErrors={(err: any) => showToast(ToastType.Error, err)}
938
- handleLoading={(val: boolean) => setIsFBLoading(val)}
939
- handleSuccessAppleLogin={handleSuccessFacebook}
940
- />
941
- )}
942
- </SocialButtons>
943
- </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
+ </>
944
958
  )
945
959
  )}
946
-
947
960
  </FormSide>
948
961
  <OModal
949
962
  open={willVerifyOtpState}
@@ -8,12 +8,10 @@ import {
8
8
  import { StyleSheet, TouchableOpacity, View } from 'react-native';
9
9
  import { useTheme } from 'styled-components/native';
10
10
  import { OIcon, OText, OButton } from '../shared';
11
- import IconAntDesign from 'react-native-vector-icons/AntDesign'
12
11
  import { SingleOrderCardParams } from '../../types';
13
12
  import { OAlert } from '../../../../../src/components/shared'
14
-
13
+ import { OrderEta } from '../OrderDetails/OrderEta'
15
14
  import {
16
- Container,
17
15
  InnerContainer,
18
16
  Logo,
19
17
  CardInfoWrapper,
@@ -21,8 +19,11 @@ import {
21
19
  ButtonWrapper,
22
20
  ContentFooter,
23
21
  UnreadMessageCounter,
24
- Price
22
+ Price,
23
+ MultiLogosContainer
25
24
  } from './styles';
25
+ import { LottieAnimation } from '../LottieAnimation';
26
+ import { CardAnimation } from '../shared/CardAnimation';
26
27
 
27
28
  const SingleOrderCardUI = (props: SingleOrderCardParams) => {
28
29
  const {
@@ -46,15 +47,26 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
46
47
 
47
48
  const [reorderSelected, setReorderSelected] = useState<number | null>(null);
48
49
  const [confirm, setConfirm] = useState<any>({ open: false, content: null, handleOnAccept: null, id: null, title: null })
50
+ const [isPressed, setIsPressed] = useState(false)
49
51
 
50
52
  const allowedOrderStatus = [1, 2, 5, 6, 10, 11, 12];
51
53
 
52
54
  const styles = StyleSheet.create({
55
+ container: {
56
+ borderRadius: 7.6,
57
+ marginBottom: 10,
58
+ paddingVertical: 5,
59
+ },
53
60
  logo: {
54
61
  borderRadius: 8,
55
62
  width: 64,
56
63
  height: 64
57
64
  },
65
+ minilogo: {
66
+ borderRadius: 8,
67
+ width: 40,
68
+ height: 40
69
+ },
58
70
  logoWrapper: {
59
71
  overflow: 'hidden',
60
72
  backgroundColor: 'white',
@@ -72,9 +84,13 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
72
84
  marginRight: 2,
73
85
  },
74
86
  reorderLoading: {
75
- width: 80,
76
- height: 40,
77
- borderRadius: 10,
87
+ height: 23,
88
+ paddingLeft: 20,
89
+ paddingRight: 20,
90
+ borderRadius: 23,
91
+ shadowOpacity: 0,
92
+ backgroundColor: theme.colors.primary,
93
+ borderWidth: 0,
78
94
  },
79
95
  reorderbutton: {
80
96
  height: 23,
@@ -100,6 +116,14 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
100
116
  infoText: {
101
117
  flexDirection: 'row',
102
118
  alignItems: 'center'
119
+ },
120
+ cardAnimation: {
121
+ elevation: isPressed ? 2 : 0,
122
+ shadowColor: '#888',
123
+ shadowOffset: { width: 0, height: isPressed ? 2 : 0 },
124
+ shadowRadius: 18,
125
+ shadowOpacity: isPressed ? 0.8 : 0,
126
+ borderRadius: 12,
103
127
  }
104
128
  });
105
129
 
@@ -127,11 +151,12 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
127
151
  order: {
128
152
  id: order?.id,
129
153
  business_id: order?.business_id,
130
- logo: order?.business?.logo,
154
+ logo: order?.business?.length > 1 ? order?.business?.map?.((business: any) => business?.logo) : order?.business?.logo,
131
155
  driver: order?.driver,
132
156
  products: order?.products,
133
157
  review: order?.review,
134
- user_review: order?.user_review
158
+ user_review: order?.user_review,
159
+ business: order?.business
135
160
  },
136
161
  });
137
162
  return
@@ -144,13 +169,16 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
144
169
  onNavigationRedirect('OrderDetails', { orderId: order?.uuid });
145
170
  };
146
171
 
147
- const handleClickViewOrder = (uuid: string) => {
172
+ const handleClickViewOrder = (order: any) => {
148
173
  if (isMessageView) {
149
174
  handleClickOrder(order?.uuid)
150
175
  return
151
176
  }
152
- onNavigationRedirect &&
153
- onNavigationRedirect('OrderDetails', { orderId: uuid });
177
+ if (order?.cart_group_id) {
178
+ onNavigationRedirect?.('MultiOrdersDetails', { orderId: order?.cart_group_id });
179
+ } else {
180
+ onNavigationRedirect?.('OrderDetails', { orderId: order?.uuid });
181
+ }
154
182
  };
155
183
 
156
184
  const handleChangeFavorite = () => {
@@ -159,32 +187,65 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
159
187
 
160
188
  const handleOriginalReorder = () => {
161
189
  setConfirm({ ...confirm, open: false, title: null })
162
- setReorderSelected(order?.id);
163
- handleReorder && handleReorder(order?.id);
164
190
  }
165
191
 
192
+ const hideBusinessLogo = theme?.orders?.components?.business_logo?.hidden
193
+ const hideDate = theme?.orders?.components?.date?.hidden
194
+ const hideBusinessName = theme?.orders?.components?.business_name?.hidden
195
+ const hideOrderNumber = theme?.orders?.components?.order_number?.hidden
196
+ const hideReviewOrderButton = theme?.orders?.components?.review_order_button?.hidden
197
+ const hideReorderButton = theme?.orders?.components?.reorder_button?.hidden
198
+ const hideFavorite = theme?.orders?.components?.favorite?.hidden
199
+ const hideOrderStatus = theme?.orders?.components?.order_status?.hidden
200
+
166
201
  return (
167
202
  <>
168
- <Container
169
- onPress={() => handleClickViewOrder(order?.uuid)}
170
- activeOpacity={0.7}
203
+ <CardAnimation
204
+ onClick={() => handleClickViewOrder(order)}
205
+ style={[styles.container]}
171
206
  >
172
207
  <InnerContainer>
173
- {(!!order.business?.logo || theme?.images?.dummies?.businessLogo) && (
174
- <Logo style={styles.logoWrapper}>
175
- <OIcon
176
- url={optimizeImage(order.business?.logo || theme?.images?.dummies?.businessLogo, 'h_300,c_limit')}
177
- style={styles.logo}
178
- />
179
- </Logo>
208
+ {!hideBusinessLogo && (!!order.business?.logo || theme?.images?.dummies?.businessLogo) && (
209
+ <>
210
+ {order?.business?.length > 1 ? (
211
+ <MultiLogosContainer>
212
+ {order?.business?.map((business: any, i: number) => i < 2 && (
213
+ <Logo
214
+ isMulti
215
+ key={business?.id}
216
+ style={styles.logoWrapper}
217
+ >
218
+ <OIcon
219
+ url={optimizeImage(business?.logo, 'h_300,c_limit')}
220
+ src={optimizeImage(!business?.logo && theme?.images?.dummies?.businessLogo, 'h_300,c_limit')}
221
+ style={styles.minilogo}
222
+ />
223
+ </Logo>
224
+ ))}
225
+ {order?.business?.length > 1 && (order?.business?.length - 2) > 0 && (
226
+ <OText mRight={3}> + {order?.business?.length - 2}</OText>
227
+ )}
228
+ </MultiLogosContainer>
229
+ ) : (
230
+ <Logo style={styles.logoWrapper}>
231
+ <OIcon
232
+ url={optimizeImage(order.business?.logo, 'h_300,c_limit')}
233
+ src={optimizeImage(!order.business?.logo && theme?.images?.dummies?.businessLogo, 'h_300,c_limit')}
234
+ style={styles.logo}
235
+ />
236
+ </Logo>
237
+ )}
238
+ </>
180
239
  )}
181
240
  <CardInfoWrapper>
182
241
  <ContentHeader>
183
- <View style={{ flex: 1 }}>
184
- <OText size={12} lineHeight={18} weight={'600'} numberOfLines={1} ellipsizeMode={'tail'}>
185
- {order.business?.name}
186
- </OText>
187
- </View>
242
+ {(order?.business?.length > 1 && !hideOrderNumber) || (!order?.business?.length && !hideBusinessName) && (
243
+ <View style={{ flex: 1 }}>
244
+ <OText size={12} lineHeight={18} weight={'600'} numberOfLines={1} ellipsizeMode={'tail'}>
245
+ {order?.business?.length > 1 ? `${t('GROUP_ORDER', 'Group Order')} ${t('No', 'No')}. ${order?.cart_group_id}` : order.business?.name}
246
+ </OText>
247
+ </View>
248
+ )}
188
249
  {!!!pastOrders && (
189
250
  <>
190
251
  {isMessageView ? (
@@ -208,7 +269,8 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
208
269
  )}
209
270
  {!!pastOrders && (
210
271
  <ButtonWrapper>
211
- {allowedOrderStatus.includes(parseInt(order?.status)) &&
272
+ {!hideReviewOrderButton &&
273
+ allowedOrderStatus.includes(parseInt(order?.status)) &&
212
274
  !order.review && (
213
275
  <TouchableOpacity
214
276
  onPress={() => handleClickOrderReview(order)}
@@ -218,7 +280,7 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
218
280
  </OText>
219
281
  </TouchableOpacity>
220
282
  )}
221
- {order.cart && (
283
+ {!hideReorderButton && (
222
284
  <OButton
223
285
  text={t('REORDER', 'Reorder')}
224
286
  imgRightSrc={''}
@@ -238,7 +300,7 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
238
300
  <ContentFooter>
239
301
  <View style={{ flex: 1 }}>
240
302
  <View style={styles.infoText}>
241
- {!!!pastOrders && (
303
+ {(!!!pastOrders || order?.business?.length > 1) && !hideOrderNumber && (
242
304
  <>
243
305
  <OText
244
306
  size={10}
@@ -248,7 +310,7 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
248
310
  lineHeight={15}
249
311
  numberOfLines={1}
250
312
  >
251
- {t('ORDER_NO', 'Order No') + '.'}
313
+ {order?.business?.length > 1 ? order?.business?.length : (t('ORDER_NO', 'Order No') + '.')}
252
314
  </OText>
253
315
  <OText
254
316
  size={10}
@@ -257,43 +319,50 @@ const SingleOrderCardUI = (props: SingleOrderCardParams) => {
257
319
  lineHeight={15}
258
320
  numberOfLines={1}
259
321
  >
260
- {order.id + ` \u2022 `}
322
+ {order?.business?.length > 1 ? t('ORDERS', 'orders') + ' \u2022 ' : order.id + ` \u2022 `}
261
323
  </OText>
262
324
  </>
263
325
  )}
326
+ {!hideDate && (
327
+ <OText
328
+ size={10}
329
+ lineHeight={15}
330
+ color={theme.colors.textSecondary}
331
+ style={{ marginVertical: 3 }}
332
+ numberOfLines={1}>
333
+ {
334
+ pastOrders
335
+ ? order?.delivery_datetime_utc ? parseDate(order?.delivery_datetime_utc) : parseDate(order?.delivery_datetime, { utc: false })
336
+ : <OrderEta order={order} />
337
+ }
338
+ </OText>
339
+ )}
340
+ </View>
341
+ {!hideOrderStatus && (
264
342
  <OText
343
+ color={theme.colors.primary}
265
344
  size={10}
266
345
  lineHeight={15}
267
- color={theme.colors.textSecondary}
268
- style={{ marginVertical: 3 }}
269
346
  numberOfLines={1}>
270
- {order?.delivery_datetime_utc ? parseDate(order?.delivery_datetime_utc) : parseDate(order?.delivery_datetime, { utc: false })}
347
+ {getOrderStatus(order.status)?.value}
271
348
  </OText>
272
- </View>
273
- <OText
274
- color={theme.colors.primary}
275
- size={10}
276
- lineHeight={15}
277
- numberOfLines={1}>
278
- {getOrderStatus(order.status)?.value}
279
- </OText>
349
+ )}
280
350
  </View>
281
- {!isMessageView && (
282
- <TouchableOpacity
283
- onPress={handleChangeFavorite}
284
- style={{ marginTop: 5 }}
285
- >
286
- <IconAntDesign
287
- name={order?.favorite ? 'heart' : 'hearto'}
288
- color={theme.colors.danger5}
289
- size={16}
290
- />
291
- </TouchableOpacity>
351
+ {!isMessageView && !order?.business?.length && !hideFavorite && (
352
+ <LottieAnimation
353
+ type='favorite'
354
+ onClick={handleChangeFavorite}
355
+ initialValue={order?.favorite ? 0.75 : 0}
356
+ toValue={order?.favorite ? 0 : 0.75}
357
+ style={{ marginBottom: 5 }}
358
+ iconProps={{ color: theme.colors.danger5, size: 16, style: { top: 7 } }}
359
+ isActive={order?.favorite}
360
+ />
292
361
  )}
293
362
  </ContentFooter>
294
363
  </CardInfoWrapper>
295
364
  </InnerContainer>
296
- </Container>
365
+ </CardAnimation>
297
366
  <OAlert
298
367
  open={confirm.open}
299
368
  title={confirm.title}
@@ -1,11 +1,4 @@
1
- import styled from 'styled-components/native'
2
-
3
- export const Container = styled.TouchableOpacity`
4
- border-radius: 7.6px;
5
- box-shadow: 0 1px 2px #0000001A;
6
- margin-bottom: 10px;
7
- padding-vertical: 5px;
8
- `
1
+ import styled, { css } from 'styled-components/native'
9
2
 
10
3
  export const InnerContainer = styled.View`
11
4
  flex-direction: row;
@@ -15,6 +8,9 @@ export const InnerContainer = styled.View`
15
8
  export const Logo = styled.View`
16
9
  border-radius: 7.6px;
17
10
  margin-right: 12px;
11
+ ${({ isMulti } : any) => isMulti && css`
12
+ margin-right: 5px;
13
+ `}
18
14
  `
19
15
 
20
16
  export const CardInfoWrapper = styled.View`
@@ -52,3 +48,9 @@ export const Price = styled.View`
52
48
  margin-left: 10px;
53
49
  width: 30%;
54
50
  `
51
+
52
+ export const MultiLogosContainer = styled.View`
53
+ display: flex;
54
+ align-items: center;
55
+ flex-direction: row;
56
+ `