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.
- package/package.json +6 -7
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +40 -39
- package/src/components/StripeMethodForm/index.tsx +4 -2
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/context/OfflineActions/index.tsx +236 -0
- package/src/types/index.tsx +2 -1
- package/themes/business/index.tsx +2 -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 +49 -26
- package/themes/business/src/components/FloatingButton/index.tsx +3 -2
- package/themes/business/src/components/GoogleMap/index.tsx +15 -8
- package/themes/business/src/components/LanguageSelector/index.tsx +2 -3
- package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
- package/themes/business/src/components/LogoutButton/index.tsx +1 -1
- package/themes/business/src/components/MapView/index.tsx +36 -17
- package/themes/business/src/components/NewOrderNotification/index.tsx +38 -19
- package/themes/business/src/components/OrderDetails/Business.tsx +47 -27
- package/themes/business/src/components/OrderDetails/Delivery.tsx +134 -53
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +128 -41
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +45 -18
- 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 +217 -156
- package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
- package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +39 -16
- package/themes/business/src/components/PreviousOrders/index.tsx +74 -66
- package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
- package/themes/business/src/components/PrinterEdition/index.tsx +431 -0
- package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
- package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
- package/themes/business/src/components/PrinterSettings/index.tsx +162 -174
- package/themes/business/src/components/PrinterSettings/styles.tsx +14 -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 +55 -22
- 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 +16 -4
- package/themes/business/src/utils/index.tsx +33 -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 +6 -0
- 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/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +11 -0
- package/themes/original/src/components/AddressForm/index.tsx +32 -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 +5 -8
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +13 -5
- 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 +46 -14
- package/themes/original/src/components/CartContent/index.tsx +2 -4
- package/themes/original/src/components/Checkout/index.tsx +127 -77
- 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 +3 -11
- package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
- package/themes/original/src/components/LoginForm/index.tsx +12 -9
- package/themes/original/src/components/MessageListing/index.tsx +2 -1
- package/themes/original/src/components/Messages/index.tsx +27 -19
- package/themes/original/src/components/MomentOption/TimeListItem.tsx +56 -0
- package/themes/original/src/components/MomentOption/index.tsx +80 -51
- package/themes/original/src/components/MomentSelector/index.tsx +5 -2
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
- 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 +29 -10
- 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 +4 -3
- 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 +17 -20
- package/themes/original/src/components/ProductForm/index.tsx +107 -102
- package/themes/original/src/components/ProductItemAccordion/index.tsx +50 -43
- package/themes/original/src/components/ProductItemAccordion/styles.tsx +0 -3
- 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 +6 -9
- 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 +102 -88
- 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 +76 -62
- package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -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 +10 -7
- 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 +164 -135
- package/themes/original/src/components/UserProfile/index.tsx +9 -1
- package/themes/original/src/components/UserVerification/index.tsx +15 -4
- 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 +10 -3
- package/themes/original/src/utils/index.tsx +30 -1
- 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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
137
|
-
|
|
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:
|
|
158
|
-
longitude:
|
|
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
|
-
|
|
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
|
|
|
@@ -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
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
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 ??
|
|
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
|
-
|
|
432
|
+
const printers = await _retrieveStoreData('printers')
|
|
415
433
|
const autoPrint = await _retrieveStoreData('auto_print_after_accept_order')
|
|
416
|
-
setPrinterSettings(
|
|
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
|
|
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
|
|
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) && !
|
|
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
|
-
'
|
|
689
|
+
'ORDER_PICKUP_COMPLETED_BY_CUSTOMER',
|
|
670
690
|
'Pickup completed by customer',
|
|
671
691
|
)}
|
|
672
692
|
secondButton={true}
|