ordering-ui-react-native 0.16.75 → 0.16.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 (216) hide show
  1. package/package.json +6 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/styles.tsx +8 -14
  4. package/src/components/BusinessInformation/index.tsx +19 -4
  5. package/src/components/BusinessInformation/styles.tsx +2 -2
  6. package/src/components/BusinessProductsList/index.tsx +10 -10
  7. package/src/components/BusinessesListing/index.tsx +1 -1
  8. package/src/components/LanguageSelector/index.tsx +21 -16
  9. package/src/components/Messages/index.tsx +2 -2
  10. package/src/components/OrderCreating/index.tsx +2 -2
  11. package/src/components/OrdersOption/index.tsx +54 -56
  12. package/src/components/PaymentOptions/index.tsx +298 -347
  13. package/src/components/PaymentOptionsWebView/index.tsx +119 -120
  14. package/src/components/SingleProductReview/index.tsx +7 -4
  15. package/src/components/VerifyPhone/styles.tsx +1 -2
  16. package/src/components/shared/OToast.tsx +4 -4
  17. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  18. package/src/utils/index.tsx +2 -1
  19. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +260 -238
  20. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  21. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  22. package/themes/business/src/components/Chat/index.tsx +31 -31
  23. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  24. package/themes/business/src/components/LoginForm/Otp/index.tsx +120 -0
  25. package/themes/business/src/components/LoginForm/Otp/styles.tsx +7 -0
  26. package/themes/business/src/components/LoginForm/index.tsx +332 -140
  27. package/themes/business/src/components/LoginForm/styles.tsx +10 -0
  28. package/themes/business/src/components/MapView/index.tsx +14 -3
  29. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  30. package/themes/business/src/components/NewOrderNotification/index.tsx +31 -41
  31. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +70 -43
  32. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +3 -3
  33. package/themes/business/src/components/OrdersOption/index.tsx +63 -73
  34. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  35. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  36. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  37. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  38. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  39. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  40. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  41. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  42. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  43. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
  44. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  45. package/themes/business/src/components/PreviousOrders/index.tsx +440 -245
  46. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  47. package/themes/business/src/components/ProductItemAccordion/index.tsx +24 -5
  48. package/themes/business/src/components/ReviewCustomer/index.tsx +39 -15
  49. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  50. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  51. package/themes/business/src/components/shared/OLink.tsx +33 -13
  52. package/themes/business/src/components/shared/OText.tsx +8 -2
  53. package/themes/business/src/types/index.tsx +29 -3
  54. package/themes/business/src/utils/index.tsx +26 -0
  55. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  56. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  57. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  58. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  59. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  60. package/themes/kiosk/src/components/LoginForm/Otp/index.tsx +92 -0
  61. package/themes/kiosk/src/components/LoginForm/Otp/styles.tsx +7 -0
  62. package/themes/kiosk/src/components/LoginForm/index.tsx +545 -112
  63. package/themes/kiosk/src/components/LoginForm/styles.tsx +18 -0
  64. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  65. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  66. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  67. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +1 -0
  68. package/themes/kiosk/src/components/PhoneInputNumber/styles.tsx +1 -3
  69. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  70. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  71. package/themes/kiosk/src/components/shared/OModal.tsx +14 -11
  72. package/themes/kiosk/src/layouts/Container.tsx +7 -1
  73. package/themes/kiosk/src/types/index.d.ts +15 -0
  74. package/themes/kiosk/src/utils/index.tsx +15 -0
  75. package/themes/original/index.tsx +8 -0
  76. package/themes/original/src/components/AddressDetails/index.tsx +10 -8
  77. package/themes/original/src/components/AddressForm/index.tsx +155 -139
  78. package/themes/original/src/components/AddressList/index.tsx +18 -18
  79. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  80. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  81. package/themes/original/src/components/BusinessBasicInformation/index.tsx +47 -22
  82. package/themes/original/src/components/BusinessController/index.tsx +101 -70
  83. package/themes/original/src/components/BusinessController/styles.tsx +14 -9
  84. package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
  85. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -6
  86. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  87. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  88. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  89. package/themes/original/src/components/BusinessListingSearch/index.tsx +104 -155
  90. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  91. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  92. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  93. package/themes/original/src/components/BusinessProductsList/index.tsx +26 -52
  94. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  95. package/themes/original/src/components/BusinessProductsListing/index.tsx +563 -493
  96. package/themes/original/src/components/BusinessProductsListing/styles.tsx +13 -12
  97. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
  98. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  99. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +116 -81
  100. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
  101. package/themes/original/src/components/BusinessesListing/index.tsx +7 -6
  102. package/themes/original/src/components/Cart/index.tsx +75 -40
  103. package/themes/original/src/components/CartContent/index.tsx +80 -18
  104. package/themes/original/src/components/CartContent/styles.tsx +11 -1
  105. package/themes/original/src/components/Checkout/index.tsx +102 -108
  106. package/themes/original/src/components/Checkout/styles.tsx +4 -3
  107. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  108. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  109. package/themes/original/src/components/DriverTips/index.tsx +47 -37
  110. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  111. package/themes/original/src/components/Favorite/index.tsx +7 -4
  112. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  113. package/themes/original/src/components/FavoriteList/index.tsx +70 -80
  114. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  115. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  116. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  117. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  118. package/themes/original/src/components/GoogleMap/index.tsx +10 -1
  119. package/themes/original/src/components/Help/index.tsx +8 -8
  120. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +14 -20
  121. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
  122. package/themes/original/src/components/HelpGuide/index.tsx +13 -12
  123. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  124. package/themes/original/src/components/HelpOrder/index.tsx +12 -20
  125. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  126. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  127. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  128. package/themes/original/src/components/LoginForm/Otp/index.tsx +89 -73
  129. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  130. package/themes/original/src/components/LoginForm/index.tsx +98 -41
  131. package/themes/original/src/components/LottieAnimation/index.tsx +78 -0
  132. package/themes/original/src/components/MessageListing/index.tsx +7 -40
  133. package/themes/original/src/components/Messages/index.tsx +42 -26
  134. package/themes/original/src/components/MomentOption/index.tsx +23 -14
  135. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  136. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -93
  137. package/themes/original/src/components/MultiCheckout/index.tsx +158 -77
  138. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  139. package/themes/original/src/components/MultiOrdersDetails/index.tsx +85 -34
  140. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  141. package/themes/original/src/components/MyOrders/index.tsx +66 -17
  142. package/themes/original/src/components/NavBar/index.tsx +7 -6
  143. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  144. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  145. package/themes/original/src/components/Notifications/index.tsx +144 -0
  146. package/themes/original/src/components/Notifications/styles.tsx +20 -0
  147. package/themes/original/src/components/OrderDetails/index.tsx +108 -218
  148. package/themes/original/src/components/OrderDetails/styles.tsx +10 -1
  149. package/themes/original/src/components/OrderItAgain/index.tsx +46 -43
  150. package/themes/original/src/components/OrderProgress/index.tsx +81 -105
  151. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  152. package/themes/original/src/components/OrderSummary/index.tsx +2 -2
  153. package/themes/original/src/components/OrderTypeSelector/index.tsx +13 -6
  154. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +93 -97
  155. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  156. package/themes/original/src/components/OrdersOption/index.tsx +86 -92
  157. package/themes/original/src/components/PageBanner/index.tsx +146 -0
  158. package/themes/original/src/components/PageBanner/styles.tsx +11 -0
  159. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  160. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  161. package/themes/original/src/components/PaymentOptions/index.tsx +1 -1
  162. package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
  163. package/themes/original/src/components/PlaceSpot/index.tsx +16 -6
  164. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  165. package/themes/original/src/components/ProductForm/index.tsx +240 -254
  166. package/themes/original/src/components/ProductForm/styles.tsx +5 -8
  167. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  168. package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -10
  169. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +1 -2
  170. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  171. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -49
  172. package/themes/original/src/components/ProfessionalProfile/index.tsx +20 -9
  173. package/themes/original/src/components/Promotions/index.tsx +234 -220
  174. package/themes/original/src/components/Promotions/styles.tsx +7 -2
  175. package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
  176. package/themes/original/src/components/ReviewOrder/index.tsx +43 -11
  177. package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
  178. package/themes/original/src/components/ReviewProducts/index.tsx +8 -5
  179. package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
  180. package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
  181. package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
  182. package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
  183. package/themes/original/src/components/ServiceForm/index.tsx +360 -265
  184. package/themes/original/src/components/Sessions/index.tsx +11 -8
  185. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  186. package/themes/original/src/components/SignupForm/index.tsx +150 -100
  187. package/themes/original/src/components/SingleOrderCard/index.tsx +125 -56
  188. package/themes/original/src/components/SingleOrderCard/styles.tsx +10 -8
  189. package/themes/original/src/components/SingleProductCard/index.tsx +116 -79
  190. package/themes/original/src/components/SingleProductCard/styles.tsx +14 -13
  191. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  192. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  193. package/themes/original/src/components/StripeCardsList/index.tsx +1 -1
  194. package/themes/original/src/components/StripeElementsForm/index.tsx +3 -0
  195. package/themes/original/src/components/UpsellingProducts/index.tsx +244 -215
  196. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  197. package/themes/original/src/components/UserDetails/index.tsx +5 -3
  198. package/themes/original/src/components/UserFormDetails/index.tsx +50 -54
  199. package/themes/original/src/components/UserProfile/index.tsx +58 -35
  200. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  201. package/themes/original/src/components/UserProfileForm/index.tsx +21 -28
  202. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  203. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  204. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  205. package/themes/original/src/components/Wallets/index.tsx +177 -164
  206. package/themes/original/src/components/Wallets/styles.tsx +12 -8
  207. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  208. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  209. package/themes/original/src/components/shared/OBottomPopup.tsx +6 -4
  210. package/themes/original/src/components/shared/OButton.tsx +9 -4
  211. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  212. package/themes/original/src/components/shared/OInput.tsx +10 -1
  213. package/themes/original/src/layouts/Container.tsx +13 -9
  214. package/themes/original/src/types/index.tsx +42 -7
  215. package/themes/original/src/utils/index.tsx +322 -58
  216. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,4 +1,4 @@
1
- import React, { useState, useEffect } from 'react';
1
+ import React, { useState, useEffect, useMemo } from 'react';
2
2
  import { View, StyleSheet, BackHandler, Platform, Linking, RefreshControl } from 'react-native';
3
3
  import LinearGradient from 'react-native-linear-gradient';
4
4
  import { _setStoreData } from '../../providers/StoreUtil';
@@ -10,6 +10,7 @@ import {
10
10
  useConfig
11
11
  } from 'ordering-components/native';
12
12
  import { useTheme } from 'styled-components/native';
13
+ import { showLocation } from 'react-native-map-link';
13
14
  import {
14
15
  OrderDetailsContainer,
15
16
  Header,
@@ -31,14 +32,15 @@ import {
31
32
  Map,
32
33
  Divider,
33
34
  OrderAction,
34
- PlaceSpotWrapper
35
+ PlaceSpotWrapper,
36
+ ProfessionalPhoto
35
37
  } from './styles';
36
38
  import { OButton, OIcon, OModal, OText } from '../shared';
37
39
  import { ProductItemAccordion } from '../ProductItemAccordion';
38
40
  import { TouchableOpacity } from 'react-native-gesture-handler';
39
41
  import { OrderDetailsParams } from '../../types';
40
42
  import { GoogleMap } from '../GoogleMap';
41
- import { verifyDecimals } from '../../utils';
43
+ import { verifyDecimals, getOrderStatus } from '../../utils';
42
44
  import { OSRow } from '../OrderSummary/styles';
43
45
  import AntIcon from 'react-native-vector-icons/AntDesign'
44
46
  import { TaxInformation } from '../TaxInformation';
@@ -68,6 +70,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
68
70
  },
69
71
  statusBar: {
70
72
  height: 12,
73
+ borderRadius: 8
71
74
  },
72
75
  logo: {
73
76
  width: 75,
@@ -93,6 +96,12 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
93
96
  display: 'flex',
94
97
  alignItems: 'center',
95
98
  flexDirection: 'row'
99
+ },
100
+ professionalBlock: {
101
+ borderBottomColor: theme.colors.border,
102
+ borderBottomWidth: 1,
103
+ marginVertical: 10,
104
+ paddingVertical: 5
96
105
  }
97
106
  });
98
107
 
@@ -108,6 +117,9 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
108
117
  const { order, businessData } = props.order;
109
118
  const mapValidStatuses = [9, 19, 23]
110
119
  const placeSpotTypes = [3, 4, 5]
120
+ const directionTypes = [2, 3, 4, 5]
121
+ const activeStatus = [0, 3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23]
122
+ const enabledPoweredByOrdering = configs?.powered_by_ordering_module?.value
111
123
 
112
124
  const walletName: any = {
113
125
  cash: {
@@ -118,205 +130,6 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
118
130
  }
119
131
  }
120
132
 
121
- const getOrderStatus = (s: string) => {
122
- const status = parseInt(s);
123
- const orderStatus = [
124
- {
125
- key: 0,
126
- value: t('PENDING', 'Pending'),
127
- slug: 'PENDING',
128
- percentage: 0.25,
129
- image: theme.images.order.status0,
130
- },
131
- {
132
- key: 1,
133
- value: t('COMPLETED', 'Completed'),
134
- slug: 'COMPLETED',
135
- percentage: 1,
136
- image: theme.images.order.status1,
137
- },
138
- {
139
- key: 2,
140
- value: t('REJECTED', 'Rejected'),
141
- slug: 'REJECTED',
142
- percentage: 0,
143
- image: theme.images.order.status2,
144
- },
145
- {
146
- key: 3,
147
- value: t('DRIVER_IN_BUSINESS', 'Driver in business'),
148
- slug: 'DRIVER_IN_BUSINESS',
149
- percentage: 0.6,
150
- image: theme.images.order.status3,
151
- },
152
- {
153
- key: 4,
154
- value: t('PREPARATION_COMPLETED', 'Preparation Completed'),
155
- slug: 'PREPARATION_COMPLETED',
156
- percentage: 0.7,
157
- image: theme.images.order.status4,
158
- },
159
- {
160
- key: 5,
161
- value: t('REJECTED_BY_BUSINESS', 'Rejected by business'),
162
- slug: 'REJECTED_BY_BUSINESS',
163
- percentage: 0,
164
- image: theme.images.order.status5,
165
- },
166
- {
167
- key: 6,
168
- value: t('REJECTED_BY_DRIVER', 'Rejected by Driver'),
169
- slug: 'REJECTED_BY_DRIVER',
170
- percentage: 0,
171
- image: theme.images.order.status6,
172
- },
173
- {
174
- key: 7,
175
- value: t('ACCEPTED_BY_BUSINESS', 'Accepted by business'),
176
- slug: 'ACCEPTED_BY_BUSINESS',
177
- percentage: 0.35,
178
- image: theme.images.order.status7,
179
- },
180
- {
181
- key: 8,
182
- value: t('ACCEPTED_BY_DRIVER', 'Accepted by driver'),
183
- slug: 'ACCEPTED_BY_DRIVER',
184
- percentage: 0.45,
185
- image: theme.images.order.status8,
186
- },
187
- {
188
- key: 9,
189
- value: t('PICK_UP_COMPLETED_BY_DRIVER', 'Pick up completed by driver'),
190
- slug: 'PICK_UP_COMPLETED_BY_DRIVER',
191
- percentage: 0.8,
192
- image: theme.images.order.status9,
193
- },
194
- {
195
- key: 10,
196
- value: t('PICK_UP_FAILED_BY_DRIVER', 'Pick up Failed by driver'),
197
- slug: 'PICK_UP_FAILED_BY_DRIVER',
198
- percentage: 0,
199
- image: theme.images.order.status10,
200
- },
201
- {
202
- key: 11,
203
- value: t(
204
- 'DELIVERY_COMPLETED_BY_DRIVER',
205
- 'Delivery completed by driver',
206
- ),
207
- slug: 'DELIVERY_COMPLETED_BY_DRIVER',
208
- percentage: 1,
209
- image: theme.images.order.status11,
210
- },
211
- {
212
- key: 12,
213
- value: t('DELIVERY_FAILED_BY_DRIVER', 'Delivery Failed by driver'),
214
- slug: 'DELIVERY_FAILED_BY_DRIVER',
215
- percentage: 0,
216
- image: theme.images.order.status12,
217
- },
218
- {
219
- key: 13,
220
- value: t('PREORDER', 'PreOrder'),
221
- slug: 'PREORDER',
222
- percentage: 0,
223
- image: theme.images.order.status13,
224
- },
225
- {
226
- key: 14,
227
- value: t('ORDER_NOT_READY', 'Order not ready'),
228
- slug: 'ORDER_NOT_READY',
229
- percentage: 0,
230
- image: theme.images.order.status13,
231
- },
232
- {
233
- key: 15,
234
- value: t(
235
- 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER',
236
- 'Order picked up completed by customer',
237
- ),
238
- slug: 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER',
239
- percentage: 100,
240
- image: theme.images.order.status1,
241
- },
242
- {
243
- key: 16,
244
- value: t('CANCELLED_BY_CUSTOMER', 'Cancelled by customer'),
245
- slug: 'CANCELLED_BY_CUSTOMER',
246
- percentage: 0,
247
- image: theme.images.order.status2,
248
- },
249
- {
250
- key: 17,
251
- value: t(
252
- 'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
253
- 'Order not picked up by customer',
254
- ),
255
- slug: 'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
256
- percentage: 0,
257
- image: theme.images.order.status2,
258
- },
259
- {
260
- key: 18,
261
- value: t(
262
- 'DRIVER_ALMOST_ARRIVED_TO_BUSINESS',
263
- 'Driver almost arrived to business',
264
- ),
265
- slug: 'DRIVER_ALMOST_ARRIVED_TO_BUSINESS',
266
- percentage: 0.15,
267
- image: theme.images.order.status3,
268
- },
269
- {
270
- key: 19,
271
- value: t(
272
- 'DRIVER_ALMOST_ARRIVED_TO_CUSTOMER',
273
- 'Driver almost arrived to customer',
274
- ),
275
- slug: 'DRIVER_ALMOST_ARRIVED_TO_CUSTOMER',
276
- percentage: 0.9,
277
- image: theme.images.order.status11,
278
- },
279
- {
280
- key: 20,
281
- value: t(
282
- 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
283
- 'Customer almost arrived to business',
284
- ),
285
- slug: 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
286
- percentage: 90,
287
- image: theme.images.order.status7,
288
- },
289
- {
290
- key: 21,
291
- value: t(
292
- 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
293
- 'Customer arrived to business',
294
- ),
295
- slug: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
296
- percentage: 95,
297
- image: theme.images.order.status7,
298
- },
299
- {
300
- key: 22,
301
- value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver'),
302
- slug: 'ORDER_LOOKING_FOR_DRIVER',
303
- percentage: 35,
304
- image: theme.images.order.status8
305
- },
306
- {
307
- key: 23,
308
- value: t('ORDER_DRIVER_ON_WAY', 'Driver on way'),
309
- slug: 'ORDER_DRIVER_ON_WAY',
310
- percentage: 45,
311
- image: theme.images.order.status8
312
- }
313
- ];
314
-
315
- const objectStatus = orderStatus.find((o) => o.key === status);
316
-
317
- return objectStatus && objectStatus;
318
- };
319
-
320
133
  const handleGoToMessages = (type: string) => {
321
134
  readMessages && readMessages();
322
135
  navigation.navigate(
@@ -447,6 +260,59 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
447
260
  lng: parseFloat(location?.location?.split(',')[1].replace(/[^-.0-9]/g, ''))
448
261
  } : location)
449
262
 
263
+ const getProductList = () => {
264
+ const professionalList = order?.products.reduce((prev: any, current: any) => {
265
+ const found = prev.find((item: any) => item.id === current?.calendar_event?.professional?.id)
266
+ if (found || !current?.calendar_event) {
267
+ return prev
268
+ }
269
+ return [...prev, current?.calendar_event?.professional]
270
+ }, [])
271
+
272
+ return (
273
+ <>
274
+ {professionalList?.length > 0 && professionalList.map((professional: any, i: number) => (
275
+ <View key={i} style={styles.professionalBlock}>
276
+ <View style={{ flexDirection: 'row', alignItems: 'center', width: '100%' }}>
277
+ {professional?.photo ? (
278
+ <ProfessionalPhoto
279
+ source={{
280
+ uri: professional?.photo
281
+ }}
282
+ imageStyle={{ borderRadius: 8 }}
283
+ />
284
+ ) : (
285
+ <OIcon
286
+ src={theme.images.general.user}
287
+ cover={false}
288
+ width={80}
289
+ height={80}
290
+ />
291
+ )}
292
+ <OText size={12} lineHeight={18} weight={'500'} numberOfLines={1}>{professional?.name} {professional?.lastname}</OText>
293
+ </View>
294
+ {order?.products.filter((product: any) => product?.calendar_event?.professional?.id === professional?.id).map((product: any, i: number) => (
295
+ <ProductItemAccordion
296
+ key={product?.id || i}
297
+ product={product}
298
+ isFromCheckout
299
+ />
300
+ ))}
301
+ </View>
302
+ ))}
303
+ {order?.products.filter((product: any) => !product?.calendar_event).map((product: any, i: number) => (
304
+ <ProductItemAccordion
305
+ key={product?.id || i}
306
+ product={product}
307
+ isFromCheckout
308
+ />
309
+ ))}
310
+ </>
311
+ )
312
+ }
313
+
314
+ const sortedProductList = useMemo(() => getProductList(), [order?.products])
315
+
450
316
  useEffect(() => {
451
317
  if (driverLocation) {
452
318
  parsedLocations[0] = {
@@ -531,11 +397,22 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
531
397
  titleWrapStyle={{ paddingHorizontal: 0 }}
532
398
  titleStyle={{ marginRight: 0, marginLeft: 0 }}
533
399
  subTitle={<OText size={12} lineHeight={18} color={theme.colors.textNormal}>
534
- {order?.delivery_datetime_utc
535
- ? parseDate(order?.delivery_datetime_utc)
536
- : parseDate(order?.delivery_datetime, { utc: false })}
400
+ {
401
+ activeStatus.includes(order?.status)
402
+ ? order?.eta_time + 'min'
403
+ : order?.delivery_datetime_utc
404
+ ? parseDate(order?.delivery_datetime_utc)
405
+ : parseDate(order?.delivery_datetime, { utc: false })
406
+ }
537
407
  </OText>}
538
408
  />
409
+ {enabledPoweredByOrdering && (
410
+ <View style={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
411
+ <OText>
412
+ Powered By Ordering.co
413
+ </OText>
414
+ </View>
415
+ )}
539
416
  <OrderInfo>
540
417
  <OrderData>
541
418
  <View style={styles.linkWrapper}>
@@ -551,7 +428,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
551
428
  onPress={() => handleClickOrderReview(order)}
552
429
  >
553
430
  <OText
554
- size={10}
431
+ size={12}
555
432
  lineHeight={15}
556
433
  color={theme.colors.primary}
557
434
  style={{ textDecorationLine: 'underline' }}
@@ -567,7 +444,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
567
444
 
568
445
  >
569
446
  <OText
570
- size={10}
447
+ size={12}
571
448
  lineHeight={15}
572
449
  color={theme.colors.primary}
573
450
  style={{ textDecorationLine: 'underline', textTransform: 'capitalize' }}
@@ -682,6 +559,26 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
682
559
  {order?.business?.address}
683
560
  </OText>
684
561
  </View>
562
+ {directionTypes.includes(order?.delivery_type) && (
563
+ <OButton
564
+ text={t('GET_DIRECTIONS', 'Get Directions')}
565
+ imgRightSrc=''
566
+ textStyle={{ color: theme.colors.white }}
567
+ style={{
568
+ alignSelf: 'center',
569
+ borderRadius: 10,
570
+ marginTop: 30
571
+ }}
572
+ onClick={() => showLocation({
573
+ latitude: order?.business?.location?.lat,
574
+ longitude: order?.business?.location?.lng,
575
+ naverCallerName: 'com.reactnativeappstemplate5',
576
+ dialogTitle: t('GET_DIRECTIONS', 'Get Directions'),
577
+ dialogMessage: t('WHAT_APP_WOULD_YOU_USE', 'What app would you like to use?'),
578
+ cancelText: t('CANCEL', 'Cancel'),
579
+ })}
580
+ />
581
+ )}
685
582
  </OrderBusiness>
686
583
 
687
584
  {placeSpotTypes.includes(order?.delivery_type) && (
@@ -761,7 +658,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
761
658
  <>
762
659
  {order?.driver?.location && mapValidStatuses.includes(parseInt(order?.status)) && (
763
660
  <Map>
764
- <GoogleMap
661
+ <GoogleMap
765
662
  location={typeof order?.driver?.location?.location === 'string'
766
663
  ? {
767
664
  lat: parseFloat(driverLocationString[0]),
@@ -875,14 +772,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
875
772
  </OrderAction>
876
773
  </HeaderInfo>
877
774
  <OrderProducts>
878
- {order?.products?.length &&
879
- order?.products.map((product: any, i: number) => (
880
- <ProductItemAccordion
881
- key={product?.id || i}
882
- product={product}
883
- isFromCheckout
884
- />
885
- ))}
775
+ {sortedProductList}
886
776
  </OrderProducts>
887
777
  <OrderBill>
888
778
  <View style={{ height: 1, backgroundColor: theme.colors.border, marginBottom: 17 }} />
@@ -1050,8 +940,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
1050
940
  )}
1051
941
  <Total>
1052
942
  <Table>
1053
- <OText size={20} lineHeight={30} weight={'600'} color={theme.colors.textNormal}>{t('TOTAL', 'Total')}</OText>
1054
- <OText size={20} lineHeight={30} weight={'600'} color={theme.colors.textNormal}>
943
+ <OText size={14} style={{ fontWeight: 'bold' }} color={theme.colors.textNormal}>{t('TOTAL', 'Total')}</OText>
944
+ <OText size={14} style={{ fontWeight: 'bold' }} color={theme.colors.textNormal}>
1055
945
  {parsePrice(order?.summary?.total ?? order?.total)}
1056
946
  </OText>
1057
947
  </Table>
@@ -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
 
@@ -132,3 +131,13 @@ export const OrderAction = styled.View`
132
131
  export const PlaceSpotWrapper = styled.View`
133
132
  padding-horizontal: 40px;
134
133
  `
134
+
135
+ export const ProfessionalPhoto = styled.ImageBackground`
136
+ width: 100%;
137
+ position: relative;
138
+ max-height: 80px;
139
+ height: 80px;
140
+ width: 80px;
141
+ resize-mode: cover;
142
+ margin-right: 10px;
143
+ `;
@@ -19,54 +19,57 @@ export const OrderItAgain = (props: OrderItAgainParams) => {
19
19
  categoryState,
20
20
  currentCart,
21
21
  handleUpdateProducts,
22
- navigation
22
+ navigation,
23
+ searchValue
23
24
  } = props
24
25
 
25
26
  const [, t] = useLanguage()
26
27
  const theme = useTheme()
27
28
  const { width } = Dimensions.get('window');
28
-
29
+ const productsFilterd = productList?.length > 0 && productList.filter((product : any) => !searchValue || product?.name?.toLowerCase()?.includes(searchValue?.toLowerCase()))?.sort((a: any, b:any) => moment(b?.last_ordered_date).valueOf() - moment(a?.last_ordered_date).valueOf())
29
30
  return (
30
- <Container>
31
- <OText
32
- size={16}
33
- lineHeight={24}
34
- color={theme.colors.textNormal}
35
- style={{
36
- fontWeight: '600',
37
- marginBottom: 6
38
- }}
39
- >
40
- {t('ORDER_IT_AGAIN', 'Order it again')}
41
- </OText>
42
- <OText
43
- size={12}
44
- lineHeight={18}
45
- color={theme.colors.disabled}
46
- >
47
- {t('ORDER_IT_AGAIN_DESC', 'Quickly add items from your past orders.')}
48
- </OText>
49
- <ScrollView
50
- horizontal
51
- showsVerticalScrollIndicator={false}
52
- showsHorizontalScrollIndicator={false}
53
- >
54
- {productList?.length > 0 && productList?.sort((a: any, b:any) => moment(b?.last_ordered_date).valueOf() - moment(a?.last_ordered_date).valueOf()).map((product: any, i: number) => (
55
- <ProductWrapper key={'prod_' + product.id + `_${i}`} style={{ width: width - 120, }}>
56
- <SingleProductCard
57
- isSoldOut={product.inventoried && !product.quantity}
58
- product={product}
59
- businessId={businessId}
60
- categoryState={categoryState}
61
- onProductClick={() => onProductClick(product)}
62
- productAddedToCartLength={currentCart?.products?.reduce((productsLength: number, Cproduct: any) => { return productsLength + (Cproduct?.id === product?.id ? Cproduct?.quantity : 0) }, 0)}
63
- handleUpdateProducts={handleUpdateProducts}
64
- navigation={navigation}
65
- isPreviously
66
- />
67
- </ProductWrapper>
68
- ))}
69
- </ScrollView>
70
- </Container>
31
+ productsFilterd?.length > 0 ? (
32
+ <Container>
33
+ <OText
34
+ size={16}
35
+ lineHeight={24}
36
+ color={theme.colors.textNormal}
37
+ style={{
38
+ fontWeight: '600',
39
+ marginBottom: 6
40
+ }}
41
+ >
42
+ {t('ORDER_IT_AGAIN', 'Order it again')}
43
+ </OText>
44
+ <OText
45
+ size={12}
46
+ lineHeight={18}
47
+ color={theme.colors.disabled}
48
+ >
49
+ {t('ORDER_IT_AGAIN_DESC', 'Quickly add items from your past orders.')}
50
+ </OText>
51
+ <ScrollView
52
+ horizontal
53
+ showsVerticalScrollIndicator={false}
54
+ showsHorizontalScrollIndicator={false}
55
+ >
56
+ {productsFilterd.map((product: any, i: number) => (
57
+ <ProductWrapper key={'prod_' + product.id + `_${i}`} style={{ width: width - 120, }}>
58
+ <SingleProductCard
59
+ isSoldOut={product.inventoried && !product.quantity}
60
+ product={product}
61
+ businessId={businessId}
62
+ categoryState={categoryState}
63
+ onProductClick={() => onProductClick(product)}
64
+ productAddedToCartLength={currentCart?.products?.reduce((productsLength: number, Cproduct: any) => { return productsLength + (Cproduct?.id === product?.id ? Cproduct?.quantity : 0) }, 0)}
65
+ handleUpdateProducts={handleUpdateProducts}
66
+ navigation={navigation}
67
+ isPreviously
68
+ />
69
+ </ProductWrapper>
70
+ ))}
71
+ </ScrollView>
72
+ </Container>
73
+ ) : null
71
74
  )
72
75
  }