ordering-ui-react-native 0.22.56 → 0.22.57-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 +5 -7
- 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/src/providers/AlertProvider.tsx +3 -1
- 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 +13 -4
- package/themes/business/src/components/MapView/RenderMarker.tsx +146 -0
- package/themes/business/src/components/MapView/index.tsx +68 -142
- package/themes/business/src/components/NewOrderNotification/index.tsx +25 -14
- package/themes/business/src/components/OrderDetails/Business.tsx +56 -20
- 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 +271 -176
- package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
- package/themes/business/src/components/OrdersOption/index.tsx +345 -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 +30 -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/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 +34 -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 +223 -219
- package/themes/original/src/components/AddressForm/index.tsx +19 -8
- 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/BusinessController/index.tsx +4 -2
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +10 -4
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +103 -92
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +7 -3
- package/themes/original/src/components/BusinessListingSearch/index.tsx +8 -13
- package/themes/original/src/components/BusinessPreorder/index.tsx +34 -15
- 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 +48 -13
- package/themes/original/src/components/CartContent/index.tsx +2 -3
- package/themes/original/src/components/Checkout/index.tsx +130 -89
- package/themes/original/src/components/Favorite/index.tsx +1 -5
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +1 -2
- package/themes/original/src/components/GoogleMap/index.tsx +39 -18
- package/themes/original/src/components/Help/functions.tsx +76 -0
- package/themes/original/src/components/Help/index.tsx +74 -29
- package/themes/original/src/components/Help/styles.tsx +4 -1
- package/themes/original/src/components/HelpOptions/index.tsx +44 -0
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
- package/themes/original/src/components/Home/index.tsx +35 -16
- package/themes/original/src/components/LoginForm/index.tsx +12 -5
- package/themes/original/src/components/MessageListing/index.tsx +1 -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 +72 -51
- package/themes/original/src/components/MomentSelector/index.tsx +5 -2
- package/themes/original/src/components/MultiCheckout/index.tsx +76 -35
- package/themes/original/src/components/MyOrders/index.tsx +2 -2
- package/themes/original/src/components/NavBar/index.tsx +6 -2
- package/themes/original/src/components/NotFoundSource/index.tsx +40 -39
- package/themes/original/src/components/NotFoundSource/styles.tsx +18 -9
- package/themes/original/src/components/OrderDetails/OrderEta.tsx +4 -3
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +11 -4
- package/themes/original/src/components/OrderDetails/index.tsx +44 -19
- 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 +4 -3
- package/themes/original/src/components/OrdersOption/index.tsx +3 -6
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +471 -459
- package/themes/original/src/components/PhoneInputNumber/index.tsx +92 -7
- package/themes/original/src/components/ProductForm/ActionButton.tsx +6 -10
- package/themes/original/src/components/ProductItemAccordion/index.tsx +28 -37
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +15 -14
- package/themes/original/src/components/ServiceForm/index.tsx +1 -1
- package/themes/original/src/components/SignupForm/index.tsx +41 -24
- package/themes/original/src/components/SingleOrderCard/index.tsx +7 -4
- package/themes/original/src/components/SingleProductCard/index.tsx +3 -4
- package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
- package/themes/original/src/components/StripeCardsList/index.tsx +9 -4
- package/themes/original/src/components/StripeElementsForm/index.tsx +2 -2
- package/themes/original/src/components/StripeElementsForm/naked.tsx +1 -1
- package/themes/original/src/components/TaxInformation/index.tsx +3 -2
- package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +7 -2
- package/themes/original/src/components/UserDetails/index.tsx +17 -16
- package/themes/original/src/components/UserFormDetails/index.tsx +109 -67
- 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/shared/OAlert.tsx +2 -1
- package/themes/original/src/components/shared/OButton.tsx +2 -2
- 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 +699 -689
- package/themes/original/src/utils/index.tsx +29 -0
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +0 -62
- package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +0 -12
- package/themes/original/src/components/HelpGuide/index.tsx +0 -68
- package/themes/original/src/components/HelpGuide/styles.tsx +0 -12
- package/themes/original/src/components/HelpOrder/index.tsx +0 -71
- package/themes/original/src/components/HelpOrder/styles.tsx +0 -13
|
@@ -3,8 +3,7 @@ import {
|
|
|
3
3
|
StyleSheet,
|
|
4
4
|
View,
|
|
5
5
|
TouchableOpacity,
|
|
6
|
-
ActivityIndicator
|
|
7
|
-
Alert,
|
|
6
|
+
ActivityIndicator
|
|
8
7
|
} from 'react-native';
|
|
9
8
|
import Clipboard from '@react-native-clipboard/clipboard';
|
|
10
9
|
import { StarPRNT } from 'react-native-star-prnt';
|
|
@@ -31,7 +30,7 @@ import { FloatingButton } from '../FloatingButton';
|
|
|
31
30
|
import { GoogleMap } from '../GoogleMap';
|
|
32
31
|
import { OButton, OModal, OText, OIcon } from '../shared';
|
|
33
32
|
import { OrderDetailsParams } from '../../types';
|
|
34
|
-
import { verifyDecimals, getProductPrice, getOrderStatus } from '../../utils';
|
|
33
|
+
import { verifyDecimals, getProductPrice, getOrderStatus, getCurrenySymbol } from '../../utils';
|
|
35
34
|
import { USER_TYPE } from '../../config/constants';
|
|
36
35
|
import CountryPicker from 'react-native-country-picker-modal';
|
|
37
36
|
import { NotFoundSource } from '../NotFoundSource';
|
|
@@ -53,6 +52,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
53
52
|
actions,
|
|
54
53
|
orderTitle,
|
|
55
54
|
appTitle,
|
|
55
|
+
loadMessages,
|
|
56
|
+
notificationApp
|
|
56
57
|
} = props;
|
|
57
58
|
|
|
58
59
|
const theme = useTheme();
|
|
@@ -77,7 +78,9 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
77
78
|
const [printerSettings, setPrinterSettings] = useState<any>('')
|
|
78
79
|
const [autoPrintEnabled, setAutoPrintEnabled] = useState<boolean>(false)
|
|
79
80
|
|
|
80
|
-
const orderToComplete = [4,20,21]
|
|
81
|
+
const orderToComplete = [4, 20, 21]
|
|
82
|
+
const orderToReady = [7, 14]
|
|
83
|
+
const deliveryTypes = [1, 7]
|
|
81
84
|
|
|
82
85
|
if (order?.status === 7 || order?.status === 4) {
|
|
83
86
|
if (drivers?.length > 0 && drivers) {
|
|
@@ -135,6 +138,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
135
138
|
if (order?.status === 7 && autoPrintEnabled && printerSettings) {
|
|
136
139
|
handleViewSummaryOrder()
|
|
137
140
|
}
|
|
141
|
+
return order
|
|
138
142
|
}
|
|
139
143
|
}
|
|
140
144
|
|
|
@@ -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
|
});
|
|
@@ -258,19 +268,22 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
258
268
|
|
|
259
269
|
const subtotal = `${t('SUBTOTAL', 'Subtotal')}: ${parsePrice(
|
|
260
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,14 +310,33 @@ 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
|
|
|
304
|
-
const handleViewActionOrder = (action: string) => {
|
|
318
|
+
const handleViewActionOrder = async (action: string, options?: any) => {
|
|
305
319
|
if (openModalForMapView) {
|
|
306
320
|
setOpenModalForMapView(false);
|
|
307
321
|
}
|
|
322
|
+
if (options?.forceUpdateStatus) {
|
|
323
|
+
let bodyToSend: any = {};
|
|
324
|
+
const orderStatus: any = {
|
|
325
|
+
acceptByBusiness: {
|
|
326
|
+
status: 7,
|
|
327
|
+
},
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
if (actions && action === 'accept') {
|
|
331
|
+
bodyToSend = orderStatus[actions.accept];
|
|
332
|
+
}
|
|
333
|
+
bodyToSend.id = order?.id;
|
|
334
|
+
const _order = await handleChangeOrderStatus(bodyToSend?.status, bodyToSend)
|
|
335
|
+
if (!_order?.id) {
|
|
336
|
+
showToast(ToastType.Error, t('FAILED_TO_UPDATE_ORDER', 'Failed to update order'), 5000)
|
|
337
|
+
return
|
|
338
|
+
}
|
|
339
|
+
}
|
|
308
340
|
setActionOrder(action);
|
|
309
341
|
setOpenModalForAccept(true);
|
|
310
342
|
};
|
|
@@ -339,6 +371,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
339
371
|
};
|
|
340
372
|
|
|
341
373
|
const handleCloseModal = () => {
|
|
374
|
+
readMessages && readMessages()
|
|
375
|
+
loadMessages && loadMessages()
|
|
342
376
|
setOpenModalForBusiness(false);
|
|
343
377
|
};
|
|
344
378
|
|
|
@@ -379,7 +413,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
379
413
|
},
|
|
380
414
|
{
|
|
381
415
|
...order?.customer?.location,
|
|
382
|
-
title: order?.customer?.name ??
|
|
416
|
+
title: order?.customer?.name ?? t('CUSTOMER', 'Customer'),
|
|
383
417
|
address: {
|
|
384
418
|
addressName: order?.customer?.address,
|
|
385
419
|
zipcode: order?.customer?.zipcode
|
|
@@ -392,7 +426,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
392
426
|
];
|
|
393
427
|
|
|
394
428
|
useEffect(() => {
|
|
395
|
-
if (openModalForAccept) {
|
|
429
|
+
if (openModalForAccept && !loading) {
|
|
396
430
|
setOpenModalForAccept(false);
|
|
397
431
|
}
|
|
398
432
|
|
|
@@ -413,7 +447,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
413
447
|
|
|
414
448
|
useEffect(() => {
|
|
415
449
|
const getStorageData = async () => {
|
|
416
|
-
|
|
450
|
+
const printers = await _retrieveStoreData('printers')
|
|
417
451
|
const autoPrint = await _retrieveStoreData('auto_print_after_accept_order')
|
|
418
452
|
setPrinterSettings(printers?.length && printers)
|
|
419
453
|
setAutoPrintEnabled(!!autoPrint)
|
|
@@ -482,6 +516,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
482
516
|
handleCopyClipboard={handleCopyClipboard}
|
|
483
517
|
handleArrowBack={handleArrowBack}
|
|
484
518
|
isCustomView={props.isCustomView}
|
|
519
|
+
messages={messages}
|
|
520
|
+
messagesReadList={messagesReadList}
|
|
485
521
|
/>
|
|
486
522
|
<OrderDetailsContainer
|
|
487
523
|
keyboardShouldPersistTaps="handled"
|
|
@@ -489,7 +525,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
489
525
|
<>
|
|
490
526
|
<OrderContentComponent order={order} />
|
|
491
527
|
{(order?.status === 7 || order?.status === 4) &&
|
|
492
|
-
order?.delivery_type
|
|
528
|
+
deliveryTypes.includes(order?.delivery_type) && configs?.assign_driver_enabled?.value === '1' && (
|
|
493
529
|
<AssignDriver>
|
|
494
530
|
<OText style={{ marginBottom: 5 }} size={16} weight="600">
|
|
495
531
|
{t('ASSIGN_DRIVER', 'Assign driver')}
|
|
@@ -587,6 +623,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
587
623
|
messages={messages}
|
|
588
624
|
order={order}
|
|
589
625
|
setMessages={setMessages}
|
|
626
|
+
notificationApp={notificationApp}
|
|
590
627
|
/>
|
|
591
628
|
</OModal>
|
|
592
629
|
|
|
@@ -630,7 +667,6 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
630
667
|
</>
|
|
631
668
|
<View style={{ height: 30 }} />
|
|
632
669
|
</OrderDetailsContainer>
|
|
633
|
-
|
|
634
670
|
{order &&
|
|
635
671
|
Object.keys(order).length > 0 &&
|
|
636
672
|
getOrderStatus(order?.status, t)?.value ===
|
|
@@ -638,7 +674,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
638
674
|
<FloatingButton
|
|
639
675
|
btnText={t('REJECT', 'Reject')}
|
|
640
676
|
isSecondaryBtn={false}
|
|
641
|
-
secondButtonClick={() => handleViewActionOrder('accept')}
|
|
677
|
+
secondButtonClick={() => handleViewActionOrder('accept', { forceUpdateStatus: true })}
|
|
642
678
|
firstButtonClick={() => handleViewActionOrder('reject')}
|
|
643
679
|
secondBtnText={t('ACCEPT', 'Accept')}
|
|
644
680
|
secondButton={true}
|
|
@@ -647,7 +683,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
647
683
|
widthButton={'45%'}
|
|
648
684
|
/>
|
|
649
685
|
)}
|
|
650
|
-
{order?.status
|
|
686
|
+
{orderToReady.includes(order?.status) && (
|
|
651
687
|
<FloatingButton
|
|
652
688
|
btnText={t('READY_FOR_PICKUP', 'Ready for pickup')}
|
|
653
689
|
colorTxt1={theme.colors.primary}
|
|
@@ -657,7 +693,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
657
693
|
disabled={loading}
|
|
658
694
|
/>
|
|
659
695
|
)}
|
|
660
|
-
{orderToComplete.includes(order?.status) && !
|
|
696
|
+
{orderToComplete.includes(order?.status) && !deliveryTypes.includes(order?.delivery_type) && (
|
|
661
697
|
<FloatingButton
|
|
662
698
|
btnText={t(
|
|
663
699
|
'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
|
|
@@ -668,7 +704,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
668
704
|
secondButtonClick={() => handleChangeOrderStatus?.(15)}
|
|
669
705
|
firstButtonClick={() => handleChangeOrderStatus?.(17)}
|
|
670
706
|
secondBtnText={t(
|
|
671
|
-
'
|
|
707
|
+
'ORDER_PICKUP_COMPLETED_BY_CUSTOMER',
|
|
672
708
|
'Pickup completed by customer',
|
|
673
709
|
)}
|
|
674
710
|
secondButton={true}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
//React & React Native
|
|
2
1
|
import React, { useState, useEffect } from 'react';
|
|
3
2
|
import { StyleSheet, View } from 'react-native';
|
|
4
3
|
|
|
5
|
-
// Thirds
|
|
6
4
|
import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
|
|
7
5
|
import Clipboard from '@react-native-clipboard/clipboard';
|
|
6
|
+
import MCIcon from 'react-native-vector-icons/MaterialCommunityIcons';
|
|
8
7
|
|
|
9
|
-
//OrderingComponent
|
|
10
8
|
import {
|
|
11
9
|
useLanguage,
|
|
12
10
|
OrderDetails as OrderDetailsConTableoller,
|
|
@@ -14,16 +12,16 @@ import {
|
|
|
14
12
|
useSession,
|
|
15
13
|
ToastType,
|
|
16
14
|
useUtils,
|
|
17
|
-
useConfig
|
|
15
|
+
useConfig,
|
|
16
|
+
useApi
|
|
18
17
|
} from 'ordering-components/native';
|
|
19
18
|
|
|
20
|
-
//Components
|
|
21
19
|
import Alert from '../../providers/AlertProvider';
|
|
22
20
|
import { AcceptOrRejectOrder } from '../AcceptOrRejectOrder';
|
|
23
21
|
import { Chat } from '../Chat';
|
|
24
22
|
import { FloatingButton } from '../FloatingButton';
|
|
25
23
|
import { DriverMap } from '../DriverMap';
|
|
26
|
-
import { OButton } from '../shared';
|
|
24
|
+
import { OButton, OText } from '../shared';
|
|
27
25
|
import { OModal } from '../shared';
|
|
28
26
|
import { OrderDetailsParams } from '../../types';
|
|
29
27
|
import { USER_TYPE } from '../../config/constants';
|
|
@@ -32,8 +30,8 @@ import { NotFoundSource } from '../NotFoundSource';
|
|
|
32
30
|
import { verifyDecimals, getProductPrice, getOrderStatus } from '../../utils';
|
|
33
31
|
import { OrderHeaderComponent } from './OrderHeaderComponent';
|
|
34
32
|
import { OrderContentComponent } from './OrderContentComponent';
|
|
35
|
-
//Styles
|
|
36
33
|
import { OrderDetailsContainer, Pickup } from './styles';
|
|
34
|
+
import { useOfflineActions } from '../../../../../src/context/OfflineActions';
|
|
37
35
|
|
|
38
36
|
export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
39
37
|
const {
|
|
@@ -42,7 +40,6 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
42
40
|
setMessages,
|
|
43
41
|
readMessages,
|
|
44
42
|
messagesReadList,
|
|
45
|
-
handleChangeOrderStatus,
|
|
46
43
|
permissions,
|
|
47
44
|
askLocationPermission,
|
|
48
45
|
driverLocation,
|
|
@@ -56,13 +53,15 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
56
53
|
forceUpdate,
|
|
57
54
|
getPermissions,
|
|
58
55
|
orderAssingId,
|
|
59
|
-
isGrantedPermissions
|
|
56
|
+
isGrantedPermissions
|
|
60
57
|
} = props;
|
|
58
|
+
|
|
61
59
|
const [, { showToast }] = useToast();
|
|
62
60
|
const [{ parsePrice, parseNumber }] = useUtils();
|
|
63
61
|
const [{ configs }] = useConfig();
|
|
64
|
-
|
|
62
|
+
const [ordering] = useApi()
|
|
65
63
|
const { order } = props.order
|
|
64
|
+
const isDelosiProject = ['delosi', 'delosipruebas'].includes(ordering?.project)
|
|
66
65
|
|
|
67
66
|
const hideTimer = configs?.hidden_driver_eta_time?.value === '1'
|
|
68
67
|
const isAllowedDriverRejectOrder = configs?.allow_driver_reject_order?.value === '1'
|
|
@@ -72,6 +71,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
72
71
|
const theme = useTheme();
|
|
73
72
|
const [, t] = useLanguage();
|
|
74
73
|
const [session] = useSession();
|
|
74
|
+
const [{ isNetConnected, canSaveChangesOffline }, { applyOffAction, registerOffOrder }] = useOfflineActions()
|
|
75
|
+
|
|
75
76
|
const [actionOrder, setActionOrder] = useState('');
|
|
76
77
|
const [unreadAlert, setUnreadAlert] = useState({
|
|
77
78
|
business: false,
|
|
@@ -86,12 +87,17 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
86
87
|
key?: string | null;
|
|
87
88
|
}>({ open: false, content: [], key: null });
|
|
88
89
|
|
|
89
|
-
const
|
|
90
|
+
const disabledActionsByInternet = isNetConnected !== null && !isNetConnected && canSaveChangesOffline === false
|
|
91
|
+
|
|
92
|
+
const validStatusComplete = [9, 19, 23, 26]
|
|
90
93
|
|
|
91
94
|
const pendingOrderStatus = [1, 4, 7, 13]
|
|
92
95
|
|
|
93
96
|
const logisticOrderStatus = [4, 6, 7]
|
|
94
97
|
|
|
98
|
+
const deliveryTypes = [1, 7]
|
|
99
|
+
|
|
100
|
+
|
|
95
101
|
const showFloatButtonsPickUp: any = {
|
|
96
102
|
8: !isHideRejectButtons,
|
|
97
103
|
3: true,
|
|
@@ -105,13 +111,23 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
105
111
|
14: true
|
|
106
112
|
};
|
|
107
113
|
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
114
|
+
const handleChangeOrderStatus = async (status: number) => {
|
|
115
|
+
if (!isNetConnected && canSaveChangesOffline !== false) {
|
|
116
|
+
const result = applyOffAction({
|
|
117
|
+
event: 'evt_off_change_order_status',
|
|
118
|
+
data: { orderId: order?.id, body: { status } }
|
|
119
|
+
})
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const dataToSave: any = !isNetConnected && canSaveChangesOffline !== false
|
|
123
|
+
? { dataToSave: { status, unsync: true } }
|
|
124
|
+
: null
|
|
125
|
+
const orderUpdated = await props.handleChangeOrderStatus(status, {}, dataToSave)
|
|
126
|
+
|
|
127
|
+
if (!isNetConnected && canSaveChangesOffline !== false) {
|
|
128
|
+
await registerOffOrder(orderUpdated)
|
|
129
|
+
}
|
|
130
|
+
}
|
|
115
131
|
|
|
116
132
|
const handleOpenMessagesForBusiness = () => {
|
|
117
133
|
setOpenModalForBusiness(true);
|
|
@@ -222,7 +238,13 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
222
238
|
? t('EAT_IN', 'Eat in')
|
|
223
239
|
: order.delivery_type === 4
|
|
224
240
|
? t('CURBSIDE', 'Curbside')
|
|
225
|
-
:
|
|
241
|
+
: order.delivery_type === 5
|
|
242
|
+
? t('DRIVER_THRU', 'Driver thru')
|
|
243
|
+
: order.delivery_type === 7
|
|
244
|
+
? t('CATERING_DELIVERY', 'Catering delivery')
|
|
245
|
+
: order.delivery_type === 8
|
|
246
|
+
? t('CATERING_PICKUP', 'Catering pickup')
|
|
247
|
+
: t('DELIVERY', 'Delivery')
|
|
226
248
|
}\n`
|
|
227
249
|
: '';
|
|
228
250
|
|
|
@@ -428,6 +450,16 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
428
450
|
forceUpdate && handleViewActionOrder && handleViewActionOrder(forceUpdate === 9 ? 'forcePickUp' : 'forceDelivery')
|
|
429
451
|
}, [forceUpdate])
|
|
430
452
|
|
|
453
|
+
useEffect(() => {
|
|
454
|
+
if (!!props.order?.error || props.order?.error?.length > 0) {
|
|
455
|
+
showToast(ToastType.Error,
|
|
456
|
+
props.order?.error?.[0] ||
|
|
457
|
+
props.order?.error ||
|
|
458
|
+
t('NETWORK_ERROR', 'Network Error'),
|
|
459
|
+
5000)
|
|
460
|
+
}
|
|
461
|
+
}, [props.order?.error])
|
|
462
|
+
|
|
431
463
|
const styles = StyleSheet.create({
|
|
432
464
|
btnPickUp: {
|
|
433
465
|
borderWidth: 0,
|
|
@@ -439,8 +471,10 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
439
471
|
let locationMarker: any;
|
|
440
472
|
let isToFollow = false;
|
|
441
473
|
let isBusinessMarker = false;
|
|
442
|
-
|
|
443
|
-
|
|
474
|
+
const customerStatusses = [3, 9, 19, 23, 26]
|
|
475
|
+
const businessStatusses = [7, 8, 18]
|
|
476
|
+
const arrivedCustomerStatusses = [9, 19, 23]
|
|
477
|
+
if (businessStatusses?.includes(order?.status)) {
|
|
444
478
|
const markerBusiness = 'Business';
|
|
445
479
|
isBusinessMarker = true;
|
|
446
480
|
locationMarker = locations.find(
|
|
@@ -450,7 +484,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
450
484
|
if (order?.status === 8 || order?.status === 18) {
|
|
451
485
|
isToFollow = true;
|
|
452
486
|
}
|
|
453
|
-
} else if (
|
|
487
|
+
} else if (customerStatusses?.includes(order?.status)) {
|
|
454
488
|
const markerCustomer = 'Customer';
|
|
455
489
|
isToFollow = true;
|
|
456
490
|
isBusinessMarker = false;
|
|
@@ -478,20 +512,35 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
478
512
|
isOrderGroup={isOrderGroup}
|
|
479
513
|
lastOrder={lastOrder}
|
|
480
514
|
/>
|
|
481
|
-
{(order?.status === 8 || order?.status === 18) && order?.delivery_type
|
|
515
|
+
{(order?.status === 8 || order?.status === 18) && deliveryTypes?.includes(order?.delivery_type) && !props.order?.loading && (
|
|
482
516
|
<Pickup>
|
|
483
517
|
<OButton
|
|
484
518
|
style={styles.btnPickUp}
|
|
485
519
|
textStyle={{ color: theme.colors.primary }}
|
|
486
520
|
text={t('ARRIVED_TO_BUSINESS', 'Arrived to bussiness')}
|
|
521
|
+
isDisabled={disabledActionsByInternet}
|
|
487
522
|
onClick={() =>
|
|
488
|
-
|
|
523
|
+
isGrantedPermissions ? handleChangeOrderStatus(3) : goToPermissionPage()
|
|
489
524
|
}
|
|
490
525
|
imgLeftStyle={{ tintColor: theme.colors.backArrow }}
|
|
491
526
|
/>
|
|
492
527
|
</Pickup>
|
|
493
528
|
)}
|
|
494
|
-
{order?.status
|
|
529
|
+
{arrivedCustomerStatusses.includes(order?.status) && deliveryTypes?.includes(order?.delivery_type) && !props.order?.loading && (
|
|
530
|
+
<View style={{ paddingVertical: 20, marginBottom: 20 }}>
|
|
531
|
+
<OButton
|
|
532
|
+
style={styles.btnPickUp}
|
|
533
|
+
textStyle={{ color: theme.colors.primary }}
|
|
534
|
+
text={t('ARRIVED_TO_CUSTOMER', 'Arrived to customer')}
|
|
535
|
+
isDisabled={disabledActionsByInternet}
|
|
536
|
+
onClick={() =>
|
|
537
|
+
isGrantedPermissions ? handleChangeOrderStatus(26) : goToPermissionPage()
|
|
538
|
+
}
|
|
539
|
+
imgLeftStyle={{ tintColor: theme.colors.backArrow }}
|
|
540
|
+
/>
|
|
541
|
+
</View>
|
|
542
|
+
)}
|
|
543
|
+
{order?.status === 3 && deliveryTypes?.includes(order?.delivery_type) && !isHideRejectButtons && isEnabledOrderNotReady && !props.order?.loading && (
|
|
495
544
|
<View style={{ paddingVertical: 20, marginBottom: 20 }}>
|
|
496
545
|
<OButton
|
|
497
546
|
style={styles.btnPickUp}
|
|
@@ -508,7 +557,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
508
557
|
<View
|
|
509
558
|
style={{
|
|
510
559
|
height:
|
|
511
|
-
order?.status === 8 && order?.delivery_type
|
|
560
|
+
order?.status === 8 && deliveryTypes?.includes(order?.delivery_type) ? 50 : 35,
|
|
512
561
|
}}
|
|
513
562
|
/>
|
|
514
563
|
|
|
@@ -535,21 +584,31 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
535
584
|
))}
|
|
536
585
|
</View>
|
|
537
586
|
)}
|
|
538
|
-
|
|
539
|
-
{(!!props.order?.error || props.order?.error?.length > 0) && (
|
|
540
|
-
<NotFoundSource
|
|
541
|
-
btnTitle={t('GO_TO_MY_ORDERS', 'Go to my orders')}
|
|
542
|
-
content={
|
|
543
|
-
props.order.error[0] ||
|
|
544
|
-
props.order.error ||
|
|
545
|
-
t('NETWORK_ERROR', 'Network Error')
|
|
546
|
-
}
|
|
547
|
-
onClickButton={() => navigation.navigate('Orders')}
|
|
548
|
-
/>
|
|
549
|
-
)}
|
|
550
587
|
{!((!order || Object.keys(order).length === 0) &&
|
|
551
|
-
(props.order?.error?.length < 1 || !props.order?.error)) && (
|
|
588
|
+
(props.order?.error?.length < 1 || !props.order?.error)) && order?.id && (
|
|
552
589
|
<View style={{ flex: 1 }}>
|
|
590
|
+
{order?.unsync && (
|
|
591
|
+
<View
|
|
592
|
+
style={{
|
|
593
|
+
flexDirection: 'row',
|
|
594
|
+
justifyContent: 'flex-start',
|
|
595
|
+
alignItems: 'center'
|
|
596
|
+
}}
|
|
597
|
+
>
|
|
598
|
+
<MCIcon
|
|
599
|
+
name={'cloud-sync'}
|
|
600
|
+
color={'#444'}
|
|
601
|
+
size={16}
|
|
602
|
+
/>
|
|
603
|
+
<OText
|
|
604
|
+
size={14}
|
|
605
|
+
color={theme.colors.textGray}
|
|
606
|
+
style={{ marginLeft: 5 }}
|
|
607
|
+
>
|
|
608
|
+
{t('PENDING_SYNC_CHANGES', 'Pending sync changes')}
|
|
609
|
+
</OText>
|
|
610
|
+
</View>
|
|
611
|
+
)}
|
|
553
612
|
<OrderHeaderComponent
|
|
554
613
|
order={order}
|
|
555
614
|
handleOpenMapView={handleOpenMapView}
|
|
@@ -573,11 +632,11 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
573
632
|
</OrderDetailsContainer>
|
|
574
633
|
{showFloatButtonsPickUp[order?.status] && (
|
|
575
634
|
<FloatingButton
|
|
576
|
-
disabled={props.order?.loading}
|
|
635
|
+
disabled={props.order?.loading || disabledActionsByInternet}
|
|
577
636
|
btnText={t('PICKUP_FAILED', 'Pickup failed')}
|
|
578
637
|
isSecondaryBtn={false}
|
|
579
638
|
secondButtonClick={() =>
|
|
580
|
-
|
|
639
|
+
isGrantedPermissions ? handleChangeOrderStatus(9) : goToPermissionPage()
|
|
581
640
|
}
|
|
582
641
|
firstButtonClick={() =>
|
|
583
642
|
handleViewActionOrder && handleViewActionOrder('pickupFailed')
|
|
@@ -590,39 +649,48 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
590
649
|
isHideRejectButtons={isHideRejectButtons || !isEnabledFailedPickupDriver}
|
|
591
650
|
/>
|
|
592
651
|
)}
|
|
593
|
-
{(validStatusComplete.includes(order?.status)) && (
|
|
652
|
+
{(validStatusComplete.includes(order?.status)) && !(isDelosiProject && order?.status !== 26 && isHideRejectButtons) && (
|
|
594
653
|
<>
|
|
595
654
|
<FloatingButton
|
|
596
|
-
disabled={props.order?.loading}
|
|
655
|
+
disabled={props.order?.loading || disabledActionsByInternet}
|
|
597
656
|
btnText={t('DELIVERY_FAILED', 'Delivery Failed')}
|
|
598
657
|
isSecondaryBtn={false}
|
|
599
658
|
secondButtonClick={() =>
|
|
600
|
-
|
|
659
|
+
isGrantedPermissions ? handleChangeOrderStatus(11) : goToPermissionPage()
|
|
601
660
|
}
|
|
602
661
|
firstButtonClick={() =>
|
|
603
662
|
handleViewActionOrder && handleViewActionOrder('deliveryFailed')
|
|
604
663
|
}
|
|
605
664
|
secondBtnText={t('DELIVERY_COMPLETE', 'Delivery complete')}
|
|
606
|
-
secondButton={true}
|
|
665
|
+
secondButton={isDelosiProject ? order?.status === 26 : true}
|
|
607
666
|
firstColorCustom={theme.colors.red}
|
|
667
|
+
principalButtonColor={theme.colors.red}
|
|
608
668
|
secondColorCustom={theme.colors.green}
|
|
609
|
-
widthButton={isHideRejectButtons ? '100%' : '45%'}
|
|
669
|
+
widthButton={isHideRejectButtons || (isDelosiProject && order?.status !== 26) ? '100%' : '45%'}
|
|
610
670
|
isHideRejectButtons={isHideRejectButtons}
|
|
611
671
|
/>
|
|
612
672
|
</>
|
|
613
673
|
)}
|
|
614
674
|
{showFloatButtonsAcceptOrReject[order?.status] && (
|
|
615
675
|
<FloatingButton
|
|
676
|
+
disabled={props.order?.loading || disabledActionsByInternet}
|
|
677
|
+
widthButton={isHideRejectButtons ? '100%' : '45%'}
|
|
678
|
+
isHideRejectButtons={isHideRejectButtons}
|
|
616
679
|
btnText={t('REJECT', 'Reject')}
|
|
680
|
+
firstColorCustom={theme.colors.red}
|
|
681
|
+
firstButtonClick={() => order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status))
|
|
682
|
+
? handleRejectLogisticOrder()
|
|
683
|
+
: handleViewActionOrder('reject')
|
|
684
|
+
}
|
|
617
685
|
isSecondaryBtn={false}
|
|
618
|
-
secondButtonClick={() => hideTimer ? handleChangeOrderStatus && handleChangeOrderStatus(8) : (order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status))) ? handleAcceptLogisticOrder(order) : handleViewActionOrder('accept')}
|
|
619
|
-
firstButtonClick={() => order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status)) ? handleRejectLogisticOrder() : handleViewActionOrder('reject')}
|
|
620
|
-
secondBtnText={t('ACCEPT', 'Accept')}
|
|
621
686
|
secondButton={true}
|
|
622
|
-
|
|
687
|
+
secondBtnText={t('ACCEPT', 'Accept')}
|
|
688
|
+
secondButtonClick={() => hideTimer
|
|
689
|
+
? handleChangeOrderStatus(8)
|
|
690
|
+
: (order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status)))
|
|
691
|
+
? handleAcceptLogisticOrder(order)
|
|
692
|
+
: handleViewActionOrder('accept')}
|
|
623
693
|
secondColorCustom={theme.colors.green}
|
|
624
|
-
widthButton={isHideRejectButtons ? '100%' : '45%'}
|
|
625
|
-
isHideRejectButtons={isHideRejectButtons}
|
|
626
694
|
/>
|
|
627
695
|
)}
|
|
628
696
|
</>
|
|
@@ -677,7 +745,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
677
745
|
entireModal
|
|
678
746
|
customClose>
|
|
679
747
|
<AcceptOrRejectOrder
|
|
680
|
-
handleUpdateOrder={handleChangeOrderStatus}
|
|
748
|
+
handleUpdateOrder={props.handleChangeOrderStatus}
|
|
681
749
|
closeModal={setOpenModalForAccept}
|
|
682
750
|
customerCellphone={order?.customer?.cellphone}
|
|
683
751
|
loading={props.order?.loading}
|
|
@@ -687,11 +755,24 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
687
755
|
actions={actions}
|
|
688
756
|
orderTitle={orderTitle}
|
|
689
757
|
appTitle={appTitle}
|
|
758
|
+
isLoadingOrder={props.order?.loading}
|
|
690
759
|
/>
|
|
691
760
|
</OModal>
|
|
692
761
|
)}
|
|
693
762
|
</View>
|
|
694
763
|
)}
|
|
764
|
+
|
|
765
|
+
{(!!props.order?.error || props.order?.error?.length > 0) && (
|
|
766
|
+
<NotFoundSource
|
|
767
|
+
btnTitle={t('GO_TO_MY_ORDERS', 'Go to my orders')}
|
|
768
|
+
content={
|
|
769
|
+
props.order.error[0] ||
|
|
770
|
+
props.order.error ||
|
|
771
|
+
t('NETWORK_ERROR', 'Network Error')
|
|
772
|
+
}
|
|
773
|
+
onClickButton={() => navigation.navigate('Orders')}
|
|
774
|
+
/>
|
|
775
|
+
)}
|
|
695
776
|
{alertState?.open && (
|
|
696
777
|
<Alert
|
|
697
778
|
open={alertState.open}
|