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.
- package/package.json +6 -8
- package/src/DeliveryApp.tsx +1 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +40 -39
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/context/OfflineActions/index.tsx +236 -0
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -6
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
- package/themes/business/src/components/BusinessController/index.tsx +8 -3
- package/themes/business/src/components/BusinessProductList/index.tsx +3 -2
- package/themes/business/src/components/Chat/index.tsx +15 -3
- package/themes/business/src/components/DriverMap/index.tsx +44 -33
- package/themes/business/src/components/FloatingButton/index.tsx +3 -2
- package/themes/business/src/components/LanguageSelector/index.tsx +1 -1
- package/themes/business/src/components/LoginForm/index.tsx +123 -98
- package/themes/business/src/components/LogoutButton/index.tsx +14 -5
- package/themes/business/src/components/MapView/index.tsx +42 -22
- package/themes/business/src/components/NewOrderNotification/index.tsx +38 -19
- package/themes/business/src/components/OrderDetails/Business.tsx +34 -16
- package/themes/business/src/components/OrderDetails/Delivery.tsx +134 -53
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +155 -45
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +51 -28
- package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
- package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +17 -16
- package/themes/business/src/components/OrderDetailsLogistic/index.tsx +3 -2
- package/themes/business/src/components/OrderSummary/index.tsx +6 -4
- package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
- package/themes/business/src/components/OrdersOption/index.tsx +332 -231
- package/themes/business/src/components/OrdersOption/styles.tsx +14 -0
- package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +29 -18
- package/themes/business/src/components/PreviousOrders/index.tsx +74 -66
- package/themes/business/src/components/PreviousOrders/styles.tsx +2 -1
- package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
- package/themes/business/src/components/PrinterEdition/index.tsx +143 -75
- package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
- package/themes/business/src/components/PrinterSettings/index.tsx +1 -1
- package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
- package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
- package/themes/business/src/components/StoresList/index.tsx +2 -2
- package/themes/business/src/components/UserProfileForm/index.tsx +48 -10
- package/themes/business/src/components/UserProfileForm/styles.tsx +7 -0
- package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
- package/themes/business/src/components/shared/OTextarea.tsx +8 -9
- package/themes/business/src/config/currency.tsx +1010 -0
- package/themes/business/src/hooks/useLocation.tsx +16 -12
- package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
- package/themes/business/src/types/index.tsx +22 -7
- package/themes/business/src/utils/index.tsx +28 -3
- package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
- package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/kiosk/src/components/Checkout/index.tsx +9 -5
- package/themes/kiosk/src/components/CustomerName/index.tsx +1 -1
- package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
- package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
- package/themes/kiosk/src/components/PaymentOptions/index.tsx +121 -57
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +9 -1
- package/themes/original/src/components/AddressForm/index.tsx +25 -17
- package/themes/original/src/components/AddressList/index.tsx +8 -7
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +1 -1
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +14 -6
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +103 -92
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +8 -6
- package/themes/original/src/components/BusinessListingSearch/index.tsx +1 -2
- package/themes/original/src/components/BusinessPreorder/index.tsx +46 -28
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +73 -70
- package/themes/original/src/components/BusinessProductsList/index.tsx +6 -7
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +10 -6
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
- package/themes/original/src/components/Cart/index.tsx +49 -15
- package/themes/original/src/components/CartContent/index.tsx +2 -4
- package/themes/original/src/components/Checkout/index.tsx +127 -79
- package/themes/original/src/components/CitiesControl/index.tsx +0 -3
- package/themes/original/src/components/CouponControl/index.tsx +1 -3
- package/themes/original/src/components/DriverTips/index.tsx +1 -3
- package/themes/original/src/components/Favorite/index.tsx +1 -5
- package/themes/original/src/components/FavoriteList/index.tsx +0 -1
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -7
- package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
- package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
- package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +7 -9
- package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +11 -12
- package/themes/original/src/components/GoogleMap/index.tsx +39 -18
- package/themes/original/src/components/Help/index.tsx +2 -0
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
- package/themes/original/src/components/Home/index.tsx +35 -19
- package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
- package/themes/original/src/components/LoginForm/index.tsx +13 -10
- package/themes/original/src/components/MessageListing/index.tsx +2 -1
- package/themes/original/src/components/Messages/index.tsx +20 -13
- package/themes/original/src/components/MomentOption/TimeListItem.tsx +56 -0
- package/themes/original/src/components/MomentOption/index.tsx +80 -52
- package/themes/original/src/components/MomentSelector/index.tsx +5 -2
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -4
- package/themes/original/src/components/MultiCheckout/index.tsx +55 -27
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +1 -0
- package/themes/original/src/components/MyOrders/index.tsx +2 -2
- package/themes/original/src/components/NavBar/index.tsx +7 -4
- package/themes/original/src/components/NetworkError/index.tsx +0 -5
- package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
- package/themes/original/src/components/OrderDetails/OrderEta.tsx +4 -3
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +16 -11
- package/themes/original/src/components/OrderDetails/index.tsx +44 -21
- package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
- package/themes/original/src/components/OrderProgress/index.tsx +4 -3
- package/themes/original/src/components/OrderSummary/index.tsx +32 -11
- package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -6
- package/themes/original/src/components/OrdersOption/index.tsx +3 -6
- package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +462 -461
- package/themes/original/src/components/PhoneInputNumber/index.tsx +92 -7
- package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
- package/themes/original/src/components/PreviousOrders/index.tsx +1 -2
- package/themes/original/src/components/ProductForm/ActionButton.tsx +7 -12
- package/themes/original/src/components/ProductForm/index.tsx +107 -102
- package/themes/original/src/components/ProductItemAccordion/index.tsx +30 -38
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
- package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
- package/themes/original/src/components/Promotions/index.tsx +2 -2
- package/themes/original/src/components/ReviewDriver/index.tsx +1 -1
- package/themes/original/src/components/ReviewOrder/index.tsx +2 -2
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
- package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
- package/themes/original/src/components/ServiceForm/index.tsx +52 -54
- package/themes/original/src/components/Sessions/index.tsx +3 -3
- package/themes/original/src/components/SignupForm/index.tsx +44 -32
- package/themes/original/src/components/SingleOrderCard/index.tsx +6 -4
- package/themes/original/src/components/SingleProductCard/index.tsx +5 -5
- package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
- package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
- package/themes/original/src/components/StripeCardsList/index.tsx +16 -3
- package/themes/original/src/components/StripeElementsForm/index.tsx +8 -4
- package/themes/original/src/components/StripeElementsForm/naked.tsx +1 -1
- package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
- package/themes/original/src/components/TaxInformation/index.tsx +3 -2
- package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +8 -5
- package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +8 -3
- package/themes/original/src/components/UserDetails/index.tsx +17 -16
- package/themes/original/src/components/UserFormDetails/index.tsx +115 -75
- package/themes/original/src/components/UserProfile/index.tsx +9 -1
- package/themes/original/src/components/UserVerification/index.tsx +18 -5
- package/themes/original/src/components/Wallets/index.tsx +6 -3
- package/themes/original/src/components/WebsocketStatus/index.tsx +1 -4
- package/themes/original/src/components/shared/OAlert.tsx +2 -1
- package/themes/original/src/components/shared/OButton.tsx +5 -4
- package/themes/original/src/components/shared/OInput.tsx +4 -8
- package/themes/original/src/components/shared/OModal.tsx +7 -2
- package/themes/original/src/types/index.tsx +12 -4
- package/themes/original/src/utils/index.tsx +29 -0
- 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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
137
|
-
|
|
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:
|
|
158
|
-
longitude:
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
|
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
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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',
|
|
171
|
-
events.off('order_added_notification',
|
|
172
|
-
events.off('order_updated_notification',
|
|
173
|
-
events.off('request_register_notification',
|
|
174
|
-
events.off('request_update_notification',
|
|
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
|
-
:
|
|
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 ??
|
|
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
|
-
|
|
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
|
|
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
|
|
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) && !
|
|
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
|
-
'
|
|
689
|
+
'ORDER_PICKUP_COMPLETED_BY_CUSTOMER',
|
|
672
690
|
'Pickup completed by customer',
|
|
673
691
|
)}
|
|
674
692
|
secondButton={true}
|