ordering-ui-react-native 0.21.12 → 0.21.13-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 (241) hide show
  1. package/package.json +6 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/PaymentOptionsWebView/index.tsx +1 -0
  6. package/src/components/StripeMethodForm/index.tsx +4 -4
  7. package/src/components/VerifyPhone/styles.tsx +1 -2
  8. package/src/types/index.tsx +2 -1
  9. package/src/utils/index.tsx +2 -2
  10. package/themes/business/index.tsx +4 -0
  11. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -2
  12. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  13. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  14. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  15. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  16. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  17. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  18. package/themes/business/src/components/Chat/index.tsx +41 -13
  19. package/themes/business/src/components/DriverMap/index.tsx +4 -3
  20. package/themes/business/src/components/DriverSchedule/index.tsx +5 -5
  21. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  22. package/themes/business/src/components/Home/index.tsx +5 -1
  23. package/themes/business/src/components/MapView/index.tsx +11 -7
  24. package/themes/business/src/components/MessagesOption/index.tsx +22 -94
  25. package/themes/business/src/components/NewOrderNotification/index.tsx +163 -113
  26. package/themes/business/src/components/OrderDetails/Business.tsx +50 -2
  27. package/themes/business/src/components/OrderDetails/Delivery.tsx +23 -11
  28. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +60 -53
  29. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +54 -23
  30. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +220 -0
  31. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +6 -1
  32. package/themes/business/src/components/OrderSummary/index.tsx +240 -76
  33. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  34. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  35. package/themes/business/src/components/OrdersOption/index.tsx +125 -48
  36. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  37. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  38. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +26 -34
  39. package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
  40. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  41. package/themes/business/src/components/PreviousOrders/index.tsx +194 -220
  42. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  43. package/themes/business/src/components/PrinterSettings/index.tsx +279 -0
  44. package/themes/business/src/components/PrinterSettings/styles.tsx +17 -0
  45. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  46. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  47. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  48. package/themes/business/src/components/Sessions/index.tsx +187 -0
  49. package/themes/business/src/components/Sessions/styles.tsx +20 -0
  50. package/themes/business/src/components/StoresList/index.tsx +5 -3
  51. package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
  52. package/themes/business/src/components/UserProfileForm/index.tsx +98 -43
  53. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  54. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  55. package/themes/business/src/components/shared/OInput.tsx +2 -0
  56. package/themes/business/src/hooks/useLocation.tsx +5 -4
  57. package/themes/business/src/types/index.tsx +21 -1
  58. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  59. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  60. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  61. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  62. package/themes/kiosk/src/components/LoginForm/index.tsx +124 -96
  63. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  64. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  65. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  66. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  67. package/themes/original/index.tsx +9 -4
  68. package/themes/original/src/components/AddressDetails/index.tsx +20 -10
  69. package/themes/original/src/components/AddressForm/index.tsx +10 -6
  70. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  71. package/themes/original/src/components/AddressList/index.tsx +4 -7
  72. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  73. package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
  74. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  75. package/themes/original/src/components/BusinessBasicInformation/index.tsx +4 -4
  76. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +1 -1
  77. package/themes/original/src/components/BusinessController/index.tsx +20 -12
  78. package/themes/original/src/components/BusinessController/styles.tsx +8 -7
  79. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  80. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -7
  81. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  82. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  83. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  84. package/themes/original/src/components/BusinessListingSearch/index.tsx +56 -361
  85. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -1
  86. package/themes/original/src/components/BusinessPreorder/index.tsx +2 -3
  87. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  88. package/themes/original/src/components/BusinessProductsList/index.tsx +3 -3
  89. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  90. package/themes/original/src/components/BusinessProductsListing/index.tsx +51 -20
  91. package/themes/original/src/components/BusinessProductsListing/styles.tsx +3 -4
  92. package/themes/original/src/components/BusinessReviews/index.tsx +1 -1
  93. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  94. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  95. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  96. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  97. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  98. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +24 -404
  99. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  100. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  101. package/themes/original/src/components/Cart/index.tsx +32 -9
  102. package/themes/original/src/components/CartContent/index.tsx +96 -58
  103. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  104. package/themes/original/src/components/Checkout/index.tsx +190 -66
  105. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  106. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  107. package/themes/original/src/components/DatePicker/index.tsx +33 -0
  108. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  109. package/themes/original/src/components/Favorite/index.tsx +4 -9
  110. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  111. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  112. package/themes/original/src/components/GPSButton/index.tsx +1 -1
  113. package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
  114. package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
  115. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  116. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +36 -3
  117. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
  118. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +67 -4
  119. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  120. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +2 -2
  121. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  122. package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
  123. package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
  124. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +83 -0
  125. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
  126. package/themes/original/src/components/GoogleMap/index.tsx +6 -5
  127. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
  128. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  129. package/themes/original/src/components/Home/index.tsx +1 -1
  130. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  131. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  132. package/themes/original/src/components/LoginForm/Otp/index.tsx +48 -39
  133. package/themes/original/src/components/LoginForm/index.tsx +5 -0
  134. package/themes/original/src/components/Messages/index.tsx +9 -4
  135. package/themes/original/src/components/Messages/styles.tsx +1 -1
  136. package/themes/original/src/components/MomentOption/index.tsx +3 -3
  137. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  138. package/themes/original/src/components/MultiCheckout/index.tsx +208 -21
  139. package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
  140. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -15
  141. package/themes/original/src/components/MyOrders/index.tsx +24 -29
  142. package/themes/original/src/components/NavBar/index.tsx +3 -1
  143. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  144. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  145. package/themes/original/src/components/Notifications/index.tsx +4 -8
  146. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  147. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +7 -3
  148. package/themes/original/src/components/OrderDetails/index.tsx +716 -667
  149. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  150. package/themes/original/src/components/OrderProgress/index.tsx +28 -6
  151. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  152. package/themes/original/src/components/OrderSummary/index.tsx +3 -1
  153. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  154. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  155. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  156. package/themes/original/src/components/OrdersOption/index.tsx +3 -5
  157. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  158. package/themes/original/src/components/PageBanner/index.tsx +3 -0
  159. package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
  160. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  161. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  162. package/themes/original/src/components/PaymentOptions/index.tsx +72 -6
  163. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -1
  164. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  165. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  166. package/themes/original/src/components/ProductForm/index.tsx +74 -165
  167. package/themes/original/src/components/ProductItemAccordion/index.tsx +19 -10
  168. package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -1
  169. package/themes/original/src/components/ProductOptionSubOption/index.tsx +123 -82
  170. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +6 -1
  171. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  172. package/themes/original/src/components/Promotions/index.tsx +4 -4
  173. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  174. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  175. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  176. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  177. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  178. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  179. package/themes/original/src/components/SingleOrderCard/index.tsx +5 -4
  180. package/themes/original/src/components/SingleProductCard/index.tsx +2 -2
  181. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  182. package/themes/original/src/components/StripeCardsList/index.tsx +17 -36
  183. package/themes/original/src/components/StripeElementsForm/index.tsx +9 -4
  184. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  185. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  186. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  187. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  188. package/themes/original/src/components/UserFormDetails/index.tsx +54 -8
  189. package/themes/original/src/components/UserFormDetails/styles.tsx +7 -0
  190. package/themes/original/src/components/UserProfile/index.tsx +3 -2
  191. package/themes/original/src/components/UserProfileForm/index.tsx +30 -36
  192. package/themes/original/src/components/UserVerification/index.tsx +3 -1
  193. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  194. package/themes/original/src/components/Wallets/index.tsx +8 -9
  195. package/themes/original/src/components/Wallets/styles.tsx +1 -1
  196. package/themes/original/src/components/WebsocketStatus/index.tsx +172 -0
  197. package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
  198. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  199. package/themes/original/src/components/shared/OButton.tsx +5 -5
  200. package/themes/original/src/components/shared/OInput.tsx +1 -4
  201. package/themes/original/src/components/shared/OModal.tsx +12 -14
  202. package/themes/original/src/layouts/Container.tsx +5 -3
  203. package/themes/original/src/types/index.tsx +6 -1
  204. package/themes/original/src/utils/index.tsx +124 -0
  205. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  206. package/src/navigators/BottomNavigator.tsx +0 -117
  207. package/src/navigators/CheckoutNavigator.tsx +0 -66
  208. package/src/navigators/HomeNavigator.tsx +0 -202
  209. package/src/navigators/NavigationRef.tsx +0 -7
  210. package/src/navigators/RootNavigator.tsx +0 -269
  211. package/src/pages/Account.tsx +0 -34
  212. package/src/pages/AddressForm.tsx +0 -62
  213. package/src/pages/AddressList.tsx +0 -24
  214. package/src/pages/BusinessProductsList.tsx +0 -81
  215. package/src/pages/BusinessesListing.tsx +0 -43
  216. package/src/pages/CartList.tsx +0 -49
  217. package/src/pages/Checkout.tsx +0 -101
  218. package/src/pages/ForgotPassword.tsx +0 -24
  219. package/src/pages/Help.tsx +0 -23
  220. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  221. package/src/pages/HelpGuide.tsx +0 -23
  222. package/src/pages/HelpOrder.tsx +0 -23
  223. package/src/pages/Home.tsx +0 -36
  224. package/src/pages/IntroductoryTutorial.tsx +0 -170
  225. package/src/pages/Login.tsx +0 -47
  226. package/src/pages/MomentOption.tsx +0 -30
  227. package/src/pages/MultiCheckout.tsx +0 -31
  228. package/src/pages/MultiOrdersDetails.tsx +0 -27
  229. package/src/pages/MyOrders.tsx +0 -40
  230. package/src/pages/NetworkError.tsx +0 -24
  231. package/src/pages/NotFound.tsx +0 -22
  232. package/src/pages/OrderDetails.tsx +0 -25
  233. package/src/pages/ProductDetails.tsx +0 -55
  234. package/src/pages/Profile.tsx +0 -36
  235. package/src/pages/ReviewDriver.tsx +0 -30
  236. package/src/pages/ReviewOrder.tsx +0 -32
  237. package/src/pages/ReviewProducts.tsx +0 -30
  238. package/src/pages/Sessions.tsx +0 -22
  239. package/src/pages/Signup.tsx +0 -53
  240. package/src/pages/SpinnerLoader.tsx +0 -10
  241. package/src/pages/Splash.tsx +0 -21
