ordering-ui-react-native 0.17.75 → 0.17.76-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 (225) hide show
  1. package/package.json +8 -7
  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/OrderCreating/index.tsx +1 -21
  6. package/src/components/PaymentOptionsWebView/index.tsx +29 -8
  7. package/src/components/PhoneInputNumber/index.tsx +6 -2
  8. package/src/components/StripeMethodForm/index.tsx +136 -102
  9. package/src/components/VerifyPhone/styles.tsx +1 -2
  10. package/src/components/shared/OToast.tsx +3 -2
  11. package/src/types/index.tsx +5 -0
  12. package/src/utils/index.tsx +5 -0
  13. package/themes/business/index.tsx +2 -0
  14. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +28 -25
  15. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  16. package/themes/business/src/components/Chat/index.tsx +149 -118
  17. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  18. package/themes/business/src/components/DriverSchedule/index.tsx +45 -8
  19. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  20. package/themes/business/src/components/LoginForm/Otp/index.tsx +31 -3
  21. package/themes/business/src/components/LoginForm/index.tsx +15 -22
  22. package/themes/business/src/components/MapView/index.tsx +10 -10
  23. package/themes/business/src/components/MessagesOption/index.tsx +20 -93
  24. package/themes/business/src/components/NewOrderNotification/index.tsx +128 -96
  25. package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
  26. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  27. package/themes/business/src/components/OrderDetails/Delivery.tsx +191 -6
  28. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +102 -40
  29. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +61 -60
  30. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  31. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  32. package/themes/business/src/components/OrderMessage/index.tsx +19 -18
  33. package/themes/business/src/components/OrderSummary/index.tsx +114 -123
  34. package/themes/business/src/components/OrdersOption/index.tsx +20 -22
  35. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  36. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  37. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +17 -12
  38. package/themes/business/src/components/PreviousOrders/OrderList.tsx +88 -0
  39. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  40. package/themes/business/src/components/PreviousOrders/index.tsx +139 -174
  41. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  42. package/themes/business/src/components/ReviewCustomer/index.tsx +18 -13
  43. package/themes/business/src/components/StoresList/index.tsx +3 -4
  44. package/themes/business/src/components/UserProfileForm/index.tsx +14 -15
  45. package/themes/business/src/components/shared/OLink.tsx +9 -2
  46. package/themes/business/src/components/shared/OModal.tsx +16 -9
  47. package/themes/business/src/components/shared/OText.tsx +6 -1
  48. package/themes/business/src/types/index.tsx +25 -10
  49. package/themes/business/src/utils/index.tsx +29 -2
  50. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  51. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  52. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  53. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  54. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  55. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -9
  56. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  57. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  58. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  59. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  60. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  61. package/themes/original/index.tsx +1 -1
  62. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  63. package/themes/original/src/components/AddressForm/index.tsx +61 -39
  64. package/themes/original/src/components/AddressList/index.tsx +11 -6
  65. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  66. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  67. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  68. package/themes/original/src/components/BusinessBasicInformation/index.tsx +153 -96
  69. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
  70. package/themes/original/src/components/BusinessController/index.tsx +81 -68
  71. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  72. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  73. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  74. package/themes/original/src/components/BusinessInformation/index.tsx +140 -85
  75. package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
  76. package/themes/original/src/components/BusinessListingSearch/index.tsx +348 -340
  77. package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -18
  78. package/themes/original/src/components/BusinessPreorder/index.tsx +103 -19
  79. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -2
  80. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  81. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  82. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  83. package/themes/original/src/components/BusinessProductsListing/index.tsx +684 -559
  84. package/themes/original/src/components/BusinessProductsListing/styles.tsx +1 -1
  85. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  86. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +69 -38
  87. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +0 -1
  88. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  89. package/themes/original/src/components/Cart/index.tsx +76 -79
  90. package/themes/original/src/components/CartContent/index.tsx +112 -19
  91. package/themes/original/src/components/CartContent/styles.tsx +16 -6
  92. package/themes/original/src/components/Checkout/index.tsx +281 -55
  93. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  94. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  95. package/themes/original/src/components/DriverTips/index.tsx +52 -34
  96. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  97. package/themes/original/src/components/Favorite/index.tsx +2 -6
  98. package/themes/original/src/components/FavoriteList/index.tsx +1 -35
  99. package/themes/original/src/components/FloatingButton/index.tsx +10 -13
  100. package/themes/original/src/components/GPSButton/index.tsx +6 -4
  101. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +7 -3
  102. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +2 -0
  103. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +19 -6
  104. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  105. package/themes/original/src/components/GoogleMap/index.tsx +60 -5
  106. package/themes/original/src/components/Help/index.tsx +2 -2
  107. package/themes/original/src/components/HelpGuide/index.tsx +2 -2
  108. package/themes/original/src/components/HelpGuide/styles.tsx +1 -0
  109. package/themes/original/src/components/Home/index.tsx +13 -4
  110. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  111. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  112. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  113. package/themes/original/src/components/LottieAnimation/index.tsx +88 -63
  114. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  115. package/themes/original/src/components/Messages/index.tsx +14 -7
  116. package/themes/original/src/components/MomentOption/index.tsx +193 -90
  117. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  118. package/themes/original/src/components/MultiCart/index.tsx +41 -54
  119. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +162 -50
  120. package/themes/original/src/components/MultiCheckout/index.tsx +329 -100
  121. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  122. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  123. package/themes/original/src/components/MultiOrdersDetails/index.tsx +54 -21
  124. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  125. package/themes/original/src/components/MyOrders/index.tsx +37 -24
  126. package/themes/original/src/components/NavBar/index.tsx +20 -12
  127. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  128. package/themes/original/src/components/Notifications/styles.tsx +1 -5
  129. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  130. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +21 -5
  131. package/themes/original/src/components/OrderDetails/index.tsx +28 -233
  132. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  133. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  134. package/themes/original/src/components/OrderProgress/index.tsx +30 -56
  135. package/themes/original/src/components/OrderSummary/index.tsx +83 -57
  136. package/themes/original/src/components/OrderTypeSelector/index.tsx +2 -1
  137. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
  138. package/themes/original/src/components/OrdersOption/index.tsx +67 -85
  139. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  140. package/themes/original/src/components/PageBanner/index.tsx +98 -38
  141. package/themes/original/src/components/PageBanner/styles.tsx +0 -10
  142. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  143. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  144. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  145. package/themes/original/src/components/PaymentOptions/index.tsx +77 -34
  146. package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
  147. package/themes/original/src/components/ProductForm/index.tsx +101 -34
  148. package/themes/original/src/components/ProductForm/styles.tsx +3 -3
  149. package/themes/original/src/components/ProductItemAccordion/index.tsx +8 -6
  150. package/themes/original/src/components/ProductOptionSubOption/index.tsx +20 -18
  151. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +5 -9
  152. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  153. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
  154. package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
  155. package/themes/original/src/components/Promotions/index.tsx +2 -2
  156. package/themes/original/src/components/Promotions/styles.tsx +3 -1
  157. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  158. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  159. package/themes/original/src/components/ServiceForm/index.tsx +63 -20
  160. package/themes/original/src/components/Sessions/index.tsx +11 -8
  161. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  162. package/themes/original/src/components/SignupForm/index.tsx +43 -27
  163. package/themes/original/src/components/SingleOrderCard/index.tsx +102 -63
  164. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  165. package/themes/original/src/components/SingleProductCard/index.tsx +72 -31
  166. package/themes/original/src/components/SingleProductCard/styles.tsx +20 -4
  167. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  168. package/themes/original/src/components/StripeCardsList/index.tsx +49 -5
  169. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  170. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  171. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -224
  172. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  173. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  174. package/themes/original/src/components/UserFormDetails/index.tsx +78 -9
  175. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  176. package/themes/original/src/components/UserProfile/index.tsx +87 -76
  177. package/themes/original/src/components/UserProfileForm/index.tsx +10 -3
  178. package/themes/original/src/components/UserProfileForm/styles.tsx +1 -1
  179. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  180. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  181. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  182. package/themes/original/src/components/Wallets/index.tsx +56 -33
  183. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  184. package/themes/original/src/components/shared/OButton.tsx +6 -2
  185. package/themes/original/src/components/shared/OInput.tsx +6 -1
  186. package/themes/original/src/components/shared/OModal.tsx +3 -3
  187. package/themes/original/src/types/index.tsx +39 -10
  188. package/themes/original/src/utils/index.tsx +273 -1
  189. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  190. package/src/navigators/BottomNavigator.tsx +0 -117
  191. package/src/navigators/CheckoutNavigator.tsx +0 -66
  192. package/src/navigators/HomeNavigator.tsx +0 -202
  193. package/src/navigators/NavigationRef.tsx +0 -7
  194. package/src/navigators/RootNavigator.tsx +0 -269
  195. package/src/pages/Account.tsx +0 -34
  196. package/src/pages/AddressForm.tsx +0 -62
  197. package/src/pages/AddressList.tsx +0 -24
  198. package/src/pages/BusinessProductsList.tsx +0 -81
  199. package/src/pages/BusinessesListing.tsx +0 -43
  200. package/src/pages/CartList.tsx +0 -49
  201. package/src/pages/Checkout.tsx +0 -101
  202. package/src/pages/ForgotPassword.tsx +0 -24
  203. package/src/pages/Help.tsx +0 -23
  204. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  205. package/src/pages/HelpGuide.tsx +0 -23
  206. package/src/pages/HelpOrder.tsx +0 -23
  207. package/src/pages/Home.tsx +0 -36
  208. package/src/pages/IntroductoryTutorial.tsx +0 -170
  209. package/src/pages/Login.tsx +0 -47
  210. package/src/pages/MomentOption.tsx +0 -30
  211. package/src/pages/MultiCheckout.tsx +0 -31
  212. package/src/pages/MultiOrdersDetails.tsx +0 -27
  213. package/src/pages/MyOrders.tsx +0 -40
  214. package/src/pages/NetworkError.tsx +0 -24
  215. package/src/pages/NotFound.tsx +0 -22
  216. package/src/pages/OrderDetails.tsx +0 -25
  217. package/src/pages/ProductDetails.tsx +0 -55
  218. package/src/pages/Profile.tsx +0 -36
  219. package/src/pages/ReviewDriver.tsx +0 -30
  220. package/src/pages/ReviewOrder.tsx +0 -32
  221. package/src/pages/ReviewProducts.tsx +0 -30
  222. package/src/pages/Sessions.tsx +0 -22
  223. package/src/pages/Signup.tsx +0 -53
  224. package/src/pages/SpinnerLoader.tsx +0 -10
  225. package/src/pages/Splash.tsx +0 -21
@@ -2,7 +2,8 @@ import React, { useEffect, useState } from 'react'
2
2
  import {
3
3
  OrderList,
4
4
  useLanguage,
5
- useUtils
5
+ useUtils,
6
+ useConfig
6
7
  } from 'ordering-components/native'
7
8
  import { useTheme } from 'styled-components/native';
8
9
  import IconAntDesign from 'react-native-vector-icons/AntDesign'
@@ -12,6 +13,7 @@ import { NotFoundSource } from '../NotFoundSource'
12
13
  import { View, StyleSheet, TouchableOpacity, Platform } from 'react-native'
13
14
  import { Placeholder, Fade, PlaceholderLine } from "rn-placeholder";
14
15
  import FastImage from 'react-native-fast-image'
16
+ import { OrderEta } from '../OrderDetails/OrderEta'
15
17
  import {
16
18
  ProgressContentWrapper,
17
19
  ProgressBar,
@@ -20,6 +22,8 @@ import {
20
22
  OrderInfoWrapper,
21
23
  OrderProgressWrapper
22
24
  } from './styles'
25
+ import { getOrderStatus } from '../../utils'
26
+
23
27
  const OrderProgressUI = (props: any) => {
24
28
  const {
25
29
  orderList,
@@ -31,10 +35,12 @@ const OrderProgressUI = (props: any) => {
31
35
  const theme = useTheme();
32
36
 
33
37
  const [, t] = useLanguage()
34
- const [{ optimizeImage, parseDate, parseTime }] = useUtils()
38
+ const [{ optimizeImage, parseTime, parseDate }] = useUtils()
39
+ const [{ configs }] = useConfig()
35
40
  const [lastOrder, setLastOrder] = useState<any>(null)
36
41
  const imageFails = theme.images.general.emptyActiveOrders
37
42
  const [initialLoaded, setInitialLoaded] = useState(false)
43
+ const statusToShow = [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23]
38
44
 
39
45
  const styles = StyleSheet.create({
40
46
  main: {
@@ -74,49 +80,6 @@ const OrderProgressUI = (props: any) => {
74
80
  }
75
81
  });
76
82
 
77
- const getOrderStatus = (s: any) => {
78
- const status = parseInt(s)
79
- const orderStatus = [
80
- { key: 0, value: t('PENDING', theme?.defaultLanguages?.PENDING || 'Pending'), slug: 'PENDING', percentage: 25 },
81
- { key: 1, value: t('COMPLETED', theme?.defaultLanguages?.COMPLETED || 'Completed'), slug: 'COMPLETED', percentage: 100 },
82
- { key: 2, value: t('REJECTED', theme?.defaultLanguages?.REJECTED || 'Rejected'), slug: 'REJECTED', percentage: 0 },
83
- { key: 3, value: t('DRIVER_IN_BUSINESS', theme?.defaultLanguages?.DRIVER_IN_BUSINESS || 'Driver in business'), slug: 'DRIVER_IN_BUSINESS', percentage: 60 },
84
- { key: 4, value: t('PREPARATION_COMPLETED', theme?.defaultLanguages?.PREPARATION_COMPLETED || 'Preparation Completed'), slug: 'PREPARATION_COMPLETED', percentage: 70 },
85
- { key: 5, value: t('REJECTED_BY_BUSINESS', theme?.defaultLanguages?.REJECTED_BY_BUSINESS || 'Rejected by business'), slug: 'REJECTED_BY_BUSINESS', percentage: 0 },
86
- { key: 6, value: t('REJECTED_BY_DRIVER', theme?.defaultLanguages?.REJECTED_BY_DRIVER || 'Rejected by Driver'), slug: 'REJECTED_BY_DRIVER', percentage: 0 },
87
- { key: 7, value: t('ACCEPTED_BY_BUSINESS', theme?.defaultLanguages?.ACCEPTED_BY_BUSINESS || 'Accepted by business'), slug: 'ACCEPTED_BY_BUSINESS', percentage: 35 },
88
- { key: 8, value: t('ACCEPTED_BY_DRIVER', theme?.defaultLanguages?.ACCEPTED_BY_DRIVER || 'Accepted by driver'), slug: 'ACCEPTED_BY_DRIVER', percentage: 45 },
89
- { key: 9, value: t('PICK_UP_COMPLETED_BY_DRIVER', theme?.defaultLanguages?.PICK_UP_COMPLETED_BY_DRIVER || 'Pick up completed by driver'), slug: 'PICK_UP_COMPLETED_BY_DRIVER', percentage: 80 },
90
- { key: 10, value: t('PICK_UP_FAILED_BY_DRIVER', theme?.defaultLanguages?.PICK_UP_FAILED_BY_DRIVER || 'Pick up Failed by driver'), slug: 'PICK_UP_FAILED_BY_DRIVER', percentage: 0 },
91
- { key: 11, value: t('DELIVERY_COMPLETED_BY_DRIVER', theme?.defaultLanguages?.DELIVERY_COMPLETED_BY_DRIVER || 'Delivery completed by driver'), slug: 'DELIVERY_COMPLETED_BY_DRIVER', percentage: 100 },
92
- { key: 12, value: t('DELIVERY_FAILED_BY_DRIVER', theme?.defaultLanguages?.DELIVERY_FAILED_BY_DRIVER || 'Delivery Failed by driver'), slug: 'DELIVERY_FAILED_BY_DRIVER', percentage: 0 },
93
- { key: 13, value: t('PREORDER', theme?.defaultLanguages?.PREORDER || 'PreOrder'), slug: 'PREORDER', percentage: 0 },
94
- { key: 14, value: t('ORDER_NOT_READY', theme?.defaultLanguages?.ORDER_NOT_READY || 'Order not ready'), slug: 'ORDER_NOT_READY', percentage: 65 },
95
- { key: 15, value: t('ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER', theme?.defaultLanguages?.ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER || 'Order picked up completed by customer'), slug: 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER', percentage: 100 },
96
- { key: 16, value: t('ORDER_STATUS_CANCELLED_BY_CUSTOMER', theme?.defaultLanguages?.ORDER_STATUS_CANCELLED_BY_CUSTOMER || 'Order cancelled by customer'), slug: 'ORDER_STATUS_CANCELLED_BY_CUSTOMER', percentage: 0 },
97
- { key: 17, value: t('ORDER_NOT_PICKEDUP_BY_CUSTOMER', theme?.defaultLanguages?.ORDER_NOT_PICKEDUP_BY_CUSTOMER || 'Order not picked up by customer'), slug: 'ORDER_NOT_PICKEDUP_BY_CUSTOMER', percentage: 0 },
98
- { key: 18, value: t('ORDER_DRIVER_ALMOST_ARRIVED_BUSINESS', theme?.defaultLanguages?.ORDER_DRIVER_ALMOST_ARRIVED_BUSINESS || 'Driver almost arrived to business'), slug: 'ORDER_DRIVER_ALMOST_ARRIVED_BUSINESS', percentage: 55 },
99
- { key: 19, value: t('ORDER_DRIVER_ALMOST_ARRIVED_CUSTOMER', theme?.defaultLanguages?.ORDER_DRIVER_ALMOST_ARRIVED_CUSTOMER || 'Driver almost arrived to customer'), slug: 'ORDER_DRIVER_ALMOST_ARRIVED_CUSTOMER', percentage: 90 },
100
- { key: 20, value: t('ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', theme?.defaultLanguages?.ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS || 'Customer almost arrived to business'), slug: 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', percentage: 90 },
101
- { key: 21, value: t('ORDER_CUSTOMER_ARRIVED_BUSINESS', theme?.defaultLanguages?.ORDER_CUSTOMER_ARRIVED_BUSINESS || 'Customer arrived to business'), slug: 'ORDER_CUSTOMER_ARRIVED_BUSINESS', percentage: 95 },
102
- { key: 22, value: t('ORDER_LOOKING_FOR_DRIVER', theme?.defaultLanguages?.ORDER_LOOKING_FOR_DRIVER || 'Looking for driver'), slug: 'ORDER_LOOKING_FOR_DRIVER', percentage: 35 },
103
- { key: 23, value: t('ORDER_DRIVER_ON_WAY', theme?.defaultLanguages?.ORDER_DRIVER_ON_WAY || 'Driver on way'), slug: 'ORDER_DRIVER_ON_WAY', percentage: 45 }
104
- ]
105
-
106
- const objectStatus = orderStatus.find((o) => o.key === status)
107
-
108
- return objectStatus && objectStatus
109
- }
110
-
111
- const convertDiffToHours = (order: any) => {
112
- const minute = order?.eta_time
113
- const deliveryTime = order?.delivery_datetime_utc
114
- ? parseDate(order?.delivery_datetime_utc, { outputFormat: 'YYYY-MM-DD HH:mm' })
115
- : parseDate(order?.delivery_datetime, { utc: false, outputFormat: 'YYYY-MM-DD HH:mm' })
116
- const returnedDate = moment(deliveryTime).add(minute, 'minutes').format('hh:mm A')
117
- return returnedDate
118
- }
119
-
120
83
  const handleGoToOrder = (index: string) => {
121
84
  navigation && navigation.navigate(index)
122
85
  }
@@ -124,7 +87,15 @@ const OrderProgressUI = (props: any) => {
124
87
  useEffect(() => {
125
88
  if (orderList?.orders.length > 0) {
126
89
  const sortedOrders = orderList.orders.sort((a: any, b: any) => a.id > b.id ? -1 : 1)
127
- setLastOrder(sortedOrders[0])
90
+ const orderInProgress = sortedOrders.find((order: any) => (statusToShow.includes(order.status)))
91
+
92
+ let _lastOrder = null
93
+ if (orderInProgress) {
94
+ _lastOrder = orderInProgress
95
+ } else {
96
+ _lastOrder = sortedOrders[0]
97
+ }
98
+ setLastOrder(_lastOrder)
128
99
  }
129
100
  }, [orderList?.orders])
130
101
 
@@ -157,11 +128,11 @@ const OrderProgressUI = (props: any) => {
157
128
  <View style={styles.logoWrapper}>
158
129
  <FastImage
159
130
  style={{ width: 50, height: 50 }}
160
- source={{
131
+ source={orderList?.orders.length === 1 ? {
161
132
  uri: optimizeImage(lastOrder?.business?.logo, 'h_50,c_limit'),
162
133
  priority: FastImage.priority.normal,
163
- }}
164
- resizeMode={FastImage.resizeMode.cover}
134
+ } : theme.images.logos.logotype}
135
+ resizeMode={FastImage.resizeMode.contain}
165
136
  />
166
137
  </View>
167
138
  <View style={{
@@ -175,8 +146,7 @@ const OrderProgressUI = (props: any) => {
175
146
  fontWeight: 'bold',
176
147
  marginBottom: 3
177
148
  }}
178
- >{t('ORDER_IN_PROGRESS', 'Order in progress')}</OText>
179
- <OText size={11} numberOfLines={1} ellipsizeMode='tail'>{t('RESTAURANT_PREPARING_YOUR_ORDER', 'The restaurant is preparing your order')}</OText>
149
+ >{statusToShow.includes(lastOrder?.status) ? t('ORDER_IN_PROGRESS', 'Order in progress') : t('ORDER', 'Order')}</OText>
180
150
  <TouchableOpacity onPress={() => handleGoToOrder('MyOrders')}>
181
151
  <View style={styles.navigationButton}>
182
152
  <OText size={11} color={theme.colors.primary}>{t('GO_TO_MY_ORDERS', 'Go to my orders')}</OText>
@@ -192,18 +162,22 @@ const OrderProgressUI = (props: any) => {
192
162
  </OrderInfoWrapper>
193
163
  <View style={{ flex: 1 }}>
194
164
  <ProgressContentWrapper>
195
- <ProgressBar style={{ width: getOrderStatus(lastOrder.status)?.percentage ? `${getOrderStatus(lastOrder.status)?.percentage}%` : '0%' }} />
165
+ <ProgressBar style={{ width: getOrderStatus(lastOrder.status)?.percentage ? `${(getOrderStatus(lastOrder.status) as any).percentage * 100}%` : '0%' }} />
196
166
  </ProgressContentWrapper>
197
167
  <ProgressTextWrapper>
198
168
  <OText size={12} style={{ width: '50%' }}>{getOrderStatus(lastOrder.status)?.value}</OText>
199
169
  <TimeWrapper>
200
- <OText size={11}>{t('ESTIMATED_DELIVERY', 'Estimated delivery')}</OText>
170
+ <OText size={11}>{lastOrder?.delivery_type === 1 ? t('ESTIMATED_DELIVERY', 'Estimated delivery') : t('ESTIMATED_TIME', 'Estimated time')}</OText>
201
171
  <OText size={11}>
202
172
  {lastOrder?.delivery_datetime_utc
203
- ? parseTime(lastOrder?.delivery_datetime_utc, { outputFormat: 'hh:mm A' })
173
+ ? parseTime(lastOrder?.delivery_datetime_utc, { outputFormat: configs?.general_hour_format?.value || 'HH:mm' })
204
174
  : parseTime(lastOrder?.delivery_datetime, { utc: false })}
205
175
  &nbsp;-&nbsp;
206
- {convertDiffToHours(lastOrder)}
176
+ {statusToShow.includes(lastOrder?.status) ? (
177
+ <OrderEta order={lastOrder} outputFormat={configs?.general_hour_format?.value || 'HH:mm'} />
178
+ ) : (
179
+ parseDate(lastOrder?.reporting_data?.at[`status:${lastOrder.status}`], { outputFormat: configs?.general_hour_format?.value })
180
+ )}
207
181
  </OText>
208
182
  </TimeWrapper>
209
183
  </ProgressTextWrapper>
@@ -230,7 +204,7 @@ export const OrderProgress = (props: any) => {
230
204
  useDefualtSessionManager: true,
231
205
  paginationSettings: {
232
206
  initialPage: 1,
233
- pageSize: 1,
207
+ pageSize: 10,
234
208
  controlType: 'infinity'
235
209
  }
236
210
  }
@@ -20,12 +20,12 @@ import {
20
20
 
21
21
  import { ProductItemAccordion } from '../ProductItemAccordion';
22
22
  import { CouponControl } from '../CouponControl';
23
- import { OInput, OModal, OText } from '../shared';
23
+ import { OInput, OModal, OText, OAlert } from '../shared';
24
24
  import { verifyDecimals } from '../../utils';
25
25
  import AntIcon from 'react-native-vector-icons/AntDesign'
26
26
  import { TaxInformation } from '../TaxInformation';
27
27
  import { TouchableOpacity } from 'react-native';
28
- import { OAlert } from '../../../../../src/components/shared'
28
+ import { MomentOption } from '../MomentOption';
29
29
 
30
30
  const OrderSummaryUI = (props: any) => {
31
31
  const {
@@ -38,7 +38,16 @@ const OrderSummaryUI = (props: any) => {
38
38
  commentState,
39
39
  handleChangeComment,
40
40
  onNavigationRedirect,
41
- handleRemoveOfferClick
41
+ handleRemoveOfferClick,
42
+ preorderSlotInterval,
43
+ preorderLeadTime,
44
+ preorderTimeRange,
45
+ preorderMaximumDays,
46
+ preorderMinimumDays,
47
+ cateringTypes,
48
+ hideDeliveryFee,
49
+ loyaltyRewardRate,
50
+ maxDate
42
51
  } = props;
43
52
 
44
53
  const theme = useTheme()
@@ -48,8 +57,32 @@ const OrderSummaryUI = (props: any) => {
48
57
  const [{ parsePrice, parseNumber }] = useUtils();
49
58
  const [validationFields] = useValidationFields();
50
59
  const [openTaxModal, setOpenTaxModal] = useState<any>({ open: false, data: null, type: '' })
51
- const [confirm, setConfirm] = useState<any>({ open: false, content: null, handleOnAccept: null, id: null, title: null })
52
60
  const isCouponEnabled = validationFields?.fields?.checkout?.coupon?.enabled;
61
+ const hideCartComments = !validationFields?.fields?.checkout?.comments?.enabled
62
+
63
+ const cart = orderState?.carts?.[`businessId:${props.cart.business_id}`]
64
+
65
+ const walletName: any = {
66
+ cash: {
67
+ name: t('PAY_WITH_CASH_WALLET', 'Pay with Cash Wallet'),
68
+ },
69
+ credit_point: {
70
+ name: t('PAY_WITH_CREDITS_POINTS_WALLET', 'Pay with Credit Points Wallet'),
71
+ }
72
+ }
73
+
74
+ const getIncludedTaxes = () => {
75
+ if (cart?.taxes === null || !cart?.taxes) {
76
+ return cart?.business?.tax_type === 1 ? cart?.tax : 0
77
+ } else {
78
+ return cart?.taxes.reduce((taxIncluded: number, tax: any) => {
79
+ return taxIncluded + (tax.type === 1 ? tax.summary?.tax : 0)
80
+ }, 0)
81
+ }
82
+ }
83
+
84
+ const clearAmount = (value: any) => parseFloat((Math.trunc(value * 100) / 100).toFixed(configs.format_number_decimal_length?.value ?? 2))
85
+ const loyaltyRewardValue = clearAmount((cart?.subtotal + getIncludedTaxes()) * loyaltyRewardRate)
53
86
 
54
87
  const handleDeleteClick = (product: any) => {
55
88
  removeProduct(product, cart)
@@ -67,41 +100,20 @@ const OrderSummaryUI = (props: any) => {
67
100
  })
68
101
  }
69
102
 
70
- const getIncludedTaxes = () => {
71
- if (cart?.taxes === null || !cart?.taxes) {
72
- return cart.business.tax_type === 1 ? cart?.tax : 0
73
- } else {
74
- return cart?.taxes.reduce((taxIncluded: number, tax: any) => {
75
- return taxIncluded + (tax.type === 1 ? tax.summary?.tax : 0)
76
- }, 0)
77
- }
78
- }
79
-
80
103
  const getIncludedTaxesDiscounts = () => {
81
104
  return cart?.taxes?.filter((tax: any) => tax?.type === 1)?.reduce((carry: number, tax: any) => carry + (tax?.summary?.tax_after_discount ?? tax?.summary?.tax), 0)
82
105
  }
83
106
 
84
- const onRemoveOffer = (id: number) => {
85
- setConfirm({
86
- open: true,
87
- content: [t('QUESTION_DELETE_OFFER', 'Are you sure that you want to delete the offer?')],
88
- title: t('OFFER', 'Offer'),
89
- handleOnAccept: () => {
90
- setConfirm({ ...confirm, open: false })
91
- handleRemoveOfferClick(id)
92
- }
93
- })
94
- }
95
-
96
- const cart = orderState?.carts?.[`businessId:${props.cart.business_id}`]
97
-
98
- const walletName: any = {
99
- cash: {
100
- name: t('PAY_WITH_CASH_WALLET', 'Pay with Cash Wallet'),
101
- },
102
- credit_point: {
103
- name: t('PAY_WITH_CREDITS_POINTS_WALLET', 'Pay with Credit Points Wallet'),
104
- }
107
+ const OfferAlert = ({ offerId }: any) => {
108
+ return (
109
+ <OAlert
110
+ title={t('OFFER', 'Offer')}
111
+ message={t('QUESTION_DELETE_OFFER', 'Are you sure that you want to delete the offer?')}
112
+ onAccept={() => handleRemoveOfferClick(offerId)}
113
+ >
114
+ <AntIcon style={{ marginLeft: 3 }} name='closecircle' size={16} color={theme.colors.primary} />
115
+ </OAlert>
116
+ )
105
117
  }
106
118
 
107
119
  return (
@@ -157,9 +169,9 @@ const OrderSummaryUI = (props: any) => {
157
169
  <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_1' })}>
158
170
  <AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
159
171
  </TouchableOpacity>
160
- <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => onRemoveOffer(offer?.id)}>
161
- <AntIcon name='closecircle' size={16} color={theme.colors.primary} />
162
- </TouchableOpacity>
172
+ {!!offer?.id && (
173
+ <OfferAlert offerId={offer?.id} />
174
+ )}
163
175
  </OSRow>
164
176
  <OText size={12}>
165
177
  - {parsePrice(offer?.summary?.discount)}
@@ -197,8 +209,8 @@ const OrderSummaryUI = (props: any) => {
197
209
  ))
198
210
  }
199
211
  {
200
- cart?.fees?.length > 0 && cart?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0)).map((fee: any) => (
201
- <OSTable key={fee?.id}>
212
+ cart?.fees?.length > 0 && cart?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0)).map((fee: any, i: number) => (
213
+ <OSTable key={fee?.id + i}>
202
214
  <OSRow>
203
215
  <OText size={12} numberOfLines={1}>
204
216
  {fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}{' '}
@@ -223,9 +235,9 @@ const OrderSummaryUI = (props: any) => {
223
235
  <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_3' })}>
224
236
  <AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
225
237
  </TouchableOpacity>
226
- <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => onRemoveOffer(offer?.id)}>
227
- <AntIcon name='closecircle' size={16} color={theme.colors.primary} />
228
- </TouchableOpacity>
238
+ {!!offer?.id && (
239
+ <OfferAlert offerId={offer?.id} />
240
+ )}
229
241
  </OSRow>
230
242
  <OText size={12}>
231
243
  - {parsePrice(offer?.summary?.discount)}
@@ -233,10 +245,10 @@ const OrderSummaryUI = (props: any) => {
233
245
  </OSTable>
234
246
  ))
235
247
  }
236
- {orderState?.options?.type === 1 && cart?.delivery_price > 0 && (
248
+ {orderState?.options?.type === 1 && !hideDeliveryFee && (
237
249
  <OSTable>
238
250
  <OText size={12}>{t('DELIVERY_FEE', 'Delivery Fee')}</OText>
239
- <OText size={12}>{parsePrice(cart?.delivery_price)}</OText>
251
+ <OText size={12}>{parsePrice(cart?.delivery_price_with_discount)}</OText>
240
252
  </OSTable>
241
253
  )}
242
254
  {
@@ -250,9 +262,9 @@ const OrderSummaryUI = (props: any) => {
250
262
  <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_2' })}>
251
263
  <AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
252
264
  </TouchableOpacity>
253
- <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => onRemoveOffer(offer?.id)}>
254
- <AntIcon name='closecircle' size={16} color={theme.colors.primary} />
255
- </TouchableOpacity>
265
+ {!!offer?.id && (
266
+ <OfferAlert offerId={offer?.id} />
267
+ )}
256
268
  </OSRow>
257
269
  <OText size={12}>
258
270
  - {parsePrice(offer?.summary?.discount)}
@@ -302,9 +314,16 @@ const OrderSummaryUI = (props: any) => {
302
314
  {parsePrice(cart?.balance >= 0 ? cart?.balance : 0)}
303
315
  </OText>
304
316
  </OSTable>
317
+ {!!loyaltyRewardValue && (
318
+ <OSTable style={{ justifyContent: 'flex-end' }}>
319
+ <OText size={12} color={theme.colors.textNormal}>
320
+ {t('REWARD_LOYALTY_POINT', 'Reward :amount: on loyalty points').replace(':amount:', loyaltyRewardValue)}
321
+ </OText>
322
+ </OSTable>
323
+ )}
305
324
  </View>
306
325
  )}
307
- {cart?.business_id && cart?.status !== 2 && (
326
+ {cart?.business_id && cart?.status !== 2 && !hideCartComments && (
308
327
  <OSTable>
309
328
  <View style={{ width: '100%', marginTop: 20 }}>
310
329
  <OText size={12}>{t('COMMENTS', 'Comments')}</OText>
@@ -339,6 +358,21 @@ const OrderSummaryUI = (props: any) => {
339
358
  )}
340
359
  </OSBill>
341
360
  )}
361
+ {cateringTypes.includes(orderState?.options?.type) && maxDate && cart?.business && (
362
+ <View>
363
+ <MomentOption
364
+ maxDate={maxDate}
365
+ cateringPreorder
366
+ isCart
367
+ preorderSlotInterval={preorderSlotInterval}
368
+ preorderLeadTime={preorderLeadTime}
369
+ preorderTimeRange={preorderTimeRange}
370
+ preorderMaximumDays={preorderMaximumDays}
371
+ preorderMinimumDays={preorderMinimumDays}
372
+ business={cart?.business}
373
+ />
374
+ </View>
375
+ )}
342
376
  <OModal
343
377
  open={openTaxModal.open}
344
378
  onClose={() => setOpenTaxModal({ open: false, data: null, type: '' })}
@@ -352,14 +386,6 @@ const OrderSummaryUI = (props: any) => {
352
386
  products={cart?.products}
353
387
  />
354
388
  </OModal>
355
- <OAlert
356
- open={confirm.open}
357
- title={confirm.title}
358
- content={confirm.content}
359
- onAccept={confirm.handleOnAccept}
360
- onCancel={() => setConfirm({ ...confirm, open: false, title: null })}
361
- onClose={() => setConfirm({ ...confirm, open: false, title: null })}
362
- />
363
389
  </>
364
390
  )}
365
391
  </OSContainer>
@@ -96,10 +96,11 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
96
96
  <NavBar
97
97
  onActionLeft={() => goToBack()}
98
98
  btnStyle={{ paddingLeft: 0, width: 50 }}
99
- paddingTop={0}
99
+ paddingTop={Platform.OS === 'ios' ? 10 : 0}
100
100
  style={{ paddingBottom: 0 }}
101
101
  title={t('HOW_WILL_YOU_DELIVERY_TYPE', 'How will your order type?')}
102
102
  titleAlign={'center'}
103
+ titleStyle={{ fontSize: 14 }}
103
104
  noMargin
104
105
  />
105
106
  {
@@ -23,21 +23,21 @@ export const PreviousProductsOrdered = (props: PreviousProductsOrderedParams) =>
23
23
  },
24
24
  });
25
25
 
26
- const ProductList = ({ style }: any) => {
26
+ const ProductList = () => {
27
27
  return (
28
28
  <>
29
- {products?.map((product: any) => (
30
- <SingleProductCard
31
- key={product?.id}
32
- isProductId
33
- isSoldOut={(product.inventoried && !product.quantity)}
34
- product={product}
35
- businessId={product?.business?.id}
36
- onProductClick={onProductClick}
37
- style={style}
38
- productAddedToCartLength={0}
39
- handleUpdateProducts={handleUpdateProducts}
40
- />
29
+ {products?.filter((product : any) => product?.business?.available)?.map((product: any) => (
30
+ <SingleProductCard
31
+ key={product?.id}
32
+ isProductId
33
+ isSoldOut={(product.inventoried && !product.quantity)}
34
+ product={product}
35
+ businessId={product?.business?.id}
36
+ onProductClick={onProductClick}
37
+ style={{ width: windowWidth - (products?.length > 1 ? 120 : 80), marginRight: 20 }}
38
+ productAddedToCartLength={0}
39
+ handleUpdateProducts={handleUpdateProducts}
40
+ />
41
41
  ))}
42
42
  </>
43
43
  )
@@ -45,7 +45,7 @@ export const PreviousProductsOrdered = (props: PreviousProductsOrderedParams) =>
45
45
  return (
46
46
  <ScrollView horizontal={isBusinessesSearchList} style={styles.container} showsVerticalScrollIndicator={false}>
47
47
  {isBusinessesSearchList ? (
48
- <ProductList style={{ width: windowWidth - 80, marginRight: 20 }} />
48
+ <ProductList />
49
49
  ) : (
50
50
  <ListWrapper isBusinessesSearchList={isBusinessesSearchList}>
51
51
  <ProductList />