ordering-ui-react-native 0.21.87 → 0.21.88-release

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/package.json +6 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessesListing/index.tsx +1 -1
  4. package/src/components/StripeMethodForm/index.tsx +6 -4
  5. package/src/components/VerifyPhone/styles.tsx +1 -2
  6. package/src/types/index.tsx +3 -1
  7. package/themes/business/index.tsx +2 -0
  8. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -6
  9. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
  10. package/themes/business/src/components/BusinessController/index.tsx +8 -3
  11. package/themes/business/src/components/BusinessProductList/index.tsx +2 -1
  12. package/themes/business/src/components/Chat/index.tsx +5 -2
  13. package/themes/business/src/components/DriverMap/index.tsx +49 -27
  14. package/themes/business/src/components/GoogleMap/index.tsx +15 -8
  15. package/themes/business/src/components/Home/index.tsx +5 -1
  16. package/themes/business/src/components/LanguageSelector/index.tsx +2 -3
  17. package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
  18. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  19. package/themes/business/src/components/MapView/index.tsx +36 -17
  20. package/themes/business/src/components/NewOrderNotification/index.tsx +69 -33
  21. package/themes/business/src/components/OrderDetails/Business.tsx +74 -9
  22. package/themes/business/src/components/OrderDetails/Delivery.tsx +131 -51
  23. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +112 -41
  24. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +62 -24
  25. package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
  26. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +221 -0
  27. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +3 -2
  28. package/themes/business/src/components/OrderSummary/index.tsx +223 -73
  29. package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
  30. package/themes/business/src/components/OrdersOption/index.tsx +251 -159
  31. package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
  32. package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
  33. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +42 -20
  34. package/themes/business/src/components/PreviousOrders/index.tsx +76 -66
  35. package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
  36. package/themes/business/src/components/PrinterEdition/index.tsx +431 -0
  37. package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
  38. package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
  39. package/themes/business/src/components/PrinterSettings/index.tsx +267 -0
  40. package/themes/business/src/components/PrinterSettings/styles.tsx +30 -0
  41. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  42. package/themes/business/src/components/Sessions/index.tsx +1 -1
  43. package/themes/business/src/components/StoresList/index.tsx +2 -2
  44. package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
  45. package/themes/business/src/components/UserProfileForm/index.tsx +47 -29
  46. package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
  47. package/themes/business/src/components/shared/OInput.tsx +2 -0
  48. package/themes/business/src/components/shared/OTextarea.tsx +8 -9
  49. package/themes/business/src/hooks/useLocation.tsx +5 -4
  50. package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
  51. package/themes/business/src/types/index.tsx +14 -4
  52. package/themes/business/src/utils/index.tsx +25 -1
  53. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  54. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  55. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  56. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  57. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  58. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  59. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  60. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  61. package/themes/original/index.tsx +11 -0
  62. package/themes/original/src/components/AddressDetails/index.tsx +20 -10
  63. package/themes/original/src/components/AddressForm/index.tsx +32 -17
  64. package/themes/original/src/components/AddressList/index.tsx +8 -7
  65. package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
  66. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  67. package/themes/original/src/components/BusinessBasicInformation/index.tsx +5 -8
  68. package/themes/original/src/components/BusinessController/index.tsx +12 -7
  69. package/themes/original/src/components/BusinessItemAccordion/index.tsx +13 -5
  70. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +2 -3
  71. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +1 -3
  72. package/themes/original/src/components/BusinessListingSearch/index.tsx +1 -2
  73. package/themes/original/src/components/BusinessPreorder/index.tsx +20 -15
  74. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +5 -5
  75. package/themes/original/src/components/BusinessProductsList/index.tsx +2 -2
  76. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  77. package/themes/original/src/components/BusinessProductsListing/index.tsx +18 -6
  78. package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
  79. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  80. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +1 -1
  81. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  82. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  83. package/themes/original/src/components/Cart/index.tsx +43 -15
  84. package/themes/original/src/components/CartContent/index.tsx +21 -8
  85. package/themes/original/src/components/Checkout/index.tsx +105 -59
  86. package/themes/original/src/components/CitiesControl/index.tsx +0 -3
  87. package/themes/original/src/components/CouponControl/index.tsx +1 -3
  88. package/themes/original/src/components/DriverTips/index.tsx +1 -3
  89. package/themes/original/src/components/Favorite/index.tsx +1 -5
  90. package/themes/original/src/components/FavoriteList/index.tsx +0 -1
  91. package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -7
  92. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
  93. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
  94. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
  95. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +7 -9
  96. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +11 -12
  97. package/themes/original/src/components/GoogleMap/index.tsx +39 -18
  98. package/themes/original/src/components/Help/index.tsx +2 -0
  99. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  100. package/themes/original/src/components/Home/index.tsx +2 -10
  101. package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
  102. package/themes/original/src/components/LoginForm/index.tsx +4 -7
  103. package/themes/original/src/components/MessageListing/index.tsx +2 -1
  104. package/themes/original/src/components/Messages/index.tsx +13 -9
  105. package/themes/original/src/components/MomentOption/index.tsx +13 -2
  106. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
  107. package/themes/original/src/components/MultiCheckout/index.tsx +130 -86
  108. package/themes/original/src/components/MultiOrdersDetails/index.tsx +2 -1
  109. package/themes/original/src/components/MyOrders/index.tsx +10 -23
  110. package/themes/original/src/components/NavBar/index.tsx +7 -4
  111. package/themes/original/src/components/NetworkError/index.tsx +0 -5
  112. package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
  113. package/themes/original/src/components/OrderDetails/OrderEta.tsx +4 -3
  114. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +13 -10
  115. package/themes/original/src/components/OrderDetails/index.tsx +42 -19
  116. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  117. package/themes/original/src/components/OrderProgress/index.tsx +26 -6
  118. package/themes/original/src/components/OrderSummary/index.tsx +28 -9
  119. package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -6
  120. package/themes/original/src/components/OrdersOption/index.tsx +3 -6
  121. package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
  122. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  123. package/themes/original/src/components/PaymentOptions/index.tsx +17 -9
  124. package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
  125. package/themes/original/src/components/PreviousOrders/index.tsx +1 -2
  126. package/themes/original/src/components/ProductForm/ActionButton.tsx +17 -20
  127. package/themes/original/src/components/ProductForm/index.tsx +107 -102
  128. package/themes/original/src/components/ProductItemAccordion/index.tsx +55 -49
  129. package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
  130. package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
  131. package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
  132. package/themes/original/src/components/Promotions/index.tsx +6 -9
  133. package/themes/original/src/components/ReviewDriver/index.tsx +1 -1
  134. package/themes/original/src/components/ReviewOrder/index.tsx +2 -2
  135. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  136. package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
  137. package/themes/original/src/components/ServiceForm/index.tsx +52 -54
  138. package/themes/original/src/components/Sessions/index.tsx +3 -3
  139. package/themes/original/src/components/SignupForm/index.tsx +86 -78
  140. package/themes/original/src/components/SingleOrderCard/index.tsx +7 -5
  141. package/themes/original/src/components/SingleProductCard/index.tsx +3 -4
  142. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  143. package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
  144. package/themes/original/src/components/StripeCardsList/index.tsx +10 -3
  145. package/themes/original/src/components/StripeElementsForm/index.tsx +77 -60
  146. package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -1
  147. package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
  148. package/themes/original/src/components/TaxInformation/index.tsx +3 -2
  149. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +10 -7
  150. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +8 -3
  151. package/themes/original/src/components/UserDetails/index.tsx +3 -2
  152. package/themes/original/src/components/UserFormDetails/index.tsx +154 -130
  153. package/themes/original/src/components/UserProfile/index.tsx +9 -1
  154. package/themes/original/src/components/Wallets/index.tsx +6 -3
  155. package/themes/original/src/components/WebsocketStatus/index.tsx +1 -4
  156. package/themes/original/src/components/shared/OAlert.tsx +2 -1
  157. package/themes/original/src/components/shared/OButton.tsx +5 -4
  158. package/themes/original/src/components/shared/OInput.tsx +4 -8
  159. package/themes/original/src/components/shared/OModal.tsx +7 -2
  160. package/themes/original/src/types/index.tsx +5 -1
  161. package/themes/original/src/utils/index.tsx +30 -1
  162. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -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,
