ordering-ui-react-native 0.17.71 → 0.17.72-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 (201) 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 -24
  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 +35 -21
  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 +103 -39
  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 +17 -15
  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 +186 -114
  41. package/themes/business/src/components/PreviousOrders/styles.tsx +1 -1
  42. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  43. package/themes/business/src/components/ReviewCustomer/index.tsx +18 -13
  44. package/themes/business/src/components/StoresList/index.tsx +3 -4
  45. package/themes/business/src/components/UserProfileForm/index.tsx +14 -15
  46. package/themes/business/src/components/shared/OLink.tsx +11 -3
  47. package/themes/business/src/components/shared/OModal.tsx +16 -9
  48. package/themes/business/src/components/shared/OText.tsx +6 -1
  49. package/themes/business/src/types/index.tsx +25 -10
  50. package/themes/business/src/utils/index.tsx +29 -2
  51. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  52. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  53. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  54. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  55. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  56. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -9
  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/PhoneInputNumber/index.tsx +2 -2
  61. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  62. package/themes/original/index.tsx +1 -1
  63. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  64. package/themes/original/src/components/AddressForm/index.tsx +61 -39
  65. package/themes/original/src/components/AddressList/index.tsx +25 -24
  66. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  67. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  68. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  69. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  70. package/themes/original/src/components/BusinessBasicInformation/index.tsx +153 -96
  71. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
  72. package/themes/original/src/components/BusinessController/index.tsx +80 -66
  73. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  74. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  75. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  76. package/themes/original/src/components/BusinessInformation/index.tsx +139 -85
  77. package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
  78. package/themes/original/src/components/BusinessListingSearch/index.tsx +349 -339
  79. package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -18
  80. package/themes/original/src/components/BusinessPreorder/index.tsx +103 -19
  81. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -2
  82. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  83. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  84. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  85. package/themes/original/src/components/BusinessProductsListing/index.tsx +684 -555
  86. package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
  87. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  88. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +69 -38
  89. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +0 -1
  90. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  91. package/themes/original/src/components/Cart/index.tsx +77 -79
  92. package/themes/original/src/components/CartContent/index.tsx +117 -20
  93. package/themes/original/src/components/CartContent/styles.tsx +17 -7
  94. package/themes/original/src/components/Checkout/index.tsx +356 -124
  95. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  96. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  97. package/themes/original/src/components/DriverTips/index.tsx +52 -34
  98. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  99. package/themes/original/src/components/Favorite/index.tsx +2 -6
  100. package/themes/original/src/components/FavoriteList/index.tsx +1 -35
  101. package/themes/original/src/components/FloatingButton/index.tsx +10 -13
  102. package/themes/original/src/components/GPSButton/index.tsx +6 -4
  103. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
  104. package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
  105. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
  106. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
  107. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +191 -0
  108. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
  109. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
  110. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
  111. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  112. package/themes/original/src/components/GoogleMap/index.tsx +60 -5
  113. package/themes/original/src/components/Help/index.tsx +2 -2
  114. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +10 -31
  115. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +5 -3
  116. package/themes/original/src/components/HelpGuide/index.tsx +6 -6
  117. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  118. package/themes/original/src/components/HelpOrder/index.tsx +6 -15
  119. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  120. package/themes/original/src/components/Home/index.tsx +13 -4
  121. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  122. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  123. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  124. package/themes/original/src/components/LottieAnimation/index.tsx +88 -63
  125. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  126. package/themes/original/src/components/Messages/index.tsx +14 -7
  127. package/themes/original/src/components/MomentOption/index.tsx +193 -90
  128. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  129. package/themes/original/src/components/MultiCart/index.tsx +41 -54
  130. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +162 -50
  131. package/themes/original/src/components/MultiCheckout/index.tsx +329 -100
  132. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  133. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  134. package/themes/original/src/components/MultiOrdersDetails/index.tsx +54 -21
  135. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  136. package/themes/original/src/components/MyOrders/index.tsx +40 -29
  137. package/themes/original/src/components/NavBar/index.tsx +20 -17
  138. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  139. package/themes/original/src/components/Notifications/index.tsx +42 -52
  140. package/themes/original/src/components/Notifications/styles.tsx +6 -3
  141. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  142. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +21 -5
  143. package/themes/original/src/components/OrderDetails/index.tsx +191 -363
  144. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  145. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  146. package/themes/original/src/components/OrderProgress/index.tsx +30 -56
  147. package/themes/original/src/components/OrderSummary/index.tsx +88 -59
  148. package/themes/original/src/components/OrderTypeSelector/index.tsx +2 -1
  149. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
  150. package/themes/original/src/components/OrdersOption/index.tsx +68 -87
  151. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  152. package/themes/original/src/components/PageBanner/index.tsx +98 -38
  153. package/themes/original/src/components/PageBanner/styles.tsx +0 -10
  154. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  155. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  156. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  157. package/themes/original/src/components/PaymentOptions/index.tsx +78 -35
  158. package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
  159. package/themes/original/src/components/ProductForm/index.tsx +104 -29
  160. package/themes/original/src/components/ProductForm/styles.tsx +5 -5
  161. package/themes/original/src/components/ProductItemAccordion/index.tsx +12 -9
  162. package/themes/original/src/components/ProductOptionSubOption/index.tsx +20 -18
  163. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +5 -9
  164. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  165. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
  166. package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
  167. package/themes/original/src/components/Promotions/index.tsx +2 -2
  168. package/themes/original/src/components/Promotions/styles.tsx +3 -1
  169. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  170. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  171. package/themes/original/src/components/ServiceForm/index.tsx +66 -17
  172. package/themes/original/src/components/Sessions/index.tsx +11 -8
  173. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  174. package/themes/original/src/components/SignupForm/index.tsx +43 -27
  175. package/themes/original/src/components/SingleOrderCard/index.tsx +102 -63
  176. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  177. package/themes/original/src/components/SingleProductCard/index.tsx +72 -31
  178. package/themes/original/src/components/SingleProductCard/styles.tsx +20 -4
  179. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  180. package/themes/original/src/components/StripeCardsList/index.tsx +49 -5
  181. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  182. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  183. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -224
  184. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  185. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  186. package/themes/original/src/components/UserFormDetails/index.tsx +76 -7
  187. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  188. package/themes/original/src/components/UserProfile/index.tsx +88 -79
  189. package/themes/original/src/components/UserProfileForm/index.tsx +17 -21
  190. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  191. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  192. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  193. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  194. package/themes/original/src/components/Wallets/index.tsx +66 -30
  195. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  196. package/themes/original/src/components/shared/OButton.tsx +6 -2
  197. package/themes/original/src/components/shared/OInput.tsx +6 -1
  198. package/themes/original/src/components/shared/OModal.tsx +3 -3
  199. package/themes/original/src/types/index.tsx +41 -11
  200. package/themes/original/src/utils/index.tsx +273 -1
  201. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -5,7 +5,6 @@ export const OrderDetailsContainer = styled.ScrollView`
5
5
  `
