ordering-ui-react-native 0.22.21 → 0.22.22-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 (164) hide show
  1. package/package.json +6 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessesListing/index.tsx +1 -1
  4. package/src/components/Checkout/index.tsx +40 -39
  5. package/src/components/StripeMethodForm/index.tsx +4 -2
  6. package/src/components/VerifyPhone/styles.tsx +1 -2
  7. package/src/context/OfflineActions/index.tsx +236 -0
  8. package/src/types/index.tsx +2 -1
  9. package/themes/business/index.tsx +2 -0
  10. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -6
  11. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
  12. package/themes/business/src/components/BusinessController/index.tsx +8 -3
  13. package/themes/business/src/components/BusinessProductList/index.tsx +3 -2
  14. package/themes/business/src/components/Chat/index.tsx +15 -3
  15. package/themes/business/src/components/DriverMap/index.tsx +49 -26
  16. package/themes/business/src/components/FloatingButton/index.tsx +3 -2
  17. package/themes/business/src/components/GoogleMap/index.tsx +15 -8
  18. package/themes/business/src/components/LanguageSelector/index.tsx +2 -3
  19. package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
  20. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  21. package/themes/business/src/components/MapView/index.tsx +36 -17
  22. package/themes/business/src/components/NewOrderNotification/index.tsx +38 -19
  23. package/themes/business/src/components/OrderDetails/Business.tsx +47 -27
  24. package/themes/business/src/components/OrderDetails/Delivery.tsx +134 -53
  25. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +128 -41
  26. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +45 -18
  27. package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
  28. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +17 -16
  29. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +3 -2
  30. package/themes/business/src/components/OrderSummary/index.tsx +6 -4
  31. package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
  32. package/themes/business/src/components/OrdersOption/index.tsx +217 -156
  33. package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
  34. package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
  35. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +39 -16
  36. package/themes/business/src/components/PreviousOrders/index.tsx +74 -66
  37. package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
  38. package/themes/business/src/components/PrinterEdition/index.tsx +431 -0
  39. package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
  40. package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
  41. package/themes/business/src/components/PrinterSettings/index.tsx +162 -174
  42. package/themes/business/src/components/PrinterSettings/styles.tsx +14 -1
  43. package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
  44. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  45. package/themes/business/src/components/StoresList/index.tsx +2 -2
  46. package/themes/business/src/components/UserProfileForm/index.tsx +55 -22
  47. package/themes/business/src/components/UserProfileForm/styles.tsx +7 -0
  48. package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
  49. package/themes/business/src/components/shared/OTextarea.tsx +8 -9
  50. package/themes/business/src/config/currency.tsx +1010 -0
  51. package/themes/business/src/hooks/useLocation.tsx +16 -12
  52. package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
  53. package/themes/business/src/types/index.tsx +16 -4
  54. package/themes/business/src/utils/index.tsx +33 -3
  55. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  56. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  57. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  58. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  59. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  60. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  61. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  62. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  63. package/themes/original/index.tsx +11 -0
  64. package/themes/original/src/components/AddressForm/index.tsx +32 -17
  65. package/themes/original/src/components/AddressList/index.tsx +8 -7
  66. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  67. package/themes/original/src/components/BusinessBasicInformation/index.tsx +5 -8
  68. package/themes/original/src/components/BusinessItemAccordion/index.tsx +13 -5
  69. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +103 -92
  70. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +8 -6
  71. package/themes/original/src/components/BusinessListingSearch/index.tsx +1 -2
  72. package/themes/original/src/components/BusinessPreorder/index.tsx +46 -28
  73. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +73 -70
  74. package/themes/original/src/components/BusinessProductsList/index.tsx +6 -7
  75. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  76. package/themes/original/src/components/BusinessProductsListing/index.tsx +10 -6
  77. package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
  78. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  79. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  80. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  81. package/themes/original/src/components/Cart/index.tsx +46 -14
  82. package/themes/original/src/components/CartContent/index.tsx +2 -4
  83. package/themes/original/src/components/Checkout/index.tsx +127 -77
  84. package/themes/original/src/components/CitiesControl/index.tsx +0 -3
  85. package/themes/original/src/components/CouponControl/index.tsx +1 -3
  86. package/themes/original/src/components/DriverTips/index.tsx +1 -3
  87. package/themes/original/src/components/Favorite/index.tsx +1 -5
  88. package/themes/original/src/components/FavoriteList/index.tsx +0 -1
  89. package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -7
  90. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
  91. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
  92. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
  93. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +7 -9
  94. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +11 -12
  95. package/themes/original/src/components/GoogleMap/index.tsx +39 -18
  96. package/themes/original/src/components/Help/index.tsx +2 -0
  97. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  98. package/themes/original/src/components/Home/index.tsx +3 -11
  99. package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
  100. package/themes/original/src/components/LoginForm/index.tsx +12 -9
  101. package/themes/original/src/components/MessageListing/index.tsx +2 -1
  102. package/themes/original/src/components/Messages/index.tsx +27 -19
  103. package/themes/original/src/components/MomentOption/TimeListItem.tsx +56 -0
  104. package/themes/original/src/components/MomentOption/index.tsx +80 -51
  105. package/themes/original/src/components/MomentSelector/index.tsx +5 -2
  106. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
  107. package/themes/original/src/components/MultiCheckout/index.tsx +55 -27
  108. package/themes/original/src/components/MultiOrdersDetails/index.tsx +1 -0
  109. package/themes/original/src/components/MyOrders/index.tsx +2 -2
  110. package/themes/original/src/components/NavBar/index.tsx +7 -4
  111. package/themes/original/src/components/NetworkError/index.tsx +0 -5
  112. package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
  113. package/themes/original/src/components/OrderDetails/OrderEta.tsx +4 -3
  114. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +16 -11
  115. package/themes/original/src/components/OrderDetails/index.tsx +44 -21
  116. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  117. package/themes/original/src/components/OrderProgress/index.tsx +4 -3
  118. package/themes/original/src/components/OrderSummary/index.tsx +29 -10
  119. package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -6
  120. package/themes/original/src/components/OrdersOption/index.tsx +3 -6
  121. package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
  122. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  123. package/themes/original/src/components/PaymentOptions/index.tsx +4 -3
  124. package/themes/original/src/components/PhoneInputNumber/index.tsx +92 -7
  125. package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
  126. package/themes/original/src/components/PreviousOrders/index.tsx +1 -2
  127. package/themes/original/src/components/ProductForm/ActionButton.tsx +17 -20
  128. package/themes/original/src/components/ProductForm/index.tsx +107 -102
  129. package/themes/original/src/components/ProductItemAccordion/index.tsx +50 -43
  130. package/themes/original/src/components/ProductItemAccordion/styles.tsx +0 -3
  131. package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
  132. package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
  133. package/themes/original/src/components/Promotions/index.tsx +6 -9
  134. package/themes/original/src/components/ReviewDriver/index.tsx +1 -1
  135. package/themes/original/src/components/ReviewOrder/index.tsx +2 -2
  136. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  137. package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
  138. package/themes/original/src/components/ServiceForm/index.tsx +52 -54
  139. package/themes/original/src/components/Sessions/index.tsx +3 -3
  140. package/themes/original/src/components/SignupForm/index.tsx +102 -88
  141. package/themes/original/src/components/SingleOrderCard/index.tsx +6 -4
  142. package/themes/original/src/components/SingleProductCard/index.tsx +5 -5
  143. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  144. package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
  145. package/themes/original/src/components/StripeCardsList/index.tsx +16 -3
  146. package/themes/original/src/components/StripeElementsForm/index.tsx +76 -62
  147. package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -1
  148. package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
  149. package/themes/original/src/components/TaxInformation/index.tsx +3 -2
  150. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +10 -7
  151. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +8 -3
  152. package/themes/original/src/components/UserDetails/index.tsx +17 -16
  153. package/themes/original/src/components/UserFormDetails/index.tsx +164 -135
  154. package/themes/original/src/components/UserProfile/index.tsx +9 -1
  155. package/themes/original/src/components/UserVerification/index.tsx +15 -4
  156. package/themes/original/src/components/Wallets/index.tsx +6 -3
  157. package/themes/original/src/components/WebsocketStatus/index.tsx +1 -4
  158. package/themes/original/src/components/shared/OAlert.tsx +2 -1
  159. package/themes/original/src/components/shared/OButton.tsx +5 -4
  160. package/themes/original/src/components/shared/OInput.tsx +4 -8
  161. package/themes/original/src/components/shared/OModal.tsx +7 -2
  162. package/themes/original/src/types/index.tsx +10 -3
  163. package/themes/original/src/utils/index.tsx +30 -1
  164. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -53,16 +53,23 @@ const MapViewComponent = (props: MapViewParams) => {
53
53
 
54
54
  const fitCoordinates = (location?: any) => {
55
55
  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
- ],
56
+ const isSendCoordinates =
57
+ location &&
58
+ userLocation &&
59
+ location.latitude !== userLocation.latitude &&
60
+ location.longitude !== userLocation.longitude &&
61
+ location.latitude !== 0 &&
62
+ location.longitude !== 0 &&
63
+ userLocation.latitude !== 0 &&
64
+ userLocation.longitude !== 0
65
+
66
+ isSendCoordinates && mapRef.current.fitToCoordinates(
67
+ [location, userLocation].map(_location => ({
68
+ latitude: _location.latitude,
69
+ longitude: _location.longitude
70
+ })),
64
71
  {
65
- edgePadding: { top: 120, right: 120, bottom: 120, left: 120 },
72
+ edgePadding: { top: 120, right: 120, bottom: 120, left: 120 }
66
73
  },
67
74
  );
68
75
  }
@@ -133,8 +140,20 @@ const MapViewComponent = (props: MapViewParams) => {
133
140
  const RenderMarker = ({ marker, customer, orderIds }: { marker: any, customer?: boolean, orderIds?: Array<number> }) => {
134
141
  const markerRef = useRef<any>()
135
142
 
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
143
+ let coordinateLat = (customer
144
+ ? typeof marker?.customer?.location?.lat === 'number' && !Number.isNaN(marker?.customer?.location?.lat)
145
+ ? marker?.customer?.location?.lat
146
+ : 0
147
+ : typeof marker?.business?.location?.lat === 'number' && !Number.isNaN(marker?.business?.location?.lat)
148
+ ? marker?.business?.location?.lat
149
+ : 0) ?? (initialPosition?.latitude || 0)
150
+ let coordinateLng = (customer
151
+ ? typeof marker?.customer?.location?.lng === 'number' && !Number.isNaN(marker?.customer?.location?.lng)
152
+ ? marker?.customer?.location?.lng
153
+ : 0
154
+ : typeof marker?.business?.location?.lng === 'number' && !Number.isNaN(marker?.business?.location?.lng)
155
+ ? marker?.business?.location?.lng
156
+ : 0) ?? (initialPosition?.longitude || 0)
138
157
 
139
158
  useEffect(() => {
140
159
  if (
@@ -154,8 +173,8 @@ const MapViewComponent = (props: MapViewParams) => {
154
173
  }}
155
174
  onPress={() =>
156
175
  setLocationSelected({
157
- latitude: customer ? marker?.customer?.location?.lat : marker?.business?.location?.lat,
158
- longitude: customer ? marker?.customer?.location?.lng : marker?.business?.location?.lng
176
+ latitude: coordinateLat,
177
+ longitude: coordinateLng
159
178
  })
160
179
  }
161
180
  ref={(ref) => markerRef.current = ref}
@@ -235,8 +254,8 @@ const MapViewComponent = (props: MapViewParams) => {
235
254
  ref={mapRef}
236
255
  provider={PROVIDER_GOOGLE}
237
256
  initialRegion={{
238
- latitude: initialPosition?.latitude,
239
- longitude: initialPosition?.longitude,
257
+ latitude: initialPosition?.latitude || 0,
258
+ longitude: initialPosition?.longitude || 0,
240
259
  latitudeDelta: haveOrders ? 0.01 : 0.1,
241
260
  longitudeDelta: haveOrders ? 0.01 * ASPECT_RATIO : 0.1 * ASPECT_RATIO,
242
261
  }}
@@ -266,8 +285,8 @@ const MapViewComponent = (props: MapViewParams) => {
266
285
  ))}
267
286
  <Marker
268
287
  coordinate={{
269
- latitude: location.lat,
270
- longitude: location.lng,
288
+ latitude: typeof location.lat === 'number' && !Number.isNaN(location.lat) ? location.lat : 0,
289
+ longitude: typeof location.lng === 'number' && !Number.isNaN(location.lng) ? location.lng : 0,
271
290
  }}
272
291
  title={t('YOUR_LOCATION', 'Your Location')}
273
292
  >
@@ -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
 
@@ -309,24 +323,26 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
309
323
  setOpenModalForAccept(true);
310
324
  };
311
325
 
312
- const printAction = async (printerSettings: any, commands: any) => {
326
+ const printAction = async (printerSettings: any, commands: any, showAlert: boolean = true) => {
313
327
  try {
314
328
  var printResult = await StarPRNT.print(printerSettings?.emulation, commands, printerSettings?.portName);
315
- showToast(ToastType.Info, t('ORDER_PRINTED_SUCCESS', 'Order printed'), 1000)
329
+ showAlert && showToast(ToastType.Info, t('ORDER_PRINTED_SUCCESS', 'Order printed'), 1000)
316
330
  } catch (e) {
317
- showToast(ToastType.Error, t('ORDER_PRINTED_FAILED', 'Order not printed, connection failed'), 1000)
331
+ showAlert && showToast(ToastType.Error, t('ORDER_PRINTED_FAILED', 'Order not printed, connection failed'), 1000)
318
332
  }
319
333
  }
320
334
 
321
335
  const handleViewSummaryOrder = () => {
322
336
  if (printerSettings) {
323
- const commands: any = generateCommands({
324
- ...order,
325
- orderStatus: getOrderStatus(order?.status, t)?.value
326
- }, printerSettings?.printMode)
327
- commands.push({ appendCutPaper: StarPRNT.CutPaperAction.PartialCutWithFeed })
328
-
329
- printAction(printerSettings, commands)
337
+ printerSettings.map((printer: any, idx: number) => {
338
+ const commands: any = generateCommands({
339
+ ...order,
340
+ orderStatus: getOrderStatus(order?.status, t)?.value
341
+ }, printer?.printMode)
342
+ commands.push({ appendCutPaper: StarPRNT.CutPaperAction.PartialCutWithFeed })
343
+
344
+ printAction(printer, commands, idx === printerSettings.length - 1)
345
+ })
330
346
  return
331
347
  }
332
348
  navigation?.navigate &&
@@ -337,6 +353,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
337
353
  };
338
354
 
339
355
  const handleCloseModal = () => {
356
+ readMessages && readMessages()
357
+ loadMessages && loadMessages()
340
358
  setOpenModalForBusiness(false);
341
359
  };
342
360
 
@@ -377,7 +395,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
377
395
  },
378
396
  {
379
397
  ...order?.customer?.location,
380
- title: order?.customer?.name ?? t('CUSTOMER', 'Customer'),
398
+ title: order?.customer?.name ?? t('CUSTOMER', 'Customer'),
381
399
  address: {
382
400
  addressName: order?.customer?.address,
383
401
  zipcode: order?.customer?.zipcode
@@ -411,9 +429,9 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
411
429
 
412
430
  useEffect(() => {
413
431
  const getStorageData = async () => {
414
- const printer = await _retrieveStoreData('printer')
432
+ const printers = await _retrieveStoreData('printers')
415
433
  const autoPrint = await _retrieveStoreData('auto_print_after_accept_order')
416
- setPrinterSettings(printer)
434
+ setPrinterSettings(printers?.length && printers)
417
435
  setAutoPrintEnabled(!!autoPrint)
418
436
  }
419
437
 
@@ -480,6 +498,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
480
498
  handleCopyClipboard={handleCopyClipboard}
481
499
  handleArrowBack={handleArrowBack}
482
500
  isCustomView={props.isCustomView}
501
+ messages={messages}
502
+ messagesReadList={messagesReadList}
483
503
  />
484
504
  <OrderDetailsContainer
485
505
  keyboardShouldPersistTaps="handled"
@@ -487,7 +507,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
487
507
  <>
488
508
  <OrderContentComponent order={order} />
489
509
  {(order?.status === 7 || order?.status === 4) &&
490
- order?.delivery_type === 1 && configs?.assign_driver_enabled?.value === '1' && (
510
+ deliveryTypes.includes(order?.delivery_type) && configs?.assign_driver_enabled?.value === '1' && (
491
511
  <AssignDriver>
492
512
  <OText style={{ marginBottom: 5 }} size={16} weight="600">
493
513
  {t('ASSIGN_DRIVER', 'Assign driver')}
@@ -585,6 +605,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
585
605
  messages={messages}
586
606
  order={order}
587
607
  setMessages={setMessages}
608
+ notificationApp={notificationApp}
588
609
  />
589
610
  </OModal>
590
611
 
@@ -628,7 +649,6 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
628
649
  </>
629
650
  <View style={{ height: 30 }} />
630
651
  </OrderDetailsContainer>
631
-
632
652
  {order &&
633
653
  Object.keys(order).length > 0 &&
634
654
  getOrderStatus(order?.status, t)?.value ===
@@ -645,7 +665,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
645
665
  widthButton={'45%'}
646
666
  />
647
667
  )}
648
- {order?.status === 7 && (
668
+ {orderToReady.includes(order?.status) && (
649
669
  <FloatingButton
650
670
  btnText={t('READY_FOR_PICKUP', 'Ready for pickup')}
651
671
  colorTxt1={theme.colors.primary}
@@ -655,7 +675,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
655
675
  disabled={loading}
656
676
  />
657
677
  )}
658
- {orderToComplete.includes(order?.status) && ![1].includes(order?.delivery_type) && (
678
+ {orderToComplete.includes(order?.status) && !deliveryTypes.includes(order?.delivery_type) && (
659
679
  <FloatingButton
660
680
  btnText={t(
661
681
  'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
@@ -666,7 +686,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
666
686
  secondButtonClick={() => handleChangeOrderStatus?.(15)}
667
687
  firstButtonClick={() => handleChangeOrderStatus?.(17)}
668
688
  secondBtnText={t(
669
- 'PICKUP_COMPLETED_BY_CUSTOMER',
689
+ 'ORDER_PICKUP_COMPLETED_BY_CUSTOMER',
670
690
  'Pickup completed by customer',
671
691
  )}
672
692
  secondButton={true}