@@ -17,13 +15,12 @@ import {
17
15
  useConfig
18
16
  } from 'ordering-components/native';
19
17
 
20
- //Components
21
18
  import Alert from '../../providers/AlertProvider';
22
19
  import { AcceptOrRejectOrder } from '../AcceptOrRejectOrder';
23
20
  import { Chat } from '../Chat';
24
21
  import { FloatingButton } from '../FloatingButton';
25
22
  import { DriverMap } from '../DriverMap';
26
- import { OButton } from '../shared';
23
+ import { OButton, OText } from '../shared';
27
24
  import { OModal } from '../shared';
28
25
  import { OrderDetailsParams } from '../../types';
29
26
  import { USER_TYPE } from '../../config/constants';
@@ -32,8 +29,8 @@ import { NotFoundSource } from '../NotFoundSource';
32
29
  import { verifyDecimals, getProductPrice, getOrderStatus } from '../../utils';
33
30
  import { OrderHeaderComponent } from './OrderHeaderComponent';
34
31
  import { OrderContentComponent } from './OrderContentComponent';
35
- //Styles
36
32
  import { OrderDetailsContainer, Pickup } from './styles';
33
+ import { useOfflineActions } from '../../../../../src/context/OfflineActions';
37
34
 
38
35
  export const OrderDetailsUI = (props: OrderDetailsParams) => {
39
36
  const {
@@ -42,7 +39,6 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
42
39
  setMessages,
43
40
  readMessages,
44
41
  messagesReadList,
45
- handleChangeOrderStatus,
46
42
  permissions,
47
43
  askLocationPermission,
48
44
  driverLocation,
@@ -56,19 +52,25 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
56
52
  forceUpdate,
57
53
  getPermissions,
58
54
  orderAssingId,
59
- isGrantedPermissions,
55
+ isGrantedPermissions
60
56
  } = props;
57
+
61
58
  const [, { showToast }] = useToast();
62
59
  const [{ parsePrice, parseNumber }] = useUtils();
63
60
  const [{ configs }] = useConfig();
64
61
 
65
62
  const { order } = props.order
66
63
 
64
+ const hideTimer = configs?.hidden_driver_eta_time?.value === '1'
67
65
  const isAllowedDriverRejectOrder = configs?.allow_driver_reject_order?.value === '1'
68
66
  const isHideRejectButtons = configs?.reject_orders_enabled && configs?.reject_orders_enabled?.value !== '1'
67
+ const isEnabledOrderNotReady = configs?.order_not_ready_enabled?.value === '1'
68
+ const isEnabledFailedPickupDriver = configs?.failed_pickup_by_driver_enabled?.value === '1'
69
69
  const theme = useTheme();
70
70
  const [, t] = useLanguage();
71
71
  const [session] = useSession();
72
+ const [{ isNetConnected, canSaveChangesOffline }, { applyOffAction, registerOffOrder }] = useOfflineActions()
73
+
72
74
  const [actionOrder, setActionOrder] = useState('');
73
75
  const [unreadAlert, setUnreadAlert] = useState({
74
76
  business: false,
@@ -83,12 +85,16 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
83
85
  key?: string | null;
84
86
  }>({ open: false, content: [], key: null });
85
87
 
86
- const validStatusComplete = [9, 19, 23]
88
+ const disabledActionsByInternet = !isNetConnected && canSaveChangesOffline === false
89
+
90
+ const validStatusComplete = [9, 19, 23, 26]
87
91
 
88
92
  const pendingOrderStatus = [1, 4, 7, 13]
89
93
 
90
94
  const logisticOrderStatus = [4, 6, 7]
91
95
 
96
+ const deliveryTypes = [1, 7]
97
+
92
98
  const showFloatButtonsPickUp: any = {
93
99
  8: !isHideRejectButtons,
94
100
  3: true,
@@ -102,13 +108,23 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
102
108
  14: true
103
109
  };
104
110
 
105
- const marginContainer: any = {
106
- 0: true,
107
- 3: true,
108
- 7: true,
109
- 8: true,
110
- 9: true,
111
- };
111
+ const handleChangeOrderStatus = async (status: number) => {
112
+ if (!isNetConnected && canSaveChangesOffline !== false) {
113
+ const result = applyOffAction({
114
+ event: 'evt_off_change_order_status',
115
+ data: { orderId: order?.id, body: { status } }
116
+ })
117
+ }
118
+
119
+ const dataToSave: any = !isNetConnected && canSaveChangesOffline !== false
120
+ ? { dataToSave: { status, unsync: true } }
121
+ : null
122
+ const orderUpdated = await props.handleChangeOrderStatus(status, {}, dataToSave)
123
+
124
+ if (!isNetConnected && canSaveChangesOffline !== false) {
125
+ await registerOffOrder(orderUpdated)
126
+ }
127
+ }
112
128
 
113
129
  const handleOpenMessagesForBusiness = () => {
114
130
  setOpenModalForBusiness(true);
@@ -219,7 +235,13 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
219
235
  ? t('EAT_IN', 'Eat in')
220
236
  : order.delivery_type === 4
221
237
  ? t('CURBSIDE', 'Curbside')
222
- : t('DRIVER_THRU', 'Driver thru')
238
+ : order.delivery_type === 5
239
+ ? t('DRIVER_THRU', 'Driver thru')
240
+ : order.delivery_type === 7
241
+ ? t('CATERING_DELIVERY', 'Catering delivery')
242
+ : order.delivery_type === 8
243
+ ? t('CATERING_PICKUP', 'Catering pickup')
244
+ : t('DELIVERY', 'Delivery')
223
245
  }\n`
224
246
  : '';
225
247
 
@@ -425,6 +447,16 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
425
447
  forceUpdate && handleViewActionOrder && handleViewActionOrder(forceUpdate === 9 ? 'forcePickUp' : 'forceDelivery')
426
448
  }, [forceUpdate])
427
449
 
450
+ useEffect(() => {
451
+ if (!!props.order?.error || props.order?.error?.length > 0) {
452
+ showToast(ToastType.Error,
453
+ props.order?.error?.[0] ||
454
+ props.order?.error ||
455
+ t('NETWORK_ERROR', 'Network Error'),
456
+ 5000)
457
+ }
458
+ }, [props.order?.error])
459
+
428
460
  const styles = StyleSheet.create({
429
461
  btnPickUp: {
430
462
  borderWidth: 0,
@@ -436,8 +468,9 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
436
468
  let locationMarker: any;
437
469
  let isToFollow = false;
438
470
  let isBusinessMarker = false;
439
-
440
- if (order?.status === 7 || order?.status === 8 || order?.status === 18) {
471
+ const customerStatusses = [3, 9, 19, 23, 26]
472
+ const businessStatusses = [7, 8, 18]
473
+ if (businessStatusses?.includes(order?.status)) {
441
474
  const markerBusiness = 'Business';
442
475
  isBusinessMarker = true;
443
476
  locationMarker = locations.find(
@@ -447,7 +480,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
447
480
  if (order?.status === 8 || order?.status === 18) {
448
481
  isToFollow = true;
449
482
  }
450
- } else if (order?.status === 3 || order?.status === 9 || order?.status === 19 || order?.status === 23) {
483
+ } else if (customerStatusses?.includes(order?.status)) {
451
484
  const markerCustomer = 'Customer';
452
485
  isToFollow = true;
453
486
  isBusinessMarker = false;
@@ -475,20 +508,36 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
475
508
  isOrderGroup={isOrderGroup}
476
509
  lastOrder={lastOrder}
477
510
  />
478
- {(order?.status === 8 || order?.status === 18) && order?.delivery_type === 1 && (
511
+ {(order?.status === 8 || order?.status === 18) && deliveryTypes?.includes(order?.delivery_type) && !props.order?.loading && (
479
512
  <Pickup>
480
513
  <OButton
481
514
  style={styles.btnPickUp}
482
515
  textStyle={{ color: theme.colors.primary }}
483
516
  text={t('ARRIVED_TO_BUSINESS', 'Arrived to bussiness')}
517
+ isDisabled={disabledActionsByInternet}
484
518
  onClick={() =>
485
- handleChangeOrderStatus && isGrantedPermissions ? handleChangeOrderStatus(3) : goToPermissionPage()
519
+ isGrantedPermissions ? handleChangeOrderStatus(3) : goToPermissionPage()
486
520
  }
487
521
  imgLeftStyle={{ tintColor: theme.colors.backArrow }}
488
522
  />
489
523
  </Pickup>
490
524
  )}
491
- {order?.status === 3 && order?.delivery_type === 1 && !isHideRejectButtons && (
525
+
526
+ {(order?.status === 9 || order?.status === 19) && deliveryTypes?.includes(order?.delivery_type) && !props.order?.loading && (
527
+ <View style={{ paddingVertical: 20, marginBottom: 20 }}>
528
+ <OButton
529
+ style={styles.btnPickUp}
530
+ textStyle={{ color: theme.colors.primary }}
531
+ text={t('ARRIVED_TO_CUSTOMER', 'Arrived to customer')}
532
+ isDisabled={disabledActionsByInternet}
533
+ onClick={() =>
534
+ isGrantedPermissions ? handleChangeOrderStatus(26) : goToPermissionPage()
535
+ }
536
+ imgLeftStyle={{ tintColor: theme.colors.backArrow }}
537
+ />
538
+ </View>
539
+ )}
540
+ {order?.status === 3 && deliveryTypes?.includes(order?.delivery_type) && !isHideRejectButtons && isEnabledOrderNotReady && !props.order?.loading && (
492
541
  <View style={{ paddingVertical: 20, marginBottom: 20 }}>
493
542
  <OButton
494
543
  style={styles.btnPickUp}
@@ -505,7 +554,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
505
554
  <View
506
555
  style={{
507
556
  height:
508
- order?.status === 8 && order?.delivery_type === 1 ? 50 : 35,
557
+ order?.status === 8 && deliveryTypes?.includes(order?.delivery_type) ? 50 : 35,
509
558
  }}
510
559
  />
511
560
 
@@ -532,21 +581,31 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
532
581
  ))}
533
582
  </View>
534
583
  )}
535
-
536
- {(!!props.order?.error || props.order?.error?.length > 0) && (
537
- <NotFoundSource
538
- btnTitle={t('GO_TO_MY_ORDERS', 'Go to my orders')}
539
- content={
540
- props.order.error[0] ||
541
- props.order.error ||
542
- t('NETWORK_ERROR', 'Network Error')
543
- }
544
- onClickButton={() => navigation.navigate('Orders')}
545
- />
546
- )}
547
584
  {!((!order || Object.keys(order).length === 0) &&
548
- (props.order?.error?.length < 1 || !props.order?.error)) && (
585
+ (props.order?.error?.length < 1 || !props.order?.error)) && order?.id && (
549
586
  <View style={{ flex: 1 }}>
587
+ {order?.unsync && (
588
+ <View
589
+ style={{
590
+ flexDirection: 'row',
591
+ justifyContent: 'flex-start',
592
+ alignItems: 'center'
593
+ }}
594
+ >
595
+ <MCIcon
596
+ name={'cloud-sync'}
597
+ color={'#444'}
598
+ size={16}
599
+ />
600
+ <OText
601
+ size={14}
602
+ color={theme.colors.textGray}
603
+ style={{ marginLeft: 5 }}
604
+ >
605
+ {t('PENDING_SYNC_CHANGES', 'Pending sync changes')}
606
+ </OText>
607
+ </View>
608
+ )}
550
609
  <OrderHeaderComponent
551
610
  order={order}
552
611
  handleOpenMapView={handleOpenMapView}
@@ -570,11 +629,11 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
570
629
  </OrderDetailsContainer>
571
630
  {showFloatButtonsPickUp[order?.status] && (
572
631
  <FloatingButton
573
- disabled={props.order?.loading}
632
+ disabled={props.order?.loading || disabledActionsByInternet}
574
633
  btnText={t('PICKUP_FAILED', 'Pickup failed')}
575
634
  isSecondaryBtn={false}
576
635
  secondButtonClick={() =>
577
- handleChangeOrderStatus && isGrantedPermissions ? handleChangeOrderStatus(9) : goToPermissionPage()
636
+ isGrantedPermissions ? handleChangeOrderStatus(9) : goToPermissionPage()
578
637
  }
579
638
  firstButtonClick={() =>
580
639
  handleViewActionOrder && handleViewActionOrder('pickupFailed')
@@ -583,18 +642,18 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
583
642
  secondButton={true}
584
643
  firstColorCustom={theme.colors.red}
585
644
  secondColorCustom={theme.colors.green}
586
- widthButton={isHideRejectButtons ? '100%': '45%'}
587
- isHideRejectButtons={isHideRejectButtons}
645
+ widthButton={isHideRejectButtons || !isEnabledFailedPickupDriver ? '100%' : '45%'}
646
+ isHideRejectButtons={isHideRejectButtons || !isEnabledFailedPickupDriver}
588
647
  />
589
648
  )}
590
649
  {(validStatusComplete.includes(order?.status)) && (
591
650
  <>
592
651
  <FloatingButton
593
- disabled={props.order?.loading}
652
+ disabled={props.order?.loading || disabledActionsByInternet}
594
653
  btnText={t('DELIVERY_FAILED', 'Delivery Failed')}
595
654
  isSecondaryBtn={false}
596
655
  secondButtonClick={() =>
597
- handleChangeOrderStatus && isGrantedPermissions ? handleChangeOrderStatus(11) : goToPermissionPage()
656
+ isGrantedPermissions ? handleChangeOrderStatus(11) : goToPermissionPage()
598
657
  }
599
658
  firstButtonClick={() =>
600
659
  handleViewActionOrder && handleViewActionOrder('deliveryFailed')
@@ -603,23 +662,31 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
603
662
  secondButton={true}
604
663
  firstColorCustom={theme.colors.red}
605
664
  secondColorCustom={theme.colors.green}
606
- widthButton={isHideRejectButtons ? '100%': '45%'}
665
+ widthButton={isHideRejectButtons ? '100%' : '45%'}
607
666
  isHideRejectButtons={isHideRejectButtons}
608
667
  />
609
668
  </>
610
669
  )}
611
670
  {showFloatButtonsAcceptOrReject[order?.status] && (
612
671
  <FloatingButton
672
+ disabled={props.order?.loading || disabledActionsByInternet}
673
+ widthButton={isHideRejectButtons ? '100%' : '45%'}
674
+ isHideRejectButtons={isHideRejectButtons}
613
675
  btnText={t('REJECT', 'Reject')}
676
+ firstColorCustom={theme.colors.red}
677
+ firstButtonClick={() => order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status))
678
+ ? handleRejectLogisticOrder()
679
+ : handleViewActionOrder('reject')
680
+ }
614
681
  isSecondaryBtn={false}
615
- secondButtonClick={() => (order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status))) ? handleAcceptLogisticOrder(order) : handleViewActionOrder('accept')}
616
- firstButtonClick={() => order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status)) ? handleRejectLogisticOrder() : handleViewActionOrder('reject')}
617
- secondBtnText={t('ACCEPT', 'Accept')}
618
682
  secondButton={true}
619
- firstColorCustom={theme.colors.red}
683
+ secondBtnText={t('ACCEPT', 'Accept')}
684
+ secondButtonClick={() => hideTimer
685
+ ? handleChangeOrderStatus(8)
686
+ : (order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status)))
687
+ ? handleAcceptLogisticOrder(order)
688
+ : handleViewActionOrder('accept')}
620
689
  secondColorCustom={theme.colors.green}
621
- widthButton={isHideRejectButtons ? '100%': '45%'}
622
- isHideRejectButtons={isHideRejectButtons}
623
690
  />
624
691
  )}
625
692
  </>
@@ -674,7 +741,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
674
741
  entireModal
675
742
  customClose>
676
743
  <AcceptOrRejectOrder
677
- handleUpdateOrder={handleChangeOrderStatus}
744
+ handleUpdateOrder={props.handleChangeOrderStatus}
678
745
  closeModal={setOpenModalForAccept}
679
746
  customerCellphone={order?.customer?.cellphone}
680
747
  loading={props.order?.loading}
@@ -684,11 +751,24 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
684
751
  actions={actions}
685
752
  orderTitle={orderTitle}
686
753
  appTitle={appTitle}
754
+ isLoadingOrder={props.order?.loading}
687
755
  />
688
756
  </OModal>
689
757
  )}
690
758
  </View>
691
759
  )}
760
+
761
+ {(!!props.order?.error || props.order?.error?.length > 0) && (
762
+ <NotFoundSource
763
+ btnTitle={t('GO_TO_MY_ORDERS', 'Go to my orders')}
764
+ content={
765
+ props.order.error[0] ||
766
+ props.order.error ||
767
+ t('NETWORK_ERROR', 'Network Error')
768
+ }
769
+ onClickButton={() => navigation.navigate('Orders')}
770
+ />
771
+ )}
692
772
  {alertState?.open && (
693
773
  <Alert
694
774
  open={alertState.open}