ordering-ui-react-native 0.22.43 → 0.22.44-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 (160) hide show
  1. package/package.json +6 -8
  2. package/src/DeliveryApp.tsx +1 -1
  3. package/src/components/BusinessesListing/index.tsx +1 -1
  4. package/src/components/Checkout/index.tsx +40 -39
  5. package/src/components/VerifyPhone/styles.tsx +1 -2
  6. package/src/context/OfflineActions/index.tsx +236 -0
  7. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -6
  8. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
  9. package/themes/business/src/components/BusinessController/index.tsx +8 -3
  10. package/themes/business/src/components/BusinessProductList/index.tsx +3 -2
  11. package/themes/business/src/components/Chat/index.tsx +15 -3
  12. package/themes/business/src/components/DriverMap/index.tsx +44 -33
  13. package/themes/business/src/components/FloatingButton/index.tsx +3 -2
  14. package/themes/business/src/components/LanguageSelector/index.tsx +1 -1
  15. package/themes/business/src/components/LoginForm/index.tsx +123 -98
  16. package/themes/business/src/components/LogoutButton/index.tsx +14 -5
  17. package/themes/business/src/components/MapView/index.tsx +42 -22
  18. package/themes/business/src/components/NewOrderNotification/index.tsx +38 -19
  19. package/themes/business/src/components/OrderDetails/Business.tsx +34 -16
  20. package/themes/business/src/components/OrderDetails/Delivery.tsx +134 -53
  21. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +155 -45
  22. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +51 -28
  23. package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
  24. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +17 -16
  25. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +3 -2
  26. package/themes/business/src/components/OrderSummary/index.tsx +6 -4
  27. package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
  28. package/themes/business/src/components/OrdersOption/index.tsx +332 -231
  29. package/themes/business/src/components/OrdersOption/styles.tsx +14 -0
  30. package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
  31. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +29 -18
  32. package/themes/business/src/components/PreviousOrders/index.tsx +74 -66
  33. package/themes/business/src/components/PreviousOrders/styles.tsx +2 -1
  34. package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
  35. package/themes/business/src/components/PrinterEdition/index.tsx +143 -75
  36. package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
  37. package/themes/business/src/components/PrinterSettings/index.tsx +1 -1
  38. package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
  39. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  40. package/themes/business/src/components/StoresList/index.tsx +2 -2
  41. package/themes/business/src/components/UserProfileForm/index.tsx +48 -10
  42. package/themes/business/src/components/UserProfileForm/styles.tsx +7 -0
  43. package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
  44. package/themes/business/src/components/shared/OTextarea.tsx +8 -9
  45. package/themes/business/src/config/currency.tsx +1010 -0
  46. package/themes/business/src/hooks/useLocation.tsx +16 -12
  47. package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
  48. package/themes/business/src/types/index.tsx +22 -7
  49. package/themes/business/src/utils/index.tsx +28 -3
  50. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  51. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  52. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  53. package/themes/kiosk/src/components/Checkout/index.tsx +9 -5
  54. package/themes/kiosk/src/components/CustomerName/index.tsx +1 -1
  55. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  56. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  57. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  58. package/themes/kiosk/src/components/PaymentOptions/index.tsx +121 -57
  59. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  60. package/themes/original/index.tsx +9 -1
  61. package/themes/original/src/components/AddressForm/index.tsx +25 -17
  62. package/themes/original/src/components/AddressList/index.tsx +8 -7
  63. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  64. package/themes/original/src/components/BusinessBasicInformation/index.tsx +1 -1
  65. package/themes/original/src/components/BusinessItemAccordion/index.tsx +14 -6
  66. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +103 -92
  67. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +8 -6
  68. package/themes/original/src/components/BusinessListingSearch/index.tsx +1 -2
  69. package/themes/original/src/components/BusinessPreorder/index.tsx +46 -28
  70. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +73 -70
  71. package/themes/original/src/components/BusinessProductsList/index.tsx +6 -7
  72. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  73. package/themes/original/src/components/BusinessProductsListing/index.tsx +10 -6
  74. package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
  75. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  76. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  77. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  78. package/themes/original/src/components/Cart/index.tsx +49 -15
  79. package/themes/original/src/components/CartContent/index.tsx +2 -4
  80. package/themes/original/src/components/Checkout/index.tsx +127 -79
  81. package/themes/original/src/components/CitiesControl/index.tsx +0 -3
  82. package/themes/original/src/components/CouponControl/index.tsx +1 -3
  83. package/themes/original/src/components/DriverTips/index.tsx +1 -3
  84. package/themes/original/src/components/Favorite/index.tsx +1 -5
  85. package/themes/original/src/components/FavoriteList/index.tsx +0 -1
  86. package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -7
  87. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
  88. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
  89. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
  90. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +7 -9
  91. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +11 -12
  92. package/themes/original/src/components/GoogleMap/index.tsx +39 -18
  93. package/themes/original/src/components/Help/index.tsx +2 -0
  94. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  95. package/themes/original/src/components/Home/index.tsx +35 -19
  96. package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
  97. package/themes/original/src/components/LoginForm/index.tsx +13 -10
  98. package/themes/original/src/components/MessageListing/index.tsx +2 -1
  99. package/themes/original/src/components/Messages/index.tsx +20 -13
  100. package/themes/original/src/components/MomentOption/TimeListItem.tsx +56 -0
  101. package/themes/original/src/components/MomentOption/index.tsx +80 -52
  102. package/themes/original/src/components/MomentSelector/index.tsx +5 -2
  103. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -4
  104. package/themes/original/src/components/MultiCheckout/index.tsx +55 -27
  105. package/themes/original/src/components/MultiOrdersDetails/index.tsx +1 -0
  106. package/themes/original/src/components/MyOrders/index.tsx +2 -2
  107. package/themes/original/src/components/NavBar/index.tsx +7 -4
  108. package/themes/original/src/components/NetworkError/index.tsx +0 -5
  109. package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
  110. package/themes/original/src/components/OrderDetails/OrderEta.tsx +4 -3
  111. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +16 -11
  112. package/themes/original/src/components/OrderDetails/index.tsx +44 -21
  113. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  114. package/themes/original/src/components/OrderProgress/index.tsx +4 -3
  115. package/themes/original/src/components/OrderSummary/index.tsx +32 -11
  116. package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -6
  117. package/themes/original/src/components/OrdersOption/index.tsx +3 -6
  118. package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
  119. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  120. package/themes/original/src/components/PaymentOptions/index.tsx +462 -461
  121. package/themes/original/src/components/PhoneInputNumber/index.tsx +92 -7
  122. package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
  123. package/themes/original/src/components/PreviousOrders/index.tsx +1 -2
  124. package/themes/original/src/components/ProductForm/ActionButton.tsx +7 -12
  125. package/themes/original/src/components/ProductForm/index.tsx +107 -102
  126. package/themes/original/src/components/ProductItemAccordion/index.tsx +30 -38
  127. package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
  128. package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
  129. package/themes/original/src/components/Promotions/index.tsx +2 -2
  130. package/themes/original/src/components/ReviewDriver/index.tsx +1 -1
  131. package/themes/original/src/components/ReviewOrder/index.tsx +2 -2
  132. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  133. package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
  134. package/themes/original/src/components/ServiceForm/index.tsx +52 -54
  135. package/themes/original/src/components/Sessions/index.tsx +3 -3
  136. package/themes/original/src/components/SignupForm/index.tsx +44 -32
  137. package/themes/original/src/components/SingleOrderCard/index.tsx +6 -4
  138. package/themes/original/src/components/SingleProductCard/index.tsx +5 -5
  139. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  140. package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
  141. package/themes/original/src/components/StripeCardsList/index.tsx +16 -3
  142. package/themes/original/src/components/StripeElementsForm/index.tsx +8 -4
  143. package/themes/original/src/components/StripeElementsForm/naked.tsx +1 -1
  144. package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
  145. package/themes/original/src/components/TaxInformation/index.tsx +3 -2
  146. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +8 -5
  147. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +8 -3
  148. package/themes/original/src/components/UserDetails/index.tsx +17 -16
  149. package/themes/original/src/components/UserFormDetails/index.tsx +115 -75
  150. package/themes/original/src/components/UserProfile/index.tsx +9 -1
  151. package/themes/original/src/components/UserVerification/index.tsx +18 -5
  152. package/themes/original/src/components/Wallets/index.tsx +6 -3
  153. package/themes/original/src/components/WebsocketStatus/index.tsx +1 -4
  154. package/themes/original/src/components/shared/OAlert.tsx +2 -1
  155. package/themes/original/src/components/shared/OButton.tsx +5 -4
  156. package/themes/original/src/components/shared/OInput.tsx +4 -8
  157. package/themes/original/src/components/shared/OModal.tsx +7 -2
  158. package/themes/original/src/types/index.tsx +12 -4
  159. package/themes/original/src/utils/index.tsx +29 -0
  160. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,5 +1,5 @@
1
1
  import React, { useState, useEffect, useRef, useCallback } from 'react';
2
- import { Dimensions, SafeAreaView, StyleSheet, View } from 'react-native';
2
+ import { Dimensions, Platform, SafeAreaView, StyleSheet, View } from 'react-native';
3
3
  import { useFocusEffect } from '@react-navigation/native'
4
4
  import MapView, {
5
5
  PROVIDER_GOOGLE,
@@ -24,6 +24,7 @@ const MapViewComponent = (props: MapViewParams) => {
24
24
  setDriverLocation,
25
25
  onNavigationRedirect,
26
26
  getBusinessLocations,
27
+ isDeliveryApp
27
28
  } = props;
28
29
 
29
30
  const theme = useTheme();
@@ -53,16 +54,23 @@ const MapViewComponent = (props: MapViewParams) => {
53
54
 
54
55
  const fitCoordinates = (location?: any) => {
55
56
  if (mapRef.current) {
56
- mapRef.current.fitToCoordinates(
57
- [
58
- { latitude: location.latitude ?? 0, longitude: location.longitude ?? 0},
59
- {
60
- latitude: userLocation?.latitude,
61
- longitude: userLocation?.longitude,
62
- },
63
- ],
57
+ const isSendCoordinates =
58
+ location &&
59
+ userLocation &&
60
+ location.latitude !== userLocation.latitude &&
61
+ location.longitude !== userLocation.longitude &&
62
+ location.latitude !== 0 &&
63
+ location.longitude !== 0 &&
64
+ userLocation.latitude !== 0 &&
65
+ userLocation.longitude !== 0
66
+
67
+ isSendCoordinates && mapRef.current.fitToCoordinates(
68
+ [location, userLocation].map(_location => ({
69
+ latitude: _location.latitude,
70
+ longitude: _location.longitude
71
+ })),
64
72
  {
65
- edgePadding: { top: 120, right: 120, bottom: 120, left: 120 },
73
+ edgePadding: { top: 120, right: 120, bottom: 120, left: 120 }
66
74
  },
67
75
  );
68
76
  }
@@ -133,8 +141,20 @@ const MapViewComponent = (props: MapViewParams) => {
133
141
  const RenderMarker = ({ marker, customer, orderIds }: { marker: any, customer?: boolean, orderIds?: Array<number> }) => {
134
142
  const markerRef = useRef<any>()
135
143
 
136
- let coordinateLat = (customer ? marker?.customer?.location?.lat : marker?.business?.location?.lat) ?? initialPosition?.latitude
137
- let coordinateLng = (customer ? marker?.customer?.location?.lng : marker?.business?.location?.lng) ?? initialPosition?.longitude
144
+ let coordinateLat = (customer
145
+ ? typeof marker?.customer?.location?.lat === 'number' && !Number.isNaN(marker?.customer?.location?.lat)
146
+ ? marker?.customer?.location?.lat
147
+ : 0
148
+ : typeof marker?.business?.location?.lat === 'number' && !Number.isNaN(marker?.business?.location?.lat)
149
+ ? marker?.business?.location?.lat
150
+ : 0) ?? (initialPosition?.latitude || 0)
151
+ let coordinateLng = (customer
152
+ ? typeof marker?.customer?.location?.lng === 'number' && !Number.isNaN(marker?.customer?.location?.lng)
153
+ ? marker?.customer?.location?.lng
154
+ : 0
155
+ : typeof marker?.business?.location?.lng === 'number' && !Number.isNaN(marker?.business?.location?.lng)
156
+ ? marker?.business?.location?.lng
157
+ : 0) ?? (initialPosition?.longitude || 0)
138
158
 
139
159
  useEffect(() => {
140
160
  if (
@@ -154,11 +174,11 @@ const MapViewComponent = (props: MapViewParams) => {
154
174
  }}
155
175
  onPress={() =>
156
176
  setLocationSelected({
157
- latitude: customer ? marker?.customer?.location?.lat : marker?.business?.location?.lat,
158
- longitude: customer ? marker?.customer?.location?.lng : marker?.business?.location?.lng
177
+ latitude: coordinateLat,
178
+ longitude: coordinateLng
159
179
  })
160
180
  }
161
- ref={(ref) => markerRef.current = ref}
181
+ ref={(ref: any) => markerRef.current = ref}
162
182
  >
163
183
  <Icon
164
184
  name="map-marker"
@@ -231,22 +251,22 @@ const MapViewComponent = (props: MapViewParams) => {
231
251
  return (
232
252
  <SafeAreaView style={{ flex: 1 }}>
233
253
  <View style={{ flex: 1 }}>
234
- {!isLoadingBusinessMarkers && isFocused && (
254
+ {(isDeliveryApp || (!isLoadingBusinessMarkers && isFocused)) && (
235
255
  <View style={{ flex: 1 }}>
236
256
  <MapView
237
257
  ref={mapRef}
238
258
  provider={PROVIDER_GOOGLE}
239
259
  initialRegion={{
240
- latitude: initialPosition?.latitude,
241
- longitude: initialPosition?.longitude,
260
+ latitude: initialPosition?.latitude || 0,
261
+ longitude: initialPosition?.longitude || 0,
242
262
  latitudeDelta: haveOrders ? 0.01 : 0.1,
243
263
  longitudeDelta: haveOrders ? 0.01 * ASPECT_RATIO : 0.1 * ASPECT_RATIO,
244
264
  }}
245
265
  style={{ flex: 1 }}
246
266
  zoomTapEnabled
247
267
  zoomEnabled
248
- zoomControlEnabled
249
- cacheEnabled
268
+ zoomControlEnabled={!(isDeliveryApp && Platform.OS === 'android')}
269
+ cacheEnabled={(isDeliveryApp && Platform.OS === 'android' && isFocused) || Platform.OS === 'ios' || !isDeliveryApp}
250
270
  moveOnMarkerPress
251
271
  onTouchStart={() => (following.current = false)}
252
272
  >
@@ -268,8 +288,8 @@ const MapViewComponent = (props: MapViewParams) => {
268
288
  ))}
269
289
  <Marker
270
290
  coordinate={{
271
- latitude: location.lat,
272
- longitude: location.lng,
291
+ latitude: typeof location.lat === 'number' && !Number.isNaN(location.lat) ? location.lat : 0,
292
+ longitude: typeof location.lng === 'number' && !Number.isNaN(location.lng) ? location.lng : 0,
273
293
  }}
274
294
  title={t('YOUR_LOCATION', 'Your Location')}
275
295
  >
@@ -44,17 +44,25 @@ const SoundPlayerComponent = (props: any) => {
44
44
  const id = setInterval(() => setCount(count + 1), 2500)
45
45
 
46
46
  const playSound = async () => {
47
- SoundPlayer.playUrl(URL_SOUND)
48
- await new Promise(resolve => setTimeout(resolve, DELAY_SOUND))
49
- SoundPlayer.stop()
47
+ try {
48
+ SoundPlayer.playUrl(URL_SOUND)
49
+ await new Promise(resolve => setTimeout(resolve, DELAY_SOUND))
50
+ SoundPlayer.stop()
51
+ } catch (err: any) {
52
+ console.log('Sound Error - ', err.message)
53
+ }
50
54
  }
51
55
  if (NativeModules?.RNSoundPlayer?.playUrl && typeof URL_SOUND === 'string' && isEnabledReadStorage) {
52
56
  playSound()
53
57
  }
54
58
 
55
59
  return () => {
56
- SoundPlayer.stop()
57
60
  clearInterval(id);
61
+ try {
62
+ SoundPlayer.stop()
63
+ } catch (err: any) {
64
+ console.log('Sound Error - ', err.message)
65
+ }
58
66
  }
59
67
  }, [count, isEnabledReadStorage])
60
68
 
@@ -67,7 +75,7 @@ const SoundPlayerComponent = (props: any) => {
67
75
  setIsEnabledReadStorage(true)
68
76
  }
69
77
  }
70
- checkSoundMedia()
78
+ // checkSoundMedia()
71
79
 
72
80
  }, [])
73
81
  return (
@@ -132,7 +140,8 @@ const NewOrderNotificationUI = (props: any) => {
132
140
  location: JSON.stringify({
133
141
  location: `{
134
142
  lat: ${location.latitude},
135
- lng: ${location.longitude}
143
+ lng: ${location.longitude},
144
+ mock: ${location.mocked}
136
145
  }`
137
146
  })
138
147
  }),
@@ -144,11 +153,11 @@ const NewOrderNotificationUI = (props: any) => {
144
153
  } catch { }
145
154
  const duration = moment.duration(moment().diff(moment.utc(value?.last_driver_assigned_at)))
146
155
  const assignedSecondsDiff = duration.asSeconds()
147
- if (assignedSecondsDiff < 5 && !isBusinessApp && !value?.logistic_status && orderStatus.includes(value.status)) {
156
+ if (assignedSecondsDiff < 5 && !isBusinessApp && !value?.logistic_status) {
148
157
  setCurrentEvent({ evt: 2, orderId: value?.id ?? value?.order_id })
149
158
  }
150
159
  }
151
- if (!orderStatus.includes(value.status) || value?.author_id === user.id) return
160
+ if ((!orderStatus.includes(value.status) && evtType !== 1 && isBusinessApp && orderStatus?.length > 0) || value?.author_id === user.id) return
152
161
  setCurrentEvent({
153
162
  evt: evtType,
154
163
  orderId: value?.driver
@@ -160,20 +169,30 @@ const NewOrderNotificationUI = (props: any) => {
160
169
  }
161
170
 
162
171
  useEffect(() => {
163
- events.on('message_added_notification', (o: any) => handleEventNotification(1, o, orderStatus))
164
- events.on('order_added_notification', (o: any) => handleEventNotification(2, o, orderStatus))
165
- events.on('order_updated_notification', (o: any) => handleEventNotification(3, o, orderStatus))
166
- events.on('request_register_notification', (o: any) => handleEventNotification(2, o, orderStatus))
167
- events.on('request_update_notification', (o: any) => handleEventNotification(3, o, orderStatus))
172
+ const handleEventTypeOne = (o: any) => {
173
+ handleEventNotification(1, o, orderStatus)
174
+ }
175
+ const handleEventTypeTwo = (o: any) => {
176
+ handleEventNotification(2, o, orderStatus)
177
+ }
178
+ const handleEventTypeThree = (o: any) => {
179
+ handleEventNotification(3, o, orderStatus)
180
+ }
181
+
182
+ events.on('message_added_notification', handleEventTypeOne)
183
+ events.on('order_added_notification', handleEventTypeTwo)
184
+ events.on('order_updated_notification', handleEventTypeThree)
185
+ events.on('request_register_notification', handleEventTypeTwo)
186
+ events.on('request_update_notification', handleEventTypeThree)
168
187
 
169
188
  return () => {
170
- events.off('message_added_notification', (o: any) => handleEventNotification(1, o))
171
- events.off('order_added_notification', (o: any) => handleEventNotification(2, o))
172
- events.off('order_updated_notification', (o: any) => handleEventNotification(3, o))
173
- events.off('request_register_notification', (o: any) => handleEventNotification(2, o))
174
- events.off('request_update_notification', (o: any) => handleEventNotification(3, o))
189
+ events.off('message_added_notification', handleEventTypeOne)
190
+ events.off('order_added_notification', handleEventTypeTwo)
191
+ events.off('order_updated_notification', handleEventTypeThree)
192
+ events.off('request_register_notification', handleEventTypeTwo)
193
+ events.off('request_update_notification', handleEventTypeThree)
175
194
  }
176
- }, [orderStatus])
195
+ }, [orderStatus, events])
177
196
 
178
197
  useEffect(() => {
179
198
  return () => setCurrentEvent(null)
@@ -31,7 +31,7 @@ import { FloatingButton } from '../FloatingButton';
31
31
  import { GoogleMap } from '../GoogleMap';
32
32
  import { OButton, OModal, OText, OIcon } from '../shared';
33
33
  import { OrderDetailsParams } from '../../types';
34
- import { verifyDecimals, getProductPrice, getOrderStatus } from '../../utils';
34
+ import { verifyDecimals, getProductPrice, getOrderStatus, getCurrenySymbol } from '../../utils';
35
35
  import { USER_TYPE } from '../../config/constants';
36
36
  import CountryPicker from 'react-native-country-picker-modal';
37
37
  import { NotFoundSource } from '../NotFoundSource';
@@ -53,6 +53,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
53
53
  actions,
54
54
  orderTitle,
55
55
  appTitle,
56
+ loadMessages,
57
+ notificationApp
56
58
  } = props;
57
59
 
58
60
  const theme = useTheme();
@@ -77,7 +79,9 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
77
79
  const [printerSettings, setPrinterSettings] = useState<any>('')
78
80
  const [autoPrintEnabled, setAutoPrintEnabled] = useState<boolean>(false)
79
81
 
80
- const orderToComplete = [4,20,21]
82
+ const orderToComplete = [4, 20, 21]
83
+ const orderToReady = [7, 14]
84
+ const deliveryTypes = [1, 7]
81
85
 
82
86
  if (order?.status === 7 || order?.status === 4) {
83
87
  if (drivers?.length > 0 && drivers) {
@@ -142,8 +146,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
142
146
  if (name !== 'No') {
143
147
  const pos = position && position !== 'whole' ? `(${t(position.toUpperCase(), position)})` : '';
144
148
  return pos
145
- ? `${quantity} x ${name} ${pos} +${parsePrice(price)}\n`
146
- : `${quantity} x ${name} +${parsePrice(price)}\n`;
149
+ ? `${quantity} x ${name} ${pos} +${parsePrice(price, { currency: getCurrenySymbol(order?.currency) })}\n`
150
+ : `${quantity} x ${name} +${parsePrice(price, { currency: getCurrenySymbol(order?.currency) })}\n`;
147
151
  } else {
148
152
  return 'No\n';
149
153
  }
@@ -208,7 +212,13 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
208
212
  ? t('EAT_IN', 'Eat in')
209
213
  : order.delivery_type === 4
210
214
  ? t('CURBSIDE', 'Curbside')
211
- : t('DRIVER_THRU', 'Driver thru')
215
+ : order.delivery_type === 5
216
+ ? t('DRIVER_THRU', 'Driver thru')
217
+ : order.delivery_type === 7
218
+ ? t('CATERING_DELIVERY', 'Catering delivery')
219
+ : order.delivery_type === 8
220
+ ? t('CATERING_PICKUP', 'Catering pickup')
221
+ : t('DELIVERY', 'Delivery')
212
222
  }\n`
213
223
  : '';
214
224
 
@@ -245,7 +255,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
245
255
  order?.products.length &&
246
256
  order?.products.map((product: any, i: number) => {
247
257
  const string =
248
- `${product?.quantity} X ${product?.name} ${parsePrice(product.total ?? getProductPrice(product))}\n${getOptions(product.options, product.comment)}`;
258
+ `${product?.quantity} X ${product?.name} ${parsePrice(product.total ?? getProductPrice(product), { currency: getCurrenySymbol(order?.currency) })}\n${getOptions(product.options, product.comment)}`;
249
259
 
250
260
  return i === 0 ? ` ${string}` : string
251
261
  });
@@ -257,20 +267,23 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
257
267
  )}:\n${productsInString}\n`;
258
268
 
259
269
  const subtotal = `${t('SUBTOTAL', 'Subtotal')}: ${parsePrice(
260
- order?.subtotal,
270
+ order?.subtotal,
271
+ { currency: getCurrenySymbol(order?.currency) }
261
272
  )}\n`;
262
273
 
263
274
  const drivertip = `${t('DRIVER_TIP', 'Driver tip')} ${parsePrice(
264
275
  order?.summary?.driver_tip || order?.totalDriverTip,
276
+ { currency: getCurrenySymbol(order?.currency) }
265
277
  )}\n`;
266
278
 
267
279
  const deliveryFee = `${t('DELIVERY_FEE', 'Delivery fee')} ${verifyDecimals(
268
280
  order?.service_fee,
269
281
  parseNumber,
270
- )}% ${parsePrice(order?.summary?.service_fee || order?.serviceFee || 0)}\n`;
282
+ )}% ${parsePrice(order?.summary?.service_fee || order?.serviceFee || 0, { currency: getCurrenySymbol(order?.currency) })}\n`;
271
283
 
272
284
  const total = `${t('TOTAL', 'Total')} ${parsePrice(
273
285
  order?.summary?.total || order?.total,
286
+ { currency: getCurrenySymbol(order?.currency) }
274
287
  )}\n`;
275
288
 
276
289
  const orderStatus = `${t('INVOICE_ORDER_NO', 'Order No.')} ${order.id} ${t(
@@ -297,7 +310,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
297
310
 
298
311
  const handleOpenMessagesForBusiness = () => {
299
312
  setOpenModalForBusiness(true);
300
- readMessages && readMessages();
313
+ readMessages && readMessages()
314
+ loadMessages && loadMessages()
301
315
  setUnreadAlert({ ...unreadAlert, business: false });
302
316
  };
303
317
 
@@ -339,6 +353,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
339
353
  };
340
354
 
341
355
  const handleCloseModal = () => {
356
+ readMessages && readMessages()
357
+ loadMessages && loadMessages()
342
358
  setOpenModalForBusiness(false);
343
359
  };
344
360
 
@@ -379,7 +395,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
379
395
  },
380
396
  {
381
397
  ...order?.customer?.location,
382
- title: order?.customer?.name ?? t('CUSTOMER', 'Customer'),
398
+ title: order?.customer?.name ?? t('CUSTOMER', 'Customer'),
383
399
  address: {
384
400
  addressName: order?.customer?.address,
385
401
  zipcode: order?.customer?.zipcode
@@ -413,7 +429,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
413
429
 
414
430
  useEffect(() => {
415
431
  const getStorageData = async () => {
416
- const printers = await _retrieveStoreData('printers')
432
+ const printers = await _retrieveStoreData('printers')
417
433
  const autoPrint = await _retrieveStoreData('auto_print_after_accept_order')
418
434
  setPrinterSettings(printers?.length && printers)
419
435
  setAutoPrintEnabled(!!autoPrint)
@@ -482,6 +498,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
482
498
  handleCopyClipboard={handleCopyClipboard}
483
499
  handleArrowBack={handleArrowBack}
484
500
  isCustomView={props.isCustomView}
501
+ messages={messages}
502
+ messagesReadList={messagesReadList}
485
503
  />
486
504
  <OrderDetailsContainer
487
505
  keyboardShouldPersistTaps="handled"
@@ -489,7 +507,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
489
507
  <>
490
508
  <OrderContentComponent order={order} />
491
509
  {(order?.status === 7 || order?.status === 4) &&
492
- order?.delivery_type === 1 && configs?.assign_driver_enabled?.value === '1' && (
510
+ deliveryTypes.includes(order?.delivery_type) && configs?.assign_driver_enabled?.value === '1' && (
493
511
  <AssignDriver>
494
512
  <OText style={{ marginBottom: 5 }} size={16} weight="600">
495
513
  {t('ASSIGN_DRIVER', 'Assign driver')}
@@ -587,6 +605,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
587
605
  messages={messages}
588
606
  order={order}
589
607
  setMessages={setMessages}
608
+ notificationApp={notificationApp}
590
609
  />
591
610
  </OModal>
592
611
 
@@ -630,7 +649,6 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
630
649
  </>
631
650
  <View style={{ height: 30 }} />
632
651
  </OrderDetailsContainer>
633
-
634
652
  {order &&
635
653
  Object.keys(order).length > 0 &&
636
654
  getOrderStatus(order?.status, t)?.value ===
@@ -647,7 +665,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
647
665
  widthButton={'45%'}
648
666
  />
649
667
  )}
650
- {order?.status === 7 && (
668
+ {orderToReady.includes(order?.status) && (
651
669
  <FloatingButton
652
670
  btnText={t('READY_FOR_PICKUP', 'Ready for pickup')}
653
671
  colorTxt1={theme.colors.primary}
@@ -657,7 +675,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
657
675
  disabled={loading}
658
676
  />
659
677
  )}
660
- {orderToComplete.includes(order?.status) && ![1].includes(order?.delivery_type) && (
678
+ {orderToComplete.includes(order?.status) && !deliveryTypes.includes(order?.delivery_type) && (
661
679
  <FloatingButton
662
680
  btnText={t(
663
681
  'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
@@ -668,7 +686,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
668
686
  secondButtonClick={() => handleChangeOrderStatus?.(15)}
669
687
  firstButtonClick={() => handleChangeOrderStatus?.(17)}
670
688
  secondBtnText={t(
671
- 'PICKUP_COMPLETED_BY_CUSTOMER',
689
+ 'ORDER_PICKUP_COMPLETED_BY_CUSTOMER',
672
690
  'Pickup completed by customer',
673
691
  )}
674
692
  secondButton={true}