ordering-ui-react-native 0.17.69 → 0.17.70-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 (205) hide show
  1. package/package.json +8 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/OrderCreating/index.tsx +1 -21
  6. package/src/components/PaymentOptionsWebView/index.tsx +29 -8
  7. package/src/components/PhoneInputNumber/index.tsx +6 -2
  8. package/src/components/StripeMethodForm/index.tsx +136 -102
  9. package/src/components/VerifyPhone/styles.tsx +1 -2
  10. package/src/components/shared/OToast.tsx +3 -2
  11. package/src/types/index.tsx +5 -0
  12. package/src/utils/index.tsx +5 -0
  13. package/themes/business/index.tsx +2 -0
  14. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +270 -245
  15. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  16. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  17. package/themes/business/src/components/Chat/index.tsx +124 -111
  18. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  19. package/themes/business/src/components/DriverSchedule/index.tsx +45 -8
  20. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  21. package/themes/business/src/components/LoginForm/Otp/index.tsx +31 -3
  22. package/themes/business/src/components/LoginForm/index.tsx +15 -22
  23. package/themes/business/src/components/MapView/index.tsx +10 -10
  24. package/themes/business/src/components/MessagesOption/index.tsx +20 -93
  25. package/themes/business/src/components/NewOrderNotification/index.tsx +35 -21
  26. package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
  27. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  28. package/themes/business/src/components/OrderDetails/Delivery.tsx +191 -6
  29. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +103 -39
  30. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +61 -60
  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 +19 -18
  34. package/themes/business/src/components/OrderSummary/index.tsx +114 -123
  35. package/themes/business/src/components/OrdersOption/index.tsx +21 -20
  36. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  37. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  38. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +17 -12
  39. package/themes/business/src/components/PreviousOrders/OrderList.tsx +88 -0
  40. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +2 -2
  41. package/themes/business/src/components/PreviousOrders/index.tsx +289 -217
  42. package/themes/business/src/components/PreviousOrders/styles.tsx +1 -1
  43. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  44. package/themes/business/src/components/ReviewCustomer/index.tsx +18 -13
  45. package/themes/business/src/components/StoresList/index.tsx +3 -4
  46. package/themes/business/src/components/UserProfileForm/index.tsx +11 -13
  47. package/themes/business/src/components/shared/OLink.tsx +11 -3
  48. package/themes/business/src/components/shared/OModal.tsx +16 -9
  49. package/themes/business/src/components/shared/OText.tsx +6 -1
  50. package/themes/business/src/types/index.tsx +30 -13
  51. package/themes/business/src/utils/index.tsx +29 -2
  52. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  53. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  54. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  55. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  56. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  57. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -9
  58. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  59. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  60. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  61. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  62. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  63. package/themes/original/index.tsx +1 -1
  64. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  65. package/themes/original/src/components/AddressForm/index.tsx +61 -39
  66. package/themes/original/src/components/AddressList/index.tsx +27 -22
  67. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  68. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  69. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  70. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  71. package/themes/original/src/components/BusinessBasicInformation/index.tsx +153 -96
  72. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
  73. package/themes/original/src/components/BusinessController/index.tsx +80 -66
  74. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  75. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  76. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  77. package/themes/original/src/components/BusinessInformation/index.tsx +139 -85
  78. package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
  79. package/themes/original/src/components/BusinessListingSearch/index.tsx +349 -339
  80. package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -18
  81. package/themes/original/src/components/BusinessPreorder/index.tsx +103 -19
  82. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -2
  83. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  84. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  85. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  86. package/themes/original/src/components/BusinessProductsListing/index.tsx +684 -556
  87. package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
  88. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  89. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  90. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +69 -38
  91. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +0 -1
  92. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  93. package/themes/original/src/components/Cart/index.tsx +77 -79
  94. package/themes/original/src/components/CartContent/index.tsx +117 -20
  95. package/themes/original/src/components/CartContent/styles.tsx +17 -7
  96. package/themes/original/src/components/Checkout/index.tsx +356 -124
  97. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  98. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  99. package/themes/original/src/components/DriverTips/index.tsx +52 -34
  100. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  101. package/themes/original/src/components/Favorite/index.tsx +8 -9
  102. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  103. package/themes/original/src/components/FavoriteList/index.tsx +1 -35
  104. package/themes/original/src/components/FloatingButton/index.tsx +11 -14
  105. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  106. package/themes/original/src/components/GPSButton/index.tsx +6 -4
  107. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
  108. package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
  109. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
  110. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
  111. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +191 -0
  112. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
  113. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
  114. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
  115. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  116. package/themes/original/src/components/GoogleMap/index.tsx +60 -5
  117. package/themes/original/src/components/Help/index.tsx +8 -8
  118. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +10 -31
  119. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +5 -3
  120. package/themes/original/src/components/HelpGuide/index.tsx +6 -6
  121. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  122. package/themes/original/src/components/HelpOrder/index.tsx +6 -15
  123. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  124. package/themes/original/src/components/Home/index.tsx +13 -4
  125. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  126. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  127. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  128. package/themes/original/src/components/LottieAnimation/index.tsx +89 -55
  129. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  130. package/themes/original/src/components/Messages/index.tsx +14 -7
  131. package/themes/original/src/components/MomentOption/index.tsx +195 -90
  132. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  133. package/themes/original/src/components/MultiCart/index.tsx +41 -54
  134. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +162 -50
  135. package/themes/original/src/components/MultiCheckout/index.tsx +329 -100
  136. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  137. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  138. package/themes/original/src/components/MultiOrdersDetails/index.tsx +54 -21
  139. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  140. package/themes/original/src/components/MyOrders/index.tsx +40 -29
  141. package/themes/original/src/components/NavBar/index.tsx +20 -17
  142. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  143. package/themes/original/src/components/Notifications/index.tsx +46 -50
  144. package/themes/original/src/components/Notifications/styles.tsx +6 -3
  145. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  146. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +21 -5
  147. package/themes/original/src/components/OrderDetails/index.tsx +191 -363
  148. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  149. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  150. package/themes/original/src/components/OrderProgress/index.tsx +30 -56
  151. package/themes/original/src/components/OrderSummary/index.tsx +88 -59
  152. package/themes/original/src/components/OrderTypeSelector/index.tsx +2 -1
  153. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
  154. package/themes/original/src/components/OrdersOption/index.tsx +68 -87
  155. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  156. package/themes/original/src/components/PageBanner/index.tsx +98 -38
  157. package/themes/original/src/components/PageBanner/styles.tsx +0 -10
  158. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -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 +78 -35
  162. package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
  163. package/themes/original/src/components/ProductForm/index.tsx +105 -30
  164. package/themes/original/src/components/ProductForm/styles.tsx +5 -5
  165. package/themes/original/src/components/ProductItemAccordion/index.tsx +12 -9
  166. package/themes/original/src/components/ProductOptionSubOption/index.tsx +20 -18
  167. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +5 -9
  168. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  169. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
  170. package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
  171. package/themes/original/src/components/Promotions/index.tsx +5 -4
  172. package/themes/original/src/components/Promotions/styles.tsx +3 -1
  173. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  174. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  175. package/themes/original/src/components/ServiceForm/index.tsx +66 -17
  176. package/themes/original/src/components/Sessions/index.tsx +11 -8
  177. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  178. package/themes/original/src/components/SignupForm/index.tsx +43 -27
  179. package/themes/original/src/components/SingleOrderCard/index.tsx +101 -62
  180. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  181. package/themes/original/src/components/SingleProductCard/index.tsx +72 -31
  182. package/themes/original/src/components/SingleProductCard/styles.tsx +20 -4
  183. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  184. package/themes/original/src/components/StripeCardsList/index.tsx +49 -5
  185. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  186. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  187. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -224
  188. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  189. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  190. package/themes/original/src/components/UserFormDetails/index.tsx +76 -7
  191. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  192. package/themes/original/src/components/UserProfile/index.tsx +88 -79
  193. package/themes/original/src/components/UserProfileForm/index.tsx +27 -29
  194. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  195. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  196. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  197. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  198. package/themes/original/src/components/Wallets/index.tsx +66 -30
  199. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  200. package/themes/original/src/components/shared/OButton.tsx +6 -2
  201. package/themes/original/src/components/shared/OInput.tsx +6 -1
  202. package/themes/original/src/components/shared/OModal.tsx +3 -3
  203. package/themes/original/src/types/index.tsx +42 -11
  204. package/themes/original/src/utils/index.tsx +273 -1
  205. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,6 +1,6 @@
1
- import React, { useEffect } from 'react'
1
+ import React, { useEffect, useState } from 'react'
2
2
  import { formatSeconds } from '../../../utils'
3
- import { StyleSheet, TouchableOpacity } from 'react-native';
3
+ import { StyleSheet, TouchableOpacity, Alert } from 'react-native';
4
4
  import { useCountdownTimer } from '../../../../../../src/hooks/useCountdownTimer';
5
5
  import { useLanguage } from 'ordering-components/native';
6
6
  import { OTPContainer } from './styles';
@@ -16,11 +16,13 @@ export const Otp = (props: otpParams) => {
16
16
  onSubmit,
17
17
  handleLoginOtp,
18
18
  setAlertState,
19
- pinCount
19
+ pinCount,
20
+ formState
20
21
  } = props
21
22
 
22
23
  const theme = useTheme();
23
24
  const [, t] = useLanguage();
25
+ const [code, setCode] = useState('')
24
26
  const [otpLeftTime, _, resetOtpLeftTime]: any = useCountdownTimer(
25
27
  600, willVerifyOtpState)
26
28
 
@@ -44,6 +46,30 @@ export const Otp = (props: otpParams) => {
44
46
  }
45
47
  }, [otpLeftTime])
46
48
 
49
+ useEffect(() => {
50
+ if (!formState?.loading && formState?.result?.error) {
51
+ Alert.alert(
52
+ t('ERROR', 'Error'),
53
+ typeof formState.result?.result === 'string'
54
+ ? formState.result?.result
55
+ : formState.result?.result[0],
56
+ [
57
+ {
58
+ text: t('ACCEPT', 'Accept'),
59
+ onPress: () => {},
60
+ style: 'cancel'
61
+ },
62
+ ],
63
+ { cancelable: false }
64
+ )
65
+
66
+ if (code.length === (pinCount || 6)) {
67
+ setCode('')
68
+ }
69
+
70
+ }
71
+ }, [formState])
72
+
47
73
  const loginStyle = StyleSheet.create({
48
74
  underlineStyleBase: {
49
75
  width: 45,
@@ -72,6 +98,8 @@ export const Otp = (props: otpParams) => {
72
98
  onCodeFilled={(code: string) => handleLoginOtp(code)}
73
99
  selectionColor={theme.colors.primary}
74
100
  editable
101
+ code={code}
102
+ onCodeChanged={(code: string) => setCode(code)}
75
103
  />
76
104
  <TouchableOpacity onPress={() => handleOnSubmit()} disabled={otpLeftTime > 520}>
77
105
  <OText size={16} mBottom={30} color={otpLeftTime > 520 ? theme.colors.disabled : theme.colors.primary}>
@@ -209,11 +209,11 @@ const LoginFormUI = (props: LoginParams) => {
209
209
  props.handleChangeTab(val);
210
210
 
211
211
  if (loginTab === 'email') {
212
- scrollRefTab.current?.scrollToEnd({ animated: true });
212
+ scrollRefTab?.current?.scrollToEnd && scrollRefTab.current?.scrollToEnd({ animated: true });
213
213
  }
214
214
 
215
215
  if (loginTab === 'cellphone') {
216
- scrollRefTab.current?.scrollTo({ animated: true });
216
+ scrollRefTab?.current?.scrollTo && scrollRefTab.current?.scrollTo({ animated: true });
217
217
  }
218
218
  };
219
219
 
@@ -280,7 +280,6 @@ const LoginFormUI = (props: LoginParams) => {
280
280
 
281
281
  const handleLoginOtp = (code: string) => {
282
282
  handleButtonLoginClick({ code })
283
- setWillVerifyOtpState(false)
284
283
  }
285
284
 
286
285
  const closeAlert = () => {
@@ -329,27 +328,17 @@ const LoginFormUI = (props: LoginParams) => {
329
328
  showToast(ToastType.Info, t('TRY_AGAIN', 'Please try again'))
330
329
  return
331
330
  }
332
- formState?.result?.result &&
333
- showToast(
334
- ToastType.Error,
335
- loginTab === 'email' && typeof formState.result?.result === 'string'
336
- ? getTraduction(formState.result?.result)
337
- : loginTab === 'email' &&
338
- typeof formState.result?.result !== 'string'
339
- ? getTraduction(formState.result?.result[0])
340
- : loginTab === 'cellphone' &&
341
- typeof formState.result?.result === 'string'
342
- ? getTraduction(formState.result?.result).replace(
343
- t('USER', 'user').toLowerCase(),
344
- t('PHONE_NUMER', 'Phone number'),
345
- )
346
- : getTraduction(formState.result?.result[0]).replace(
347
- t('USER', 'user').toLowerCase(),
348
- t('PHONE_NUMER', 'Phone number'),
349
- ),
350
- );
331
+ formState.result?.result && showToast(
332
+ ToastType.Error,
333
+ typeof formState.result?.result === 'string'
334
+ ? formState.result?.result
335
+ : formState.result?.result[0]
336
+ )
351
337
  setSubmitted(false)
352
338
  }
339
+ if (!formState?.loading && !formState?.result?.error) {
340
+ setWillVerifyOtpState(false)
341
+ }
353
342
  }, [formState]);
354
343
 
355
344
  useEffect(() => {
@@ -487,6 +476,8 @@ const LoginFormUI = (props: LoginParams) => {
487
476
  borderRadius: 7.6,
488
477
  borderColor: theme.colors.inputSignup,
489
478
  backgroundColor: theme.colors.transparent,
479
+ minHeight: 50,
480
+ maxHeight : 50
490
481
  },
491
482
  btn: {
492
483
  borderRadius: 7.6,
@@ -929,6 +920,7 @@ const LoginFormUI = (props: LoginParams) => {
929
920
  handleLoginOtp={handleLoginOtp}
930
921
  onSubmit={handleLogin}
931
922
  setAlertState={setAlertState}
923
+ formState={formState}
932
924
  />
933
925
  </OModal>
934
926
  <Alert
@@ -951,3 +943,4 @@ export const LoginForm = (props: any) => {
951
943
 
952
944
  return <LoginFormController {...loginProps} />;
953
945
  };
946
+
@@ -42,7 +42,7 @@ const MapViewComponent = (props: MapViewParams) => {
42
42
  followUserLocation
43
43
  } = useLocation();
44
44
 
45
- const location = { lat: userLocation.latitude, lng: userLocation.longitude }
45
+ const location = { lat: userLocation?.latitude, lng: userLocation?.longitude }
46
46
  const haveOrders = Object.values(markerGroups)?.length > 0 && Object.values(customerMarkerGroups)?.length > 0
47
47
  const closeAlert = () => {
48
48
  setAlertState({
@@ -57,8 +57,8 @@ const MapViewComponent = (props: MapViewParams) => {
57
57
  [
58
58
  { latitude: location.latitude, longitude: location.longitude },
59
59
  {
60
- latitude: userLocation.latitude,
61
- longitude: userLocation.longitude,
60
+ latitude: userLocation?.latitude,
61
+ longitude: userLocation?.longitude,
62
62
  },
63
63
  ],
64
64
  {
@@ -103,7 +103,7 @@ const MapViewComponent = (props: MapViewParams) => {
103
103
  return () => {
104
104
  stopFollowUserLocation();
105
105
  };
106
- }, []);
106
+ }, [isFocused]);
107
107
 
108
108
  useFocusEffect(
109
109
  useCallback(() => {
@@ -213,10 +213,10 @@ const MapViewComponent = (props: MapViewParams) => {
213
213
  }
214
214
 
215
215
  useEffect(() => {
216
- if (userLocation.latitude !== 0 && userLocation.longitude !== 0) {
216
+ if (userLocation?.latitude !== 0 && userLocation?.longitude !== 0) {
217
217
  const location = {
218
- lat: userLocation.latitude,
219
- lng: userLocation.longitude
218
+ lat: userLocation?.latitude,
219
+ lng: userLocation?.longitude
220
220
  }
221
221
  setDriverLocation({ location })
222
222
  }
@@ -231,8 +231,8 @@ const MapViewComponent = (props: MapViewParams) => {
231
231
  ref={mapRef}
232
232
  provider={PROVIDER_GOOGLE}
233
233
  initialRegion={{
234
- latitude: initialPosition.latitude,
235
- longitude: initialPosition.longitude,
234
+ latitude: initialPosition?.latitude,
235
+ longitude: initialPosition?.longitude,
236
236
  latitudeDelta: haveOrders ? 0.01 : 0.1,
237
237
  longitudeDelta: haveOrders ? 0.01 * ASPECT_RATIO : 0.1 * ASPECT_RATIO,
238
238
  }}
@@ -252,7 +252,7 @@ const MapViewComponent = (props: MapViewParams) => {
252
252
  orderIds={marker.map((order: any) => order.id).join(', ')}
253
253
  />
254
254
  ))}
255
- {Object.values(customerMarkerGroups).map((marker: any) => (
255
+ {Object.values(customerMarkerGroups).map((marker: any) => (
256
256
  <RenderMarker
257
257
  key={marker[0]?.customer_id}
258
258
  marker={marker[0]}
@@ -2,20 +2,17 @@ import React, { useState, useEffect } from 'react';
2
2
  import {
3
3
  View,
4
4
  Pressable,
5
- StyleSheet,
6
- Dimensions,
7
- ScrollView,
8
- RefreshControl,
5
+ StyleSheet
9
6
  } from 'react-native';
10
7
  import { Contacts, useLanguage } from 'ordering-components/native';
11
8
  import { useTheme } from 'styled-components/native';
12
- import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
13
- import { OText, OButton } from '../shared';
9
+ import { OText } from '../shared';
14
10
  import { NotFoundSource } from '../NotFoundSource';
15
11
  import { PreviousMessages } from '../PreviousMessages';
16
12
  import { FiltersTab, TabsContainer, TagsContainer, Tag } from './styles';
17
13
  import { MessagesOptionParams } from '../../types';
18
14
  import { useDeviceOrientation } from '../../../../../src/hooks/DeviceOrientation';
15
+
19
16
  const MessagesOptionUI = (props: MessagesOptionParams) => {
20
17
  const {
21
18
  orders,
@@ -65,12 +62,6 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
65
62
  ),
66
63
  );
67
64
 
68
- const [orientation, setOrientation] = useState(
69
- Dimensions.get('window').width < Dimensions.get('window').height
70
- ? 'Portrait'
71
- : 'Landscape',
72
- );
73
-
74
65
  const getTagFilter = (key: number) => {
75
66
  return tags.find(value => value.key === key)?.text;
76
67
  };
@@ -114,14 +105,6 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
114
105
  );
115
106
  }, [orders]);
116
107
 
117
- Dimensions.addEventListener('change', ({ window: { width, height } }) => {
118
- if (width < height) {
119
- setOrientation('Portrait');
120
- } else {
121
- setOrientation('Landscape');
122
- }
123
- });
124
-
125
108
  const styles = StyleSheet.create({
126
109
  header: {
127
110
  marginBottom: 25,
@@ -242,35 +225,28 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
242
225
  !error
243
226
  ? t('NO_RESULTS_FOUND', 'Sorry, no results found')
244
227
  : error[0]?.message ||
245
- error[0] ||
246
- t('NETWORK_ERROR', 'Network Error')
228
+ error[0] ||
229
+ t('NETWORK_ERROR', 'Network Error')
247
230
  }
248
231
  image={theme.images.general.notFound}
249
232
  conditioned={false}
250
233
  />
251
234
  )}
252
-
253
- <ScrollView
254
- showsVerticalScrollIndicator={false}
255
- style={{ flex: 1 }}
256
- refreshControl={<RefreshControl
257
- refreshing={refreshing}
258
- onRefresh={() => getOrders?.()}
259
- />}
260
- >
261
- {!reload &&
262
- !error &&
263
- values.length > 0 &&
264
- JSON.stringify(tabsFilter) === JSON.stringify(tabs[0].tags) && (
265
- <PreviousMessages
266
- orders={values}
267
- setOrders={setOrders}
268
- messages={messages}
269
- onNavigationRedirect={onNavigationRedirect}
270
- />
271
- )}
272
-
273
- {/* {!reload &&
235
+ <PreviousMessages
236
+ orders={values}
237
+ messages={messages}
238
+ onNavigationRedirect={onNavigationRedirect}
239
+ getOrders={getOrders}
240
+ pagination={pagination}
241
+ loading={loading}
242
+ reload={reload}
243
+ tabs={tabs}
244
+ tabsFilter={tabsFilter}
245
+ setOrders={setOrders}
246
+ loadMore={loadMore}
247
+ error={error}
248
+ />
249
+ {/* {!reload &&
274
250
  !error &&
275
251
  orders.length > 0 &&
276
252
  JSON.stringify(tabsFilter) === JSON.stringify(tabs[1].tags) && (
@@ -283,55 +259,6 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
283
259
  onNavigationRedirect={onNavigationRedirect}
284
260
  />
285
261
  )} */}
286
-
287
- {(loading || reload) && (
288
- <>
289
- <View>
290
- {[...Array(5)].map((item, i) => (
291
- <Placeholder key={i} Animation={Fade}>
292
- <View
293
- style={{
294
- width: '100%',
295
- flexDirection: 'row',
296
- marginBottom: 10,
297
- }}>
298
- <PlaceholderLine
299
- width={orientation === 'Portrait' ? 22 : 11}
300
- height={74}
301
- style={{
302
- marginRight: 20,
303
- marginBottom: 20,
304
- borderRadius: 7.6,
305
- }}
306
- />
307
- <Placeholder>
308
- <PlaceholderLine width={30} style={{ marginTop: 5 }} />
309
- <PlaceholderLine width={50} />
310
- <PlaceholderLine width={20} />
311
- </Placeholder>
312
- </View>
313
- </Placeholder>
314
- ))}
315
- </View>
316
- </>
317
- )}
318
-
319
- {pagination?.totalPages &&
320
- !loading &&
321
- !reload &&
322
- JSON.stringify(tabsFilter) === JSON.stringify(tabs[0].tags) &&
323
- pagination?.currentPage < pagination?.totalPages && (
324
- <OButton
325
- onClick={() => loadMore && loadMore()}
326
- text={t('LOAD_MORE_ORDERS', 'Load more orders')}
327
- imgRightSrc={null}
328
- textStyle={styles.loadButtonText}
329
- style={styles.loadButton}
330
- bgColor={theme.colors.primary}
331
- borderColor={theme.colors.primary}
332
- />
333
- )}
334
- </ScrollView>
335
262
  </>
336
263
  );
337
264
  };
@@ -1,16 +1,17 @@
1
- import React, { useState, useEffect } from 'react'
2
1
  import moment from 'moment'
3
- import { View, Modal, StyleSheet, TouchableOpacity, Dimensions } from 'react-native'
2
+ import { NewOrderNotification as NewOrderNotificationController, useApi, useEvent, useLanguage, useSession } from 'ordering-components/native'
3
+ import React, { useEffect, useState } from 'react'
4
+ import { Dimensions, Modal, StyleSheet, TouchableOpacity, View } from 'react-native'
4
5
  import Sound from 'react-native-sound'
5
6
  import Icon from 'react-native-vector-icons/Feather'
6
7
  import { useTheme } from 'styled-components/native'
7
- import { useEvent, useLanguage, useSession, useApi, NewOrderNotification as NewOrderNotificationController } from 'ordering-components/native'
8
8
 
9
- import { OText, OIcon } from '../shared'
10
- import { NotificationContainer } from './styles'
11
9
  import { useLocation } from '../../hooks/useLocation'
10
+ import { OIcon, OText } from '../shared'
11
+ import { NotificationContainer } from './styles'
12
12
 
13
- Sound.setCategory('Playback')
13
+ Sound.setCategory('Playback', true)
14
+ Sound.setMode('Default')
14
15
 
15
16
  const windowWidth = Dimensions.get('screen').width
16
17
 
@@ -44,9 +45,10 @@ const NewOrderNotificationUI = (props: any) => {
44
45
  },
45
46
  }
46
47
 
47
- const notificationSound = new Sound(theme.sounds.notification);
48
+ const notificationSound = new Sound(theme.sounds.notification, '', () => { });
48
49
 
49
50
  let _timeout: any = null
51
+ let times = 0
50
52
 
51
53
  const handleCloseEvents = () => {
52
54
  notificationSound.stop()
@@ -56,15 +58,22 @@ const NewOrderNotificationUI = (props: any) => {
56
58
 
57
59
  const handlePlayNotificationSound = (eventObj: any = null) => {
58
60
  setCurrentEvent(eventObj)
59
- let times = 1
60
- if (times < SOUND_LOOP) {
61
- _timeout = setInterval(() => {
62
- notificationSound.setVolume(1).play(success => success && (times = times + 1))
63
- if (times === SOUND_LOOP) {
64
- clearInterval(_timeout)
65
- }
66
- }, 2500)
61
+ if (times > 0) {
62
+ if (times === 3) {
63
+ times = 0
64
+ return
65
+ }
66
+ return
67
67
  }
68
+ _timeout = setInterval(() => {
69
+ if (times < SOUND_LOOP) {
70
+ notificationSound.play()
71
+ times++
72
+ } else {
73
+ clearInterval(_timeout)
74
+ return
75
+ }
76
+ }, 2500)
68
77
  }
69
78
 
70
79
  const handleEventNotification = async (evtType: number, value: any) => {
@@ -74,32 +83,37 @@ const NewOrderNotificationUI = (props: any) => {
74
83
  await fetch(`${ordering.root}/users/${user.id}/locations`, {
75
84
  method: 'POST',
76
85
  body: JSON.stringify({
77
- location: JSON.stringify({location: `{lat: ${location.latitude}, lng: ${location.longitude}}`})
86
+ location: JSON.stringify({ location: `{lat: ${location.latitude}, lng: ${location.longitude}}` })
78
87
  }),
79
88
  headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }
80
89
  })
81
- } catch {}
90
+ } catch { }
82
91
  const duration = moment.duration(moment().diff(moment.utc(value?.last_driver_assigned_at)))
83
92
  const assignedSecondsDiff = duration.asSeconds()
84
- if (assignedSecondsDiff < 5 && !isBusinessApp) {
93
+ if (assignedSecondsDiff < 5 && !isBusinessApp && !value?.logistic_status) {
85
94
  handlePlayNotificationSound({ evt: 2, orderId: value?.id })
86
95
  }
87
96
  }
88
97
  if (evtType === 3 || value.author_id === user.id) return
89
- handlePlayNotificationSound({
98
+ setTimeout(() => handlePlayNotificationSound({
90
99
  evt: evtType,
91
- orderId: evtList[evtType].event === 'messages' ? value?.order_id : value?.id
92
- })
100
+ orderId: value?.driver ? value?.order_id : evtList[evtType].event === 'messages' ? value?.order?.id : value?.order_id
101
+ }), 1000)
93
102
  }
94
103
 
95
104
  useEffect(() => {
96
105
  events.on('message_added_notification', (o: any) => handleEventNotification(1, o))
97
106
  events.on('order_added_notification', (o: any) => handleEventNotification(2, o))
98
107
  events.on('order_updated_notification', (o: any) => handleEventNotification(3, o))
108
+ events.on('request_register_notification', (o: any) => handleEventNotification(2, o))
109
+ events.on('request_update_notification', (o: any) => handleEventNotification(3, o))
110
+
99
111
  return () => {
100
112
  events.off('message_added_notification', (o: any) => handleEventNotification(1, o))
101
113
  events.off('order_added_notification', (o: any) => handleEventNotification(2, o))
102
114
  events.off('order_updated_notification', (o: any) => handleEventNotification(3, o))
115
+ events.off('request_register_notification', (o: any) => handleEventNotification(2, o))
116
+ events.off('request_update_notification', (o: any) => handleEventNotification(3, o))
103
117
  }
104
118
  }, [])
105
119
 
@@ -18,7 +18,7 @@ export const NotFoundSource = (props: NotFoundSourceParams) => {
18
18
  <OIcon src={errorImage} width={260} height={220} />
19
19
  </NotFoundImage>
20
20
  )}
21
- {content && conditioned && !errorImage && (
21
+ {!!content && conditioned && !errorImage && (
22
22
  <OText
23
23
  color={theme.colors.textSecondary}
24
24
  size={textSize ?? 18}
@@ -26,7 +26,7 @@ export const NotFoundSource = (props: NotFoundSourceParams) => {
26
26
  {content}
27
27
  </OText>
28
28
  )}
29
- {content && !conditioned && (
29
+ {!!content && !conditioned && (
30
30
  <OText
31
31
  color={theme.colors.textSecondary}
32
32
  size={textSize ?? 18}
@@ -410,7 +410,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
410
410
  </View>
411
411
  )}
412
412
 
413
- {(!!error || error) && (
413
+ {(!!error || error?.length > 0) && (
414
414
  <NotFoundSource
415
415
  btnTitle={t('GO_TO_MY_ORDERS', 'Go to my orders')}
416
416
  content={