ordering-ui-react-native 0.17.87 → 0.17.88-release

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) 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 +33 -26
  15. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  16. package/themes/business/src/components/Chat/index.tsx +163 -123
  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/FloatingButton/index.tsx +34 -31
  20. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  21. package/themes/business/src/components/LoginForm/Otp/index.tsx +31 -3
  22. package/themes/business/src/components/LoginForm/index.tsx +15 -22
  23. package/themes/business/src/components/MapView/index.tsx +8 -8
  24. package/themes/business/src/components/MessagesOption/index.tsx +20 -93
  25. package/themes/business/src/components/NewOrderNotification/index.tsx +123 -96
  26. package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
  27. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  28. package/themes/business/src/components/OrderDetails/Delivery.tsx +202 -12
  29. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +84 -37
  30. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +81 -66
  31. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +200 -0
  32. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  33. package/themes/business/src/components/OrderMessage/index.tsx +19 -18
  34. package/themes/business/src/components/OrderSummary/index.tsx +114 -123
  35. package/themes/business/src/components/OrdersOption/index.tsx +22 -22
  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 +17 -12
  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 +198 -221
  42. package/themes/business/src/components/ProductItemAccordion/index.tsx +7 -1
  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/OModal.tsx +16 -9
  47. package/themes/business/src/types/index.tsx +25 -10
  48. package/themes/business/src/utils/index.tsx +29 -2
  49. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  50. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  51. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  52. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  53. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  54. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -9
  55. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  56. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  57. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  58. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  59. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  60. package/themes/original/index.tsx +1 -1
  61. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  62. package/themes/original/src/components/AddressForm/index.tsx +35 -17
  63. package/themes/original/src/components/AddressList/index.tsx +5 -8
  64. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  65. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  66. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  67. package/themes/original/src/components/BusinessBasicInformation/index.tsx +73 -37
  68. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
  69. package/themes/original/src/components/BusinessController/index.tsx +35 -44
  70. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  71. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  72. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  73. package/themes/original/src/components/BusinessInformation/index.tsx +140 -85
  74. package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
  75. package/themes/original/src/components/BusinessListingSearch/index.tsx +347 -336
  76. package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -18
  77. package/themes/original/src/components/BusinessPreorder/index.tsx +103 -19
  78. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -2
  79. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  80. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  81. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  82. package/themes/original/src/components/BusinessProductsListing/index.tsx +663 -556
  83. package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -3
  84. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  85. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  86. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  87. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  88. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +38 -405
  89. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  90. package/themes/original/src/components/Cart/index.tsx +60 -51
  91. package/themes/original/src/components/CartContent/index.tsx +102 -58
  92. package/themes/original/src/components/CartContent/styles.tsx +6 -6
  93. package/themes/original/src/components/Checkout/index.tsx +280 -35
  94. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  95. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  96. package/themes/original/src/components/DriverTips/index.tsx +52 -34
  97. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  98. package/themes/original/src/components/Favorite/index.tsx +1 -5
  99. package/themes/original/src/components/GPSButton/index.tsx +6 -4
  100. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  101. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +42 -5
  102. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +2 -0
  103. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +86 -10
  104. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  105. package/themes/original/src/components/GoogleMap/index.tsx +63 -7
  106. package/themes/original/src/components/Home/index.tsx +13 -4
  107. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  108. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  109. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  110. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  111. package/themes/original/src/components/LottieAnimation/index.tsx +88 -63
  112. package/themes/original/src/components/MessageListing/index.tsx +9 -2
  113. package/themes/original/src/components/Messages/index.tsx +15 -4
  114. package/themes/original/src/components/MomentOption/index.tsx +193 -92
  115. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  116. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +162 -50
  117. package/themes/original/src/components/MultiCheckout/index.tsx +385 -52
  118. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  119. package/themes/original/src/components/MultiOrdersDetails/index.tsx +23 -19
  120. package/themes/original/src/components/MyOrders/index.tsx +25 -16
  121. package/themes/original/src/components/NavBar/index.tsx +20 -13
  122. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  123. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  124. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +21 -5
  125. package/themes/original/src/components/OrderDetails/index.tsx +50 -38
  126. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  127. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  128. package/themes/original/src/components/OrderProgress/index.tsx +34 -25
  129. package/themes/original/src/components/OrderSummary/index.tsx +83 -57
  130. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  131. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
  132. package/themes/original/src/components/OrdersOption/index.tsx +59 -46
  133. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  134. package/themes/original/src/components/PageBanner/index.tsx +65 -29
  135. package/themes/original/src/components/PageBanner/styles.tsx +0 -3
  136. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  137. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  138. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  139. package/themes/original/src/components/PaymentOptions/index.tsx +100 -34
  140. package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
  141. package/themes/original/src/components/ProductForm/index.tsx +88 -31
  142. package/themes/original/src/components/ProductForm/styles.tsx +3 -3
  143. package/themes/original/src/components/ProductItemAccordion/index.tsx +8 -6
  144. package/themes/original/src/components/ProductOptionSubOption/index.tsx +49 -20
  145. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +10 -9
  146. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  147. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
  148. package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
  149. package/themes/original/src/components/Promotions/index.tsx +2 -2
  150. package/themes/original/src/components/Promotions/styles.tsx +3 -1
  151. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  152. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  153. package/themes/original/src/components/ServiceForm/index.tsx +63 -20
  154. package/themes/original/src/components/Sessions/styles.tsx +1 -0
  155. package/themes/original/src/components/SignupForm/index.tsx +43 -27
  156. package/themes/original/src/components/SingleOrderCard/index.tsx +42 -19
  157. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  158. package/themes/original/src/components/SingleProductCard/index.tsx +37 -26
  159. package/themes/original/src/components/SingleProductCard/styles.tsx +9 -3
  160. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  161. package/themes/original/src/components/StripeCardsList/index.tsx +61 -5
  162. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  163. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  164. package/themes/original/src/components/UpsellingProducts/index.tsx +5 -10
  165. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  166. package/themes/original/src/components/UserFormDetails/index.tsx +78 -9
  167. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  168. package/themes/original/src/components/UserProfile/index.tsx +8 -26
  169. package/themes/original/src/components/UserProfileForm/index.tsx +30 -31
  170. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  171. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  172. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  173. package/themes/original/src/components/Wallets/index.tsx +52 -62
  174. package/themes/original/src/components/Wallets/styles.tsx +2 -4
  175. package/themes/original/src/components/shared/OButton.tsx +3 -3
  176. package/themes/original/src/components/shared/OInput.tsx +4 -5
  177. package/themes/original/src/components/shared/OModal.tsx +3 -3
  178. package/themes/original/src/types/index.tsx +37 -10
  179. package/themes/original/src/utils/index.tsx +185 -13
  180. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  181. package/src/navigators/BottomNavigator.tsx +0 -117
  182. package/src/navigators/CheckoutNavigator.tsx +0 -66
  183. package/src/navigators/HomeNavigator.tsx +0 -202
  184. package/src/navigators/NavigationRef.tsx +0 -7
  185. package/src/navigators/RootNavigator.tsx +0 -269
  186. package/src/pages/Account.tsx +0 -34
  187. package/src/pages/AddressForm.tsx +0 -62
  188. package/src/pages/AddressList.tsx +0 -24
  189. package/src/pages/BusinessProductsList.tsx +0 -81
  190. package/src/pages/BusinessesListing.tsx +0 -43
  191. package/src/pages/CartList.tsx +0 -49
  192. package/src/pages/Checkout.tsx +0 -101
  193. package/src/pages/ForgotPassword.tsx +0 -24
  194. package/src/pages/Help.tsx +0 -23
  195. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  196. package/src/pages/HelpGuide.tsx +0 -23
  197. package/src/pages/HelpOrder.tsx +0 -23
  198. package/src/pages/Home.tsx +0 -36
  199. package/src/pages/IntroductoryTutorial.tsx +0 -170
  200. package/src/pages/Login.tsx +0 -47
  201. package/src/pages/MomentOption.tsx +0 -30
  202. package/src/pages/MultiCheckout.tsx +0 -31
  203. package/src/pages/MultiOrdersDetails.tsx +0 -27
  204. package/src/pages/MyOrders.tsx +0 -40
  205. package/src/pages/NetworkError.tsx +0 -24
  206. package/src/pages/NotFound.tsx +0 -22
  207. package/src/pages/OrderDetails.tsx +0 -25
  208. package/src/pages/ProductDetails.tsx +0 -55
  209. package/src/pages/Profile.tsx +0 -36
  210. package/src/pages/ReviewDriver.tsx +0 -30
  211. package/src/pages/ReviewOrder.tsx +0 -32
  212. package/src/pages/ReviewProducts.tsx +0 -30
  213. package/src/pages/Sessions.tsx +0 -22
  214. package/src/pages/Signup.tsx +0 -53
  215. package/src/pages/SpinnerLoader.tsx +0 -10
  216. 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,7 +22,7 @@ import {
20
22
  OrderInfoWrapper,
21
23
  OrderProgressWrapper
22
24
  } from './styles'
23
- import { getOrderStatus } from '../../utils'
25
+ import { getOrderStatuPickUp, getOrderStatus } from '../../utils'
24
26
 
25
27
  const OrderProgressUI = (props: any) => {
26
28
  const {
@@ -33,10 +35,12 @@ const OrderProgressUI = (props: any) => {
33
35
  const theme = useTheme();
34
36
 
35
37
  const [, t] = useLanguage()
36
- const [{ optimizeImage, parseDate, parseTime }] = useUtils()
38
+ const [{ optimizeImage, parseTime, parseDate }] = useUtils()
39
+ const [{ configs }] = useConfig()
37
40
  const [lastOrder, setLastOrder] = useState<any>(null)
38
41
  const imageFails = theme.images.general.emptyActiveOrders
39
42
  const [initialLoaded, setInitialLoaded] = useState(false)
43
+ const statusToShow = [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23]
40
44
 
41
45
  const styles = StyleSheet.create({
42
46
  main: {
@@ -76,15 +80,6 @@ const OrderProgressUI = (props: any) => {
76
80
  }
77
81
  });
78
82
 
79
- const convertDiffToHours = (order: any) => {
80
- const minute = order?.eta_time
81
- const deliveryTime = order?.delivery_datetime_utc
82
- ? parseDate(order?.delivery_datetime_utc, { outputFormat: 'YYYY-MM-DD HH:mm' })
83
- : parseDate(order?.delivery_datetime, { utc: false, outputFormat: 'YYYY-MM-DD HH:mm' })
84
- const returnedDate = moment(deliveryTime).add(minute, 'minutes').format('hh:mm A')
85
- return returnedDate
86
- }
87
-
88
83
  const handleGoToOrder = (index: string) => {
89
84
  navigation && navigation.navigate(index)
90
85
  }
@@ -92,7 +87,15 @@ const OrderProgressUI = (props: any) => {
92
87
  useEffect(() => {
93
88
  if (orderList?.orders.length > 0) {
94
89
  const sortedOrders = orderList.orders.sort((a: any, b: any) => a.id > b.id ? -1 : 1)
95
- 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)
96
99
  }
97
100
  }, [orderList?.orders])
98
101
 
@@ -107,6 +110,8 @@ const OrderProgressUI = (props: any) => {
107
110
  setInitialLoaded(true)
108
111
  }, [orderList.loading, initialLoaded])
109
112
 
113
+ const progressBarObjt = lastOrder?.delivery_type && lastOrder?.delivery_type === 2 ? getOrderStatuPickUp : getOrderStatus
114
+
110
115
  return (
111
116
  <>
112
117
  {(orderList?.loading && !initialLoaded) && (
@@ -125,11 +130,11 @@ const OrderProgressUI = (props: any) => {
125
130
  <View style={styles.logoWrapper}>
126
131
  <FastImage
127
132
  style={{ width: 50, height: 50 }}
128
- source={{
133
+ source={orderList?.orders.length === 1 ? {
129
134
  uri: optimizeImage(lastOrder?.business?.logo, 'h_50,c_limit'),
130
135
  priority: FastImage.priority.normal,
131
- }}
132
- resizeMode={FastImage.resizeMode.cover}
136
+ } : theme.images.logos.logotype}
137
+ resizeMode={FastImage.resizeMode.contain}
133
138
  />
134
139
  </View>
135
140
  <View style={{
@@ -143,8 +148,7 @@ const OrderProgressUI = (props: any) => {
143
148
  fontWeight: 'bold',
144
149
  marginBottom: 3
145
150
  }}
146
- >{t('ORDER_IN_PROGRESS', 'Order in progress')}</OText>
147
- <OText size={11} numberOfLines={1} ellipsizeMode='tail'>{t('RESTAURANT_PREPARING_YOUR_ORDER', 'The restaurant is preparing your order')}</OText>
151
+ >{statusToShow.includes(lastOrder?.status) ? t('ORDER_IN_PROGRESS', 'Order in progress') : t('ORDER', 'Order')}</OText>
148
152
  <TouchableOpacity onPress={() => handleGoToOrder('MyOrders')}>
149
153
  <View style={styles.navigationButton}>
150
154
  <OText size={11} color={theme.colors.primary}>{t('GO_TO_MY_ORDERS', 'Go to my orders')}</OText>
@@ -160,18 +164,22 @@ const OrderProgressUI = (props: any) => {
160
164
  </OrderInfoWrapper>
161
165
  <View style={{ flex: 1 }}>
162
166
  <ProgressContentWrapper>
163
- <ProgressBar style={{ width: getOrderStatus(lastOrder.status)?.percentage ? `${getOrderStatus(lastOrder.status)?.percentage}%` : '0%' }} />
167
+ <ProgressBar style={{ width: progressBarObjt(lastOrder.status)?.percentage ? `${(progressBarObjt(lastOrder.status) as any).percentage * 100}%` : '0%' }} />
164
168
  </ProgressContentWrapper>
165
169
  <ProgressTextWrapper>
166
- <OText size={12} style={{ width: '50%' }}>{getOrderStatus(lastOrder.status)?.value}</OText>
170
+ <OText size={12} style={{ width: '50%' }}>{progressBarObjt(lastOrder.status)?.value}</OText>
167
171
  <TimeWrapper>
168
- <OText size={11}>{t('ESTIMATED_DELIVERY', 'Estimated delivery')}</OText>
172
+ <OText size={11}>{lastOrder?.delivery_type === 1 ? t('ESTIMATED_DELIVERY', 'Estimated delivery') : t('ESTIMATED_TIME', 'Estimated time')}</OText>
169
173
  <OText size={11}>
170
174
  {lastOrder?.delivery_datetime_utc
171
- ? parseTime(lastOrder?.delivery_datetime_utc, { outputFormat: 'hh:mm A' })
175
+ ? parseTime(lastOrder?.delivery_datetime_utc, { outputFormat: configs?.general_hour_format?.value || 'HH:mm' })
172
176
  : parseTime(lastOrder?.delivery_datetime, { utc: false })}
173
177
  &nbsp;-&nbsp;
174
- {convertDiffToHours(lastOrder)}
178
+ {statusToShow.includes(lastOrder?.status) ? (
179
+ <OrderEta order={lastOrder} outputFormat={configs?.general_hour_format?.value || 'HH:mm'} />
180
+ ) : (
181
+ parseDate(lastOrder?.reporting_data?.at[`status:${lastOrder.status}`], { outputFormat: configs?.general_hour_format?.value })
182
+ )}
175
183
  </OText>
176
184
  </TimeWrapper>
177
185
  </ProgressTextWrapper>
@@ -198,9 +206,10 @@ export const OrderProgress = (props: any) => {
198
206
  useDefualtSessionManager: true,
199
207
  paginationSettings: {
200
208
  initialPage: 1,
201
- pageSize: 1,
209
+ pageSize: 10,
202
210
  controlType: 'infinity'
203
- }
211
+ },
212
+ noGiftCardOrders: true
204
213
  }
205
214
 
206
215
  return <OrderList {...orderProgressProps} />
@@ -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>
@@ -31,14 +31,12 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
31
31
  const [orderState] = useOrder();
32
32
  const [, t] = useLanguage();
33
33
  const _orderTypes = orderTypes.filter((type: any) => configTypes?.includes(type.value));
34
- const orderTypeTitle = (type : string) => theme?.header?.components?.order_types?.components?.[type]?.components?.title
35
- const orderTypeDescription = (type : string) => theme?.header?.components?.order_types?.components?.[type]?.components?.description
36
- const orderTypeCallAction = (type : string) => theme?.header?.components?.order_types?.components?.[type]?.components?.call_to_action
34
+
37
35
  const items = _orderTypes.map((type) => {
38
36
  return {
39
37
  value: type.value,
40
- label: orderTypeTitle(type.value) || t(type.content, type.content),
41
- description: orderTypeDescription(type.value) || t(type.description, 'Lorem ipsum dolor sit amet, consectetur.')
38
+ label: t(type.content, type.content),
39
+ description: t(type.description, 'Lorem ipsum dolor sit amet, consectetur.')
42
40
  }
43
41
  })
44
42
 
@@ -102,6 +100,7 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
102
100
  style={{ paddingBottom: 0 }}
103
101
  title={t('HOW_WILL_YOU_DELIVERY_TYPE', 'How will your order type?')}
104
102
  titleAlign={'center'}
103
+ titleStyle={{ fontSize: 14 }}
105
104
  noMargin
106
105
  />
107
106
  {
@@ -115,7 +114,7 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
115
114
  <OText size={12} lineHeight={18} color={theme.colors.white} weight={Platform.OS === 'android' ? 'bold' : '600'}>{item?.label}</OText>
116
115
  <OText size={10} lineHeight={15} color={theme.colors.white}>{item?.description}</OText>
117
116
  <View style={{ flexDirection: 'row', alignItems: 'center' }}>
118
- <OText size={10} lineHeight={15} color={theme.colors.white}>{orderTypeCallAction(item?.value) || t('START_MY_ORDER', 'Start my order')}</OText>
117
+ <OText size={10} lineHeight={15} color={theme.colors.white}>{t('START_MY_ORDER', 'Start my order')}</OText>
119
118
  <AntDesignIcon name='arrowleft' size={26} color={theme.colors.white} style={{ transform: [{ rotate: '180deg' }], marginStart: 4 }} />
120
119
  </View>
121
120
  </MaskCont>
@@ -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 />
@@ -3,7 +3,6 @@ import { OrderList, useLanguage, useOrder, ToastType, useToast } from 'ordering-
3
3
  import { useTheme } from 'styled-components/native';
4
4
  import { useFocusEffect } from '@react-navigation/native'
5
5
  import { OText, OButton } from '../shared'
6
- import { NotFoundSource } from '../NotFoundSource'
7
6
  import { ActiveOrders } from '../ActiveOrders'
8
7
  import { PreviousOrders } from '../PreviousOrders'
9
8
  import { PreviousBusinessOrdered } from './PreviousBusinessOrdered'
@@ -11,6 +10,7 @@ import { PreviousProductsOrdered } from './PreviousProductsOrdered'
11
10
  import { OptionTitle, NoOrdersWrapper } from './styles'
12
11
  import { OrdersOptionParams } from '../../types'
13
12
  import { _setStoreData } from '../../providers/StoreUtil';
13
+ import { NotFoundSource } from '../NotFoundSource';
14
14
  import {
15
15
  Placeholder,
16
16
  PlaceholderLine,
@@ -18,7 +18,7 @@ import {
18
18
  } from "rn-placeholder";
19
19
 
20
20
  import { View, ScrollView } from 'react-native'
21
- import { getOrderStatus } from '../../utils'
21
+ import { getOrderStatus, flatArray } from '../../utils'
22
22
 
23
23
  const OrdersOptionUI = (props: OrdersOptionParams) => {
24
24
  const {
@@ -51,7 +51,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
51
51
  businesses,
52
52
  businessPaginationProps,
53
53
  handleUpdateProducts,
54
- handleUpdateBusinesses
54
+ handleUpdateBusinesses,
55
+ businessId
55
56
  } = props
56
57
 
57
58
  const theme = useTheme();
@@ -70,23 +71,25 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
70
71
  const _orders = customArray || values || []
71
72
  const uniqueOrders: any = []
72
73
 
73
-
74
74
  useEffect(() => {
75
75
  if (loading || error) return
76
76
  const ordersReduced = _orders.map((order: any) => order?.cart_group_id
77
- ? _orders
78
- ?.filter((_order : any) => _order?.cart_group_id === order?.cart_group_id)
79
- ?.reduce((orderCompleted : any, currentOrder : any) => ({
80
- ...orderCompleted,
81
- total: orderCompleted.summary?.total + currentOrder?.summary?.total,
82
- business: [orderCompleted.business, currentOrder.business].flat(),
83
- business_id: [orderCompleted.business_id, currentOrder.business_id].flat(),
84
- id: [orderCompleted.id, currentOrder.id].flat(),
85
- review: orderCompleted.review && currentOrder.review,
86
- user_review: orderCompleted.user_review && currentOrder.user_review,
87
- products: [orderCompleted.products, currentOrder.products].flat()
88
- }))
89
- : order)
77
+ ? _orders
78
+ .filter((_order: any) => _order?.cart_group_id === order?.cart_group_id)
79
+ .map((_o: any, _: any, _ordersList: any) => {
80
+ const obj = {
81
+ ..._o,
82
+ id: _ordersList.map(o => o.id),
83
+ review: _o.review,
84
+ user_review: _o.user_review,
85
+ total: _ordersList.reduce((acc: any, o: any) => acc + o.summary.total, 0),
86
+ business: _ordersList.map((o: any) => o.business),
87
+ business_id: _ordersList.map((o: any) => o.business_id),
88
+ products: _ordersList.map((o: any) => o.products)
89
+ }
90
+ return obj
91
+ }).find((o: any) => o)
92
+ : order)
90
93
  const orders = ordersReduced?.filter((order: any) => {
91
94
  if (!order?.cart_group_id) return true
92
95
  const isDuplicate = uniqueOrders.includes(order?.cart_group_id)
@@ -97,7 +100,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
97
100
  return false
98
101
  })
99
102
  setOrders(orders)
100
- }, [_orders?.length])
103
+ }, [JSON.stringify(_orders)])
101
104
 
102
105
  const onProductClick = (product: any) => {
103
106
  if (product?.product_id && product?.category_id && product?.businessId &&
@@ -119,6 +122,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
119
122
  }
120
123
 
121
124
  useEffect(() => {
125
+ if (reorderState?.loading) return
122
126
  const _businessId = 'businessId:' + reorderState?.result?.business_id
123
127
  if (reorderState?.error) {
124
128
  if (reorderState?.result?.business_id) {
@@ -126,21 +130,39 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
126
130
  navigation.navigate('Business', { store: reorderState?.result?.business?.slug })
127
131
  }
128
132
  }
129
- if (!reorderState?.error && reorderState.loading === false && reorderState?.result?.business_id) {
133
+ if (!reorderState?.error && !reorderState.loading && reorderState?.result?.business_id) {
130
134
  const cartProducts = carts?.[_businessId]?.products
131
- const available = cartProducts.every((product: any) => product.valid === true)
132
- const orderProducts = orders.find((order: any) => order?.id === reorderState?.result?.orderId)?.products
133
135
 
134
- if (available && reorderState?.result?.uuid && (cartProducts?.length === orderProducts?.length)) {
135
- onNavigationRedirect && onNavigationRedirect('CheckoutNavigator', { cartUuid: reorderState?.result.uuid })
136
+ const available = cartProducts.every((product: any) => product.valid)
137
+ const orderProducts = orders.find(
138
+ (order: any) => Array.isArray(order?.id)
139
+ ? order?.id?.includes(reorderState?.result?.orderId)
140
+ : order?.id === reorderState?.result?.orderId
141
+ )?.products
142
+
143
+ const productsFlatten = orderProducts?.length && flatArray(orderProducts)?.filter(product => product?.order_id === reorderState?.result?.orderId)
144
+
145
+ if (available && reorderState?.result?.uuid && (cartProducts?.length === productsFlatten?.length)) {
146
+ const multiOrders = flatArray(orderProducts)?.map(product => product.order_id)
147
+ const params = multiOrders?.length > 1
148
+ ? { screen: 'MultiCheckout', checkCarts: true }
149
+ : { cartUuid: reorderState?.result.uuid }
150
+
151
+ onNavigationRedirect && onNavigationRedirect('CheckoutNavigator', params)
136
152
  } else {
137
153
  _setStoreData('adjust-cart-products', JSON.stringify(_businessId))
138
- cartProducts?.length !== orderProducts?.length && _setStoreData('already-removed', JSON.stringify('removed'))
154
+ cartProducts?.length !== productsFlatten?.length && _setStoreData('already-removed', JSON.stringify('removed'))
139
155
  navigation.navigate('Business', { store: reorderState?.result?.business?.slug })
140
156
  }
141
157
  }
142
158
  }, [reorderState])
143
159
 
160
+ useEffect(() => {
161
+ if (reorderState?.error) {
162
+ showToast(ToastType.Error, reorderState?.result)
163
+ }
164
+ }, [reorderState])
165
+
144
166
  useFocusEffect(
145
167
  React.useCallback(() => {
146
168
  if (!businessesSearchList) {
@@ -165,6 +187,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
165
187
  setOrdersLength && setOrdersLength({ ...ordersLength, activeOrdersLength: updateOrders?.length })
166
188
  } else if (!preOrders) {
167
189
  setOrdersLength && setOrdersLength({ ...ordersLength, previousOrdersLength: updateOrders?.length })
190
+ } else {
191
+ setOrdersLength && setOrdersLength({ ...ordersLength, preordersLength: updateOrders?.length })
168
192
  }
169
193
  }, [_orders, activeOrders, preOrders])
170
194
 
@@ -177,21 +201,21 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
177
201
 
178
202
  return (
179
203
  <>
180
- {!loading && ordersLength.activeOrdersLength === 0 && ordersLength.previousOrdersLength === 0 && !activeOrders && (
204
+ {!loading && ordersLength.activeOrdersLength === 0 && ordersLength.previousOrdersLength === 0 && ordersLength?.preordersLength === 0 && !activeOrders && !preOrders && (
181
205
  <NoOrdersWrapper>
182
- <OText size={14} numberOfLines={1}>
183
- {t('YOU_DONT_HAVE_ORDERS', 'You don\'t have any orders')}
184
- </OText>
185
- <OButton
186
- text={t('ORDER_NOW', 'Order now')}
187
- onClick={() => onNavigationRedirect && onNavigationRedirect('BusinessList')}
188
- textStyle={{ color: 'white', fontSize: 14 }}
189
- style={{ borderRadius: 7.6, marginBottom: 10, marginTop: 10, height: 44, paddingLeft: 10, paddingRight: 10 }}
206
+ <NotFoundSource
207
+ hideImage
208
+ btnStyle={{ borderRadius: 8 }}
209
+ content={t('YOU_DONT_HAVE_ORDERS', 'You don\'t have any orders')}
210
+ btnTitle={t('ORDER_NOW', 'Order now')}
211
+ onClickButton={() => onNavigationRedirect && (businessId ? onNavigationRedirect('Business') : onNavigationRedirect('BusinessList'))}
190
212
  />
191
-
192
213
  </NoOrdersWrapper>
193
214
  )}
194
- {(ordersLength?.activeOrdersLength > 0 || ordersLength?.previousOrdersLength > 0) && (
215
+ {((ordersLength?.activeOrdersLength > 0 && activeOrders) ||
216
+ (ordersLength?.previousOrdersLength > 0 && !activeOrders && !preOrders) ||
217
+ (ordersLength?.preordersLength > 0 && preOrders)
218
+ ) && (
195
219
  <>
196
220
  {((titleContent && ((isBusiness && businessOrderIds?.length > 0) || isProducts)) || !titleContent) && (
197
221
  <OptionTitle titleContent={!!titleContent} isBusinessesSearchList={!!businessesSearchList}>
@@ -204,17 +228,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
204
228
  </OText>
205
229
  </OptionTitle>
206
230
  )}
207
-
208
- {!(ordersLength?.activeOrdersLength === 0 && ordersLength?.previousOrdersLength === 0) &&
209
- !loading &&
210
- orders.filter((order: any) => orderStatus.includes(order.status)).length === 0 &&
211
- (
212
- <NotFoundSource
213
- content={t('NO_RESULTS_FOUND', 'Sorry, no results found')}
214
- image={imageFails}
215
- conditioned
216
- />
217
- )}
218
231
  </>
219
232
  )}
220
233
  {isBusiness && !!businessesSearchList && businesses?.loading && (
@@ -10,5 +10,5 @@ export const OptionTitle = styled.View`
10
10
  export const NoOrdersWrapper = styled.View`
11
11
  flex-direction: column;
12
12
  align-items: center;
13
- margin-top: 50px;
13
+ margin-top: 60px;
14
14
  `