6
6
 
7
7
  export const NavBack = styled.TouchableOpacity`
8
-
9
8
  `
10
9
 
11
10
 
@@ -20,7 +20,8 @@ export const OrderItAgain = (props: OrderItAgainParams) => {
20
20
  currentCart,
21
21
  handleUpdateProducts,
22
22
  navigation,
23
- searchValue
23
+ searchValue,
24
+ businessSingleId
24
25
  } = props
25
26
 
26
27
  const [, t] = useLanguage()
@@ -65,6 +66,7 @@ export const OrderItAgain = (props: OrderItAgainParams) => {
65
66
  handleUpdateProducts={handleUpdateProducts}
66
67
  navigation={navigation}
67
68
  isPreviously
69
+ businessSingleId={businessSingleId}
68
70
  />
69
71
  </ProductWrapper>
70
72
  ))}
@@ -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 (
@@ -121,6 +133,7 @@ const OrderSummaryUI = (props: any) => {
121
133
  onDeleteProduct={handleDeleteClick}
122
134
  onEditProduct={handleEditProduct}
123
135
  isFromCheckout={isFromCheckout}
136
+ isDisabledEdit={!cart?.business_id}
124
137
  />
125
138
  ))}
126
139
  </OSProductList>
@@ -156,9 +169,9 @@ const OrderSummaryUI = (props: any) => {
156
169
  <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_1' })}>
157
170
  <AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
158
171
  </TouchableOpacity>
159
- <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => onRemoveOffer(offer?.id)}>
160
- <AntIcon name='closecircle' size={16} color={theme.colors.primary} />
161
- </TouchableOpacity>
172
+ {!!offer?.id && (
173
+ <OfferAlert offerId={offer?.id} />
174
+ )}
162
175
  </OSRow>
163
176
  <OText size={12}>
164
177
  - {parsePrice(offer?.summary?.discount)}
@@ -166,7 +179,9 @@ const OrderSummaryUI = (props: any) => {
166
179
  </OSTable>
167
180
  ))
168
181
  }
169
- <Divider />
182
+ {cart?.business_id && (
183
+ <Divider />
184
+ )}
170
185
  {cart?.subtotal_with_discount > 0 && cart?.discount > 0 && cart?.total >= 0 && (
171
186
  <OSTable>
172
187
  <OText size={12} numberOfLines={1}>{t('SUBTOTAL_WITH_DISCOUNT', 'Subtotal with discount')}</OText>
@@ -194,8 +209,8 @@ const OrderSummaryUI = (props: any) => {
194
209
  ))
195
210
  }
196
211
  {
197
- cart?.fees?.length > 0 && cart?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0)).map((fee: any) => (
198
- <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}>
199
214
  <OSRow>
200
215
  <OText size={12} numberOfLines={1}>
201
216
  {fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}{' '}
@@ -220,9 +235,9 @@ const OrderSummaryUI = (props: any) => {
220
235
  <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_3' })}>
221
236
  <AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
222
237
  </TouchableOpacity>
223
- <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => onRemoveOffer(offer?.id)}>
224
- <AntIcon name='closecircle' size={16} color={theme.colors.primary} />
225
- </TouchableOpacity>
238
+ {!!offer?.id && (
239
+ <OfferAlert offerId={offer?.id} />
240
+ )}
226
241
  </OSRow>
227
242
  <OText size={12}>
228
243
  - {parsePrice(offer?.summary?.discount)}
@@ -230,10 +245,10 @@ const OrderSummaryUI = (props: any) => {
230
245
  </OSTable>
231
246
  ))
232
247
  }
233
- {orderState?.options?.type === 1 && cart?.delivery_price > 0 && (
248
+ {orderState?.options?.type === 1 && !hideDeliveryFee && (
234
249
  <OSTable>
235
250
  <OText size={12}>{t('DELIVERY_FEE', 'Delivery Fee')}</OText>
236
- <OText size={12}>{parsePrice(cart?.delivery_price)}</OText>
251
+ <OText size={12}>{parsePrice(cart?.delivery_price_with_discount)}</OText>
237
252
  </OSTable>
238
253
  )}
239
254
  {
@@ -247,9 +262,9 @@ const OrderSummaryUI = (props: any) => {
247
262
  <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_2' })}>
248
263
  <AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
249
264
  </TouchableOpacity>
250
- <TouchableOpacity style={{ marginLeft: 3 }} onPress={() => onRemoveOffer(offer?.id)}>
251
- <AntIcon name='closecircle' size={16} color={theme.colors.primary} />
252
- </TouchableOpacity>
265
+ {!!offer?.id && (
266
+ <OfferAlert offerId={offer?.id} />
267
+ )}
253
268
  </OSRow>
254
269
  <OText size={12}>
255
270
  - {parsePrice(offer?.summary?.discount)}
@@ -279,7 +294,7 @@ const OrderSummaryUI = (props: any) => {
279
294
  <OText size={12}>-{parsePrice(event.amount, { isTruncable: true })}</OText>
280
295
  </OSTable>
281
296
  ))}
282
- {isCouponEnabled && !isCartPending && (
297
+ {isCouponEnabled && !isCartPending && cart?.business_id && (
283
298
  <View>
284
299
  <View style={{ paddingVertical: 5 }}>
285
300
  <CouponControl
@@ -299,9 +314,16 @@ const OrderSummaryUI = (props: any) => {
299
314
  {parsePrice(cart?.balance >= 0 ? cart?.balance : 0)}
300
315
  </OText>
301
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
+ )}
302
324
  </View>
303
325
  )}
304
- {cart?.status !== 2 && (
326
+ {cart?.business_id && cart?.status !== 2 && !hideCartComments && (
305
327
  <OSTable>
306
328
  <View style={{ width: '100%', marginTop: 20 }}>
307
329
  <OText size={12}>{t('COMMENTS', 'Comments')}</OText>
@@ -336,6 +358,21 @@ const OrderSummaryUI = (props: any) => {
336
358
  )}
337
359
  </OSBill>
338
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
+ )}
339
376
  <OModal
340
377
  open={openTaxModal.open}
341
378
  onClose={() => setOpenTaxModal({ open: false, data: null, type: '' })}
@@ -349,14 +386,6 @@ const OrderSummaryUI = (props: any) => {
349
386
  products={cart?.products}
350
387
  />
351
388
  </OModal>
352
- <OAlert
353
- open={confirm.open}
354
- title={confirm.title}
355
- content={confirm.content}
356
- onAccept={confirm.handleOnAccept}
357
- onCancel={() => setConfirm({ ...confirm, open: false, title: null })}
358
- onClose={() => setConfirm({ ...confirm, open: false, title: null })}
359
- />
360
389
  </>
361
390
  )}
362
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 />