@@ -61,9 +61,14 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
61
61
  const [, { showToast }] = useToast();
62
62
  const [{ parsePrice, parseNumber }] = useUtils();
63
63
  const [{ configs }] = useConfig();
64
+
64
65
  const { order } = props.order
65
66
 
67
+ const hideTimer = configs?.hidden_driver_eta_time?.value === '1'
66
68
  const isAllowedDriverRejectOrder = configs?.allow_driver_reject_order?.value === '1'
69
+ const isHideRejectButtons = configs?.reject_orders_enabled && configs?.reject_orders_enabled?.value !== '1'
70
+ const isEnabledOrderNotReady = configs?.order_not_ready_enabled?.value === '1'
71
+ const isEnabledFailedPickupDriver = configs?.failed_pickup_by_driver_enabled?.value === '1'
67
72
  const theme = useTheme();
68
73
  const [, t] = useLanguage();
69
74
  const [session] = useSession();
@@ -88,9 +93,9 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
88
93
  const logisticOrderStatus = [4, 6, 7]
89
94
 
90
95
  const showFloatButtonsPickUp: any = {
91
- 8: true,
96
+ 8: !isHideRejectButtons,
92
97
  3: true,
93
- 18: true,
98
+ 18: !isHideRejectButtons,
94
99
  };
95
100
 
96
101
  const showFloatButtonsAcceptOrReject: any = {
@@ -113,6 +118,10 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
113
118
  readMessages && readMessages();
114
119
  };
115
120
 
121
+ const goToPermissionPage = () => {
122
+ navigation.navigate('RequestPermissions')
123
+ }
124
+
116
125
  const handleOpenMapView = async () => {
117
126
  if (!isGrantedPermissions) {
118
127
  navigation.navigate('RequestPermissions')
@@ -387,7 +396,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
387
396
  }, [props.order?.loading]);
388
397
 
389
398
  useEffect(() => {
390
- if (!order?.driver_id && session?.user?.level === 4) {
399
+ if (order?.driver_id === null && session?.user?.level === 4) {
391
400
  setAlertState({
392
401
  open: true,
393
402
  content: [
@@ -476,13 +485,13 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
476
485
  textStyle={{ color: theme.colors.primary }}
477
486
  text={t('ARRIVED_TO_BUSINESS', 'Arrived to bussiness')}
478
487
  onClick={() =>
479
- handleChangeOrderStatus && handleChangeOrderStatus(3)
488
+ handleChangeOrderStatus && isGrantedPermissions ? handleChangeOrderStatus(3) : goToPermissionPage()
480
489
  }
481
490
  imgLeftStyle={{ tintColor: theme.colors.backArrow }}
482
491
  />
483
492
  </Pickup>
484
493
  )}
485
- {order?.status === 3 && order?.delivery_type === 1 && (
494
+ {order?.status === 3 && order?.delivery_type === 1 && !isHideRejectButtons && isEnabledOrderNotReady && (
486
495
  <View style={{ paddingVertical: 20, marginBottom: 20 }}>
487
496
  <OButton
488
497
  style={styles.btnPickUp}
@@ -568,7 +577,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
568
577
  btnText={t('PICKUP_FAILED', 'Pickup failed')}
569
578
  isSecondaryBtn={false}
570
579
  secondButtonClick={() =>
571
- handleChangeOrderStatus && handleChangeOrderStatus(9)
580
+ handleChangeOrderStatus && isGrantedPermissions ? handleChangeOrderStatus(9) : goToPermissionPage()
572
581
  }
573
582
  firstButtonClick={() =>
574
583
  handleViewActionOrder && handleViewActionOrder('pickupFailed')
@@ -577,7 +586,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
577
586
  secondButton={true}
578
587
  firstColorCustom={theme.colors.red}
579
588
  secondColorCustom={theme.colors.green}
580
- widthButton={'45%'}
589
+ widthButton={isHideRejectButtons || !isEnabledFailedPickupDriver ? '100%' : '45%'}
590
+ isHideRejectButtons={isHideRejectButtons || !isEnabledFailedPickupDriver}
581
591
  />
582
592
  )}
583
593
  {(validStatusComplete.includes(order?.status)) && (
@@ -587,7 +597,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
587
597
  btnText={t('DELIVERY_FAILED', 'Delivery Failed')}
588
598
  isSecondaryBtn={false}
589
599
  secondButtonClick={() =>
590
- handleChangeOrderStatus && handleChangeOrderStatus(11)
600
+ handleChangeOrderStatus && isGrantedPermissions ? handleChangeOrderStatus(11) : goToPermissionPage()
591
601
  }
592
602
  firstButtonClick={() =>
593
603
  handleViewActionOrder && handleViewActionOrder('deliveryFailed')
@@ -596,7 +606,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
596
606
  secondButton={true}
597
607
  firstColorCustom={theme.colors.red}
598
608
  secondColorCustom={theme.colors.green}
599
- widthButton={'45%'}
609
+ widthButton={isHideRejectButtons ? '100%' : '45%'}
610
+ isHideRejectButtons={isHideRejectButtons}
600
611
  />
601
612
  </>
602
613
  )}
@@ -604,13 +615,14 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
604
615
  <FloatingButton
605
616
  btnText={t('REJECT', 'Reject')}
606
617
  isSecondaryBtn={false}
607
- secondButtonClick={() => (order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status))) ? handleAcceptLogisticOrder(order) : handleViewActionOrder('accept')}
618
+ secondButtonClick={() => hideTimer ? handleChangeOrderStatus && handleChangeOrderStatus(8) : (order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status))) ? handleAcceptLogisticOrder(order) : handleViewActionOrder('accept')}
608
619
  firstButtonClick={() => order?.isLogistic && (order?.order_group || logisticOrderStatus.includes(order?.status)) ? handleRejectLogisticOrder() : handleViewActionOrder('reject')}
609
620
  secondBtnText={t('ACCEPT', 'Accept')}
610
621
  secondButton={true}
611
622
  firstColorCustom={theme.colors.red}
612
623
  secondColorCustom={theme.colors.green}
613
- widthButton={'45%'}
624
+ widthButton={isHideRejectButtons ? '100%' : '45%'}
625
+ isHideRejectButtons={isHideRejectButtons}
614
626
  />
615
627
  )}
616
628
  </>
@@ -1,6 +1,7 @@
1
1
  import React, { useState, useCallback } from 'react'
2
2
 
3
3
  import { Platform, StyleSheet, View, TouchableOpacity, ScrollView } from 'react-native';
4
+ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
4
5
 
5
6
  import { OButton, OText, OLink, OModal } from '../shared'
6
7
  import {
@@ -53,6 +54,7 @@ export const OrderContentComponent = (props: OrderContent) => {
53
54
  const WIDTH_SCREEN = orientationState?.dimensions?.width
54
55
 
55
56
  const [openReviewModal, setOpenReviewModal] = useState(false)
57
+ const [showCustomFields, setShowCustomFields] = useState<boolean>(false);
56
58
 
57
59
  const [isReadMore, setIsReadMore] = useState({
58
60
  customerAddress: false,
@@ -111,6 +113,7 @@ export const OrderContentComponent = (props: OrderContent) => {
111
113
  }
112
114
 
113
115
  const containsOnlyNumbers = (str: string) => {
116
+ str = str?.replace('+', '');
114
117
  return /^\d+$/.test(str);
115
118
  }
116
119
 
@@ -133,27 +136,36 @@ export const OrderContentComponent = (props: OrderContent) => {
133
136
 
134
137
  {order?.metafields?.length > 0 && (
135
138
  <OrderBusiness>
136
- <OText style={{ marginBottom: 5 }} size={16} weight="600">
137
- {t('CUSTOM_FIELDS', 'Custom fields')}
138
- </OText>
139
-
140
- {order.metafields.map((field: any) => (
141
- <View
142
- key={field.id}
143
- style={{
144
- width: '100%',
145
- flexDirection: 'row',
146
- marginBottom: 5
147
- }}
148
- >
149
- <OText style={{ width: '50%' }}>
150
- {field.key}
151
- </OText>
152
- <OText style={{ width: '45%', textAlign: 'right' }}>
153
- {field.value}
154
- </OText>
155
- </View>
156
- ))}
139
+ <TouchableOpacity onPress={() => setShowCustomFields((prev: boolean) => !prev)} style={{ flexDirection: 'row', width: '100%', justifyContent: 'space-between', alignItems: 'flex-start' }}>
140
+ <OText style={{ marginBottom: 5 }} size={16} weight="600">
141
+ {t('CUSTOM_FIELDS', 'Custom fields')}
142
+ </OText>
143
+ <AntDesignIcon
144
+ name={showCustomFields ? 'up' : 'down'}
145
+ size={14}
146
+ />
147
+ </TouchableOpacity>
148
+ {showCustomFields && (
149
+ <>
150
+ {order.metafields.map((field: any) => (
151
+ <View
152
+ key={field.id}
153
+ style={{
154
+ width: '100%',
155
+ flexDirection: 'row',
156
+ marginBottom: 5
157
+ }}
158
+ >
159
+ <OText style={{ width: '50%' }}>
160
+ {field.key}
161
+ </OText>
162
+ <OText style={{ width: '45%', textAlign: 'right' }}>
163
+ {field.value}
164
+ </OText>
165
+ </View>
166
+ ))}
167
+ </>
168
+ )}
157
169
  </OrderBusiness>
158
170
  )}
159
171
 
@@ -183,7 +195,7 @@ export const OrderContentComponent = (props: OrderContent) => {
183
195
  <OLink
184
196
  PressStyle={styles.linkWithIcons}
185
197
  url={`tel:${containsOnlyNumbers(order?.business?.cellphone) ? order?.business?.cellphone : 'invalid'}`}
186
- shorcut={`${order?.business?.cellphone}`}
198
+ shorcut={`${(!!order?.business?.country_phone_code && !order?.business?.cellphone?.includes('+')) ? '+' + order?.business?.country_phone_code : ''}${order?.business?.cellphone}`}
187
199
  TextStyle={styles.textLink}
188
200
  />
189
201
  </View>
@@ -193,8 +205,8 @@ export const OrderContentComponent = (props: OrderContent) => {
193
205
  <View style={styles.linkWithIcons}>
194
206
  <OLink
195
207
  PressStyle={styles.linkWithIcons}
196
- url={`tel:${containsOnlyNumbers(order?.business?.cellphone) ? order?.business?.phone : 'invalid'}`}
197
- shorcut={order?.business?.phone}
208
+ url={`tel:${containsOnlyNumbers(order?.business?.phone) ? order?.business?.phone : 'invalid'}`}
209
+ shorcut={`${(!!order?.business?.country_phone_code && !order?.business?.phone?.includes('+')) ? '+' + order?.business?.country_phone_code : ''}${order?.business?.phone}`}
198
210
  TextStyle={styles.textLink}
199
211
  />
200
212
  </View>
@@ -207,8 +219,8 @@ export const OrderContentComponent = (props: OrderContent) => {
207
219
  <OLink
208
220
  PressStyle={styles.linkWithIcons}
209
221
  url={Platform.select({
210
- ios: `maps:0,0?q=${order?.business?.address}`,
211
- android: `geo:0,0?q=${order?.business?.address}`,
222
+ ios: `maps:0,0?q=${order?.business?.address}@${order?.business?.location?.lat},${order?.business?.location?.lng}`,
223
+ android: `geo:0,0?q=${order?.business?.address}@${order?.business?.location?.lat},${order?.business?.location?.lng}`,
212
224
  })}
213
225
  numberOfLines={2}
214
226
  shorcut={order?.business?.address}
@@ -227,8 +239,8 @@ export const OrderContentComponent = (props: OrderContent) => {
227
239
  <OLink
228
240
  PressStyle={styles.linkWithIcons}
229
241
  url={Platform.select({
230
- ios: `maps:0,0?q=${order?.business?.address_notes}`,
231
- android: `geo:0,0?q=${order?.business?.address_notes}`,
242
+ ios: `maps:0,0?q=${order?.business?.address_notes}@${order?.business?.location?.lat},${order?.business?.location?.lng}`,
243
+ android: `geo:0,0?q=${order?.business?.address_notes}@${order?.business?.location?.lat},${order?.business?.location?.lng}`,
232
244
  })}
233
245
  shorcut={order?.business?.address_notes}
234
246
  TextStyle={styles.textLink}
@@ -325,7 +337,7 @@ export const OrderContentComponent = (props: OrderContent) => {
325
337
  <OLink
326
338
  PressStyle={styles.linkWithIcons}
327
339
  url={`tel:${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''} ${containsOnlyNumbers(order?.customer?.cellphone) ? order?.customer?.cellphone : 'invalid'}`}
328
- shorcut={`${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''} ${order?.customer?.cellphone}`}
340
+ shorcut={`${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''}${order?.customer?.cellphone}`}
329
341
  TextStyle={styles.textLink}
330
342
  />
331
343
  </View>
@@ -335,8 +347,8 @@ export const OrderContentComponent = (props: OrderContent) => {
335
347
  <View style={styles.linkWithIcons}>
336
348
  <OLink
337
349
  PressStyle={styles.linkWithIcons}
338
- url={`tel:${containsOnlyNumbers(order?.customer?.phone) ? order?.customer?.phone : 'invalid'}`}
339
- shorcut={order?.customer?.phone}
350
+ url={`tel:${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''} ${containsOnlyNumbers(order?.customer?.phone) ? order?.customer?.phone : 'invalid'}`}
351
+ shorcut={`${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''}${order?.customer?.phone}`}
340
352
  TextStyle={styles.textLink}
341
353
  />
342
354
  </View>
@@ -348,8 +360,8 @@ export const OrderContentComponent = (props: OrderContent) => {
348
360
  <OLink
349
361
  PressStyle={{ ...styles.linkWithIcons, marginBottom: 0 }}
350
362
  url={Platform.select({
351
- ios: `maps:0,0?q=${order?.customer?.address}`,
352
- android: `geo:0,0?q=${order?.customer?.address}`,
363
+ ios: `maps:0,0?q=${order?.customer?.address}@${order?.customer?.location?.lat},${order?.customer?.location?.lng}`,
364
+ android: `geo:0,0?q=${order?.customer?.address}@${order?.customer?.location?.lat},${order?.customer?.location?.lng}`,
353
365
  })}
354
366
  onTextLayout={e => onTextLayout(e, 'customerAddress')}
355
367
  numberOfLines={isReadMore.customerAddress ? 20 : 2}
@@ -396,23 +408,13 @@ export const OrderContentComponent = (props: OrderContent) => {
396
408
  {t('ON_BEHALF_OF', 'On behalf of')}{': '} {order?.on_behalf_of}
397
409
  </OText>
398
410
  )}
399
- {((order?.delivery_option !== undefined && order?.delivery_type === 1) || !!order?.comment) && (
411
+ {(order?.delivery_option !== undefined && order?.delivery_type === 1) && (
400
412
  <View style={{ marginTop: 10 }}>
401
413
  {order?.delivery_option !== undefined && order?.delivery_type === 1 && (
402
414
  <OText>
403
415
  {t(order?.delivery_option?.name?.toUpperCase()?.replace(/ /g, '_'), order?.delivery_option?.name)}
404
416
  </OText>
405
417
  )}
406
- {!!order?.comment && (
407
- <>
408
- <OText weight='500' style={{ marginBottom: 5 }}>
409
- {t('ORDER_COMMENT', 'Order Comment')}
410
- </OText>
411
- <OText style={{ fontStyle: 'italic', opacity: 0.6, marginBottom: 20 }}>
412
- {order?.comment}
413
- </OText>
414
- </>
415
- )}
416
418
  </View>
417
419
  )}
418
420
  {!order?.user_review && pastOrderStatuses.includes(order?.status) && (
@@ -427,10 +429,16 @@ export const OrderContentComponent = (props: OrderContent) => {
427
429
  </OrderCustomer>
428
430
 
429
431
  <OrderProducts>
430
- <OText style={{ marginBottom: 5 }} size={16} weight="600">
432
+ <OText style={{ marginBottom: 10 }} size={16} weight="600">
431
433
  {t('ORDER_DETAILS', 'Order Details')}
432
434
  </OText>
433
435
 
436
+ {!!order?.comment && (
437
+ <OText>
438
+ {`${t('ORDER_COMMENT', 'Order Comment')}: ${order?.comment}`}
439
+ </OText>
440
+ )}
441
+
434
442
  {order?.products?.length > 0 &&
435
443
  order?.products.map((product: any, i: number) => (
436
444
  <ProductItemAccordion
@@ -549,7 +557,7 @@ export const OrderContentComponent = (props: OrderContent) => {
549
557
  ))
550
558
  }
551
559
  {
552
- typeof order?.summary?.delivery_price === 'number' && (
560
+ typeof order?.summary?.delivery_price === 'number' && order.delivery_type !== 2 && (
553
561
  <Table>
554
562
  <OText mBottom={4}>
555
563
  {t('DELIVERY_FEE', 'Delivery Fee')}
@@ -576,7 +584,7 @@ export const OrderContentComponent = (props: OrderContent) => {
576
584
  </Table>
577
585
  ))
578
586
  }
579
- {(order?.summary?.driver_tip > 0 || order?.driver_tip > 0) && (
587
+ {(order?.summary?.driver_tip > 0 || order?.driver_tip > 0) && order.delivery_type !== 2 && (
580
588
  <Table>
581
589
  <OText mBottom={4}>
582
590
  {t('DRIVER_TIP', 'Driver tip')}
@@ -634,13 +642,12 @@ export const OrderContentComponent = (props: OrderContent) => {
634
642
  <OText>
635
643
  {event?.wallet_event
636
644
  ? walletName[event?.wallet_event?.wallet?.type]?.name
637
- : t(event?.paymethod?.name?.toUpperCase()?.replace(/ /g, '_'), event?.paymethod?.name)}
645
+ : event?.paymethod?.gateway
646
+ ? t(event?.paymethod?.gateway?.toUpperCase(), event?.paymethod?.name)
647
+ : order?.paymethod?.id === event?.paymethod_id
648
+ ? t(order?.paymethod?.gateway?.toUpperCase(), order?.paymethod?.name)
649
+ : ''}
638
650
  </OText>
639
- {/* {event?.data?.charge_id && (
640
- <OText>
641
- {`${t('CODE', 'Code')}: ${event?.data?.charge_id}`}
642
- </OText>
643
- )} */}
644
651
  </View>
645
652
  <OText>
646
653
  {(event?.paymethod?.gateway === 'cash' && order?.cash)
@@ -49,7 +49,8 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
49
49
  } = props
50
50
  const theme = useTheme();
51
51
  const [, t] = useLanguage();
52
- const [{ parseDate }] = useUtils();
52
+ const [{ parseDate, parsePrice }] = useUtils();
53
+ const paymethodsLength = order?.payment_events?.filter((item: any) => item.event === 'payment')?.length
53
54
 
54
55
  const styles = StyleSheet.create({
55
56
  icons: {
@@ -120,6 +121,30 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
120
121
  ? t('CURBSIDE', 'Curbside')
121
122
  : t('DRIVER_THRU', 'Driver thru')
122
123
 
124
+ const handlePaymethodsListString = () => {
125
+ const paymethodsList = order?.payment_events?.filter((item: any) => item.event === 'payment').map((paymethod: any) => {
126
+ return paymethod?.wallet_event
127
+ ? walletName[paymethod?.wallet_event?.wallet?.type]?.name
128
+ : paymethod?.paymethod?.gateway && paymethod?.paymethod?.gateway === 'cash' && order?.cash > 0
129
+ ? `${t(paymethod?.paymethod?.gateway?.toUpperCase(), paymethod?.paymethod?.name)} (${t('CASH_CHANGE_OF', 'Change of :amount:').replace(':amount:', parsePrice(order?.cash))})`
130
+ : paymethod?.paymethod?.gateway
131
+ ? t(paymethod?.paymethod?.gateway?.toUpperCase(), paymethod?.paymethod?.name)
132
+ : t(order?.paymethod?.gateway?.toUpperCase(), order?.paymethod?.name)
133
+ })
134
+ return paymethodsList.join(', ')
135
+ }
136
+
137
+ const deliveryDate = () => {
138
+ const dateString = order?.delivery_datetime_utc ?? order?.delivery_datetime
139
+ const currentDate = new Date();
140
+ const receivedDate: any = new Date(order?.delivery_datetime);
141
+
142
+ const formattedDate = receivedDate <= currentDate
143
+ ? `${t('ASAP_ABBREVIATION', 'ASAP')}(${parseDate(dateString, { utc: !!order?.delivery_datetime_utc })})`
144
+ : parseDate(dateString, { utc: !!order?.delivery_datetime_utc })
145
+ return formattedDate
146
+ }
147
+
123
148
  return (
124
149
  <>
125
150
  {!props.isCustomView && (
@@ -182,16 +207,12 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
182
207
  <OrderHeader>
183
208
  {!props.isCustomView ? (
184
209
  <OText size={13} style={{ marginBottom: 5 }}>
185
- {order?.delivery_datetime_utc
186
- ? parseDate(order?.delivery_datetime_utc)
187
- : parseDate(order?.delivery_datetime, { utc: false })}
210
+ {deliveryDate()}
188
211
  </OText>
189
212
  ) : (
190
213
  <Header style={{ alignItems: 'center' }}>
191
214
  <OText size={13} style={{ marginBottom: 5 }}>
192
- {order?.delivery_datetime_utc
193
- ? parseDate(order?.delivery_datetime_utc)
194
- : parseDate(order?.delivery_datetime, { utc: false })}
215
+ {deliveryDate()}
195
216
  </OText>
196
217
 
197
218
  {(!order?.isLogistic || (!logisticOrderStatus?.includes(order?.status) && !order?.order_group)) && (
@@ -263,6 +284,12 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
263
284
  )}
264
285
  </>
265
286
  </OText>
287
+ {order?.external_id && (
288
+ <OText size={13}>
289
+ <OText size={13} weight='bold'>{`${t('EXTERNAL_ID', 'External ID :')} `}</OText>
290
+ {order?.external_id}
291
+ </OText>
292
+ )}
266
293
  {!order?.isLogistic && !!order?.delivery_type && (!order?.order_group_id || !logisticOrderStatus?.includes(order?.status)) && (
267
294
  <>
268
295
  <OText size={13}>
@@ -275,23 +302,27 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
275
302
  {t(order?.delivery_option?.name?.toUpperCase()?.replace(/ /g, '_'), order?.delivery_option?.name)}
276
303
  </OText>
277
304
  )}
278
- {order?.payment_events?.length > 0 && (
279
- <View>
280
- <OText size={13}>
281
- <OText size={13} weight='bold'>
282
- {`${t('PAYMENT_METHODS', 'Payment methods')}: `}
283
- </OText>
284
- {order?.payment_events?.map((event: any, idx: number) => {
285
- return event?.wallet_event
286
- ? idx < order?.payment_events?.length - 1
287
- ? `${walletName[event?.wallet_event?.wallet?.type]?.name} - `
288
- : walletName[event?.wallet_event?.wallet?.type]?.name
289
- : idx < order?.payment_events?.length - 1
290
- ? `${t(event?.paymethod?.name?.toUpperCase()?.replace(/ /g, '_'), event?.paymethod?.name)} - `
291
- : t(event?.paymethod?.name?.toUpperCase()?.replace(/ /g, '_'), event?.paymethod?.name)
292
- })}
305
+ <OText>
306
+ <OText size={13} weight='bold'>
307
+ {`${t(paymethodsLength > 1 ? 'PAYMENT_METHODS' : 'PAYMENT_METHOD', paymethodsLength > 1 ? 'Payment methods' : 'Payment method')}: `}
308
+ </OText>
309
+ {order?.payment_events?.length > 0 ? (
310
+ <OText size={13}>{`${handlePaymethodsListString()}`}</OText>
311
+ ) : (
312
+ <OText size={13}>{t(order?.paymethod?.gateway?.toUpperCase(), order?.paymethod?.name)}</OText>
313
+ )}
314
+ </OText>
315
+ {order?.spot_number && (
316
+ <OText size={13}>
317
+ <OText size={13} weight='bold'>
318
+ {`${order?.delivery_type === 3
319
+ ? t('EATIN_SPOT_NUMBER', 'Table number')
320
+ : order?.delivery_type === 5
321
+ ? t('DRIVE_THRU_SPOT_NUMBER', 'Drive thru lane')
322
+ : t('CURBSIDE_SPOT_NUMBER', 'Spot number')}: `}
293
323
  </OText>
294
- </View>
324
+ {order.spot_number}
325
+ </OText>
295
326
  )}
296
327
  </>
297
328
  )}