ordering-ui-react-native 0.15.98 → 0.16.0-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 (236) hide show
  1. package/package.json +8 -3
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/index.tsx +61 -63
  4. package/src/components/ActiveOrders/styles.tsx +8 -14
  5. package/src/components/AddressForm/index.tsx +18 -2
  6. package/src/components/BusinessBasicInformation/index.tsx +11 -19
  7. package/src/components/BusinessController/index.tsx +10 -8
  8. package/src/components/BusinessInformation/index.tsx +22 -0
  9. package/src/components/BusinessTypeFilter/index.tsx +1 -2
  10. package/src/components/BusinessesListing/index.tsx +1 -1
  11. package/src/components/Checkout/index.tsx +2 -1
  12. package/src/components/DriverTips/index.tsx +11 -6
  13. package/src/components/LanguageSelector/index.tsx +21 -16
  14. package/src/components/LoginForm/index.tsx +120 -30
  15. package/src/components/LoginForm/styles.tsx +6 -0
  16. package/src/components/Messages/index.tsx +2 -2
  17. package/src/components/NotificationSetting/index.tsx +85 -0
  18. package/src/components/OrderDetails/index.tsx +7 -21
  19. package/src/components/OrdersOption/index.tsx +54 -56
  20. package/src/components/PaymentOptions/index.tsx +335 -365
  21. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  22. package/src/components/ReviewDriver/index.tsx +1 -1
  23. package/src/components/ReviewOrder/index.tsx +2 -1
  24. package/src/components/ReviewProducts/index.tsx +11 -0
  25. package/src/components/SignupForm/index.tsx +145 -61
  26. package/src/components/SingleProductReview/index.tsx +8 -5
  27. package/src/components/StripeElementsForm/index.tsx +25 -16
  28. package/src/components/StripeMethodForm/index.tsx +22 -24
  29. package/src/components/UpsellingProducts/index.tsx +1 -1
  30. package/src/components/UserProfileForm/index.tsx +63 -6
  31. package/src/components/UserProfileForm/styles.tsx +8 -0
  32. package/src/components/VerifyPhone/styles.tsx +1 -2
  33. package/src/components/shared/OBottomPopup.tsx +6 -2
  34. package/src/components/shared/OModal.tsx +1 -1
  35. package/src/index.tsx +2 -0
  36. package/src/navigators/CheckoutNavigator.tsx +6 -0
  37. package/src/navigators/HomeNavigator.tsx +6 -0
  38. package/src/pages/BusinessesListing.tsx +7 -6
  39. package/src/pages/MultiCheckout.tsx +31 -0
  40. package/src/pages/MultiOrdersDetails.tsx +27 -0
  41. package/src/pages/OrderDetails.tsx +1 -1
  42. package/src/pages/ReviewDriver.tsx +2 -2
  43. package/src/pages/ReviewOrder.tsx +2 -2
  44. package/src/theme.json +0 -1
  45. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  46. package/src/types/index.tsx +15 -9
  47. package/src/utils/index.tsx +0 -1
  48. package/themes/business/index.tsx +4 -0
  49. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +1 -1
  50. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  51. package/themes/business/src/components/Chat/index.tsx +42 -34
  52. package/themes/business/src/components/DriverMap/index.tsx +12 -8
  53. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  54. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  55. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  56. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  57. package/themes/business/src/components/MapView/index.tsx +1 -1
  58. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  59. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  60. package/themes/business/src/components/OrderDetails/Delivery.tsx +3 -3
  61. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +25 -18
  62. package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
  63. package/themes/business/src/components/OrdersOption/index.tsx +65 -21
  64. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  65. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  66. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  67. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  68. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  69. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  70. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  71. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  72. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  73. package/themes/business/src/components/PreviousOrders/index.tsx +21 -23
  74. package/themes/business/src/components/ProductItemAccordion/index.tsx +5 -4
  75. package/themes/business/src/components/ReviewCustomer/index.tsx +1 -1
  76. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  77. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  78. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  79. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  80. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  81. package/themes/business/src/components/shared/OModal.tsx +41 -38
  82. package/themes/business/src/types/index.tsx +14 -9
  83. package/themes/business/src/utils/index.tsx +10 -0
  84. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  85. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  86. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  87. package/themes/kiosk/src/components/BusinessMenu/index.tsx +2 -1
  88. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
  89. package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
  90. package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
  91. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +70 -31
  92. package/themes/kiosk/src/components/Checkout/index.tsx +18 -3
  93. package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
  94. package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
  95. package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
  96. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  97. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  98. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  99. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  100. package/themes/kiosk/src/components/OrderDetails/index.tsx +2 -2
  101. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  102. package/themes/kiosk/src/components/PaymentOptions/index.tsx +1 -1
  103. package/themes/kiosk/src/components/ProductForm/index.tsx +6 -7
  104. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
  105. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  106. package/themes/kiosk/src/types/index.d.ts +3 -0
  107. package/themes/original/index.tsx +22 -0
  108. package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
  109. package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
  110. package/themes/original/src/components/AddressForm/index.tsx +137 -134
  111. package/themes/original/src/components/AddressList/index.tsx +2 -2
  112. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  113. package/themes/original/src/components/BusinessBasicInformation/index.tsx +302 -160
  114. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  115. package/themes/original/src/components/BusinessController/index.tsx +179 -96
  116. package/themes/original/src/components/BusinessController/styles.tsx +5 -0
  117. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -9
  118. package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
  119. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  120. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  121. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  122. package/themes/original/src/components/BusinessListingSearch/index.tsx +106 -126
  123. package/themes/original/src/components/BusinessListingSearch/styles.tsx +18 -13
  124. package/themes/original/src/components/BusinessPreorder/index.tsx +1 -1
  125. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
  126. package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
  127. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  128. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  129. package/themes/original/src/components/BusinessProductsList/index.tsx +66 -73
  130. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  131. package/themes/original/src/components/BusinessProductsListing/index.tsx +298 -178
  132. package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -0
  133. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  134. package/themes/original/src/components/BusinessTypeFilter/index.tsx +106 -38
  135. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  136. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
  137. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -2
  138. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +673 -0
  139. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  140. package/themes/original/src/components/BusinessesListing/index.tsx +102 -464
  141. package/themes/original/src/components/Cart/index.tsx +82 -37
  142. package/themes/original/src/components/Cart/styles.tsx +4 -0
  143. package/themes/original/src/components/CartContent/index.tsx +22 -16
  144. package/themes/original/src/components/Checkout/index.tsx +107 -67
  145. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  146. package/themes/original/src/components/DriverTips/index.tsx +11 -6
  147. package/themes/original/src/components/Favorite/index.tsx +92 -0
  148. package/themes/original/src/components/Favorite/styles.tsx +22 -0
  149. package/themes/original/src/components/FavoriteList/index.tsx +317 -0
  150. package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
  151. package/themes/original/src/components/GPSButton/index.tsx +25 -17
  152. package/themes/original/src/components/GoogleMap/index.tsx +21 -12
  153. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +8 -3
  154. package/themes/original/src/components/HelpGuide/index.tsx +8 -3
  155. package/themes/original/src/components/HelpOrder/index.tsx +8 -3
  156. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
  157. package/themes/original/src/components/LoginForm/Otp/index.tsx +3 -2
  158. package/themes/original/src/components/LoginForm/index.tsx +86 -43
  159. package/themes/original/src/components/Messages/index.tsx +17 -17
  160. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  161. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  162. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
  163. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
  164. package/themes/original/src/components/MultiCheckout/index.tsx +304 -0
  165. package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
  166. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
  167. package/themes/original/src/components/MultiOrdersDetails/index.tsx +262 -0
  168. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
  169. package/themes/original/src/components/MyOrders/index.tsx +132 -27
  170. package/themes/original/src/components/MyOrders/styles.tsx +8 -1
  171. package/themes/original/src/components/NavBar/index.tsx +11 -5
  172. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  173. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  174. package/themes/original/src/components/OrderDetails/index.tsx +138 -58
  175. package/themes/original/src/components/OrderDetails/styles.tsx +5 -2
  176. package/themes/original/src/components/OrderItAgain/index.tsx +73 -0
  177. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  178. package/themes/original/src/components/OrderProgress/index.tsx +8 -2
  179. package/themes/original/src/components/OrderSummary/index.tsx +2 -35
  180. package/themes/original/src/components/OrderTypeSelector/index.tsx +84 -36
  181. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  182. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +140 -0
  183. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
  184. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +56 -0
  185. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
  186. package/themes/original/src/components/OrdersOption/index.tsx +143 -47
  187. package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
  188. package/themes/original/src/components/PaymentOptionWallet/index.tsx +15 -23
  189. package/themes/original/src/components/PaymentOptions/index.tsx +57 -37
  190. package/themes/original/src/components/PhoneInputNumber/index.tsx +4 -10
  191. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  192. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  193. package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
  194. package/themes/original/src/components/ProductForm/index.tsx +697 -649
  195. package/themes/original/src/components/ProductForm/styles.tsx +9 -7
  196. package/themes/original/src/components/ProductItemAccordion/index.tsx +38 -25
  197. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  198. package/themes/original/src/components/ProfessionalFilter/index.tsx +128 -0
  199. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  200. package/themes/original/src/components/ProfessionalProfile/index.tsx +298 -0
  201. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  202. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  203. package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
  204. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  205. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  206. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  207. package/themes/original/src/components/SearchBar/index.tsx +13 -5
  208. package/themes/original/src/components/ServiceForm/index.tsx +579 -0
  209. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  210. package/themes/original/src/components/SignupForm/index.tsx +307 -159
  211. package/themes/original/src/components/SingleOrderCard/index.tsx +316 -0
  212. package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
  213. package/themes/original/src/components/SingleProductCard/index.tsx +215 -95
  214. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
  215. package/themes/original/src/components/SingleProductReview/index.tsx +30 -3
  216. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  217. package/themes/original/src/components/StripeElementsForm/index.tsx +25 -9
  218. package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
  219. package/themes/original/src/components/UpsellingProducts/index.tsx +7 -3
  220. package/themes/original/src/components/UserDetails/index.tsx +32 -18
  221. package/themes/original/src/components/UserFormDetails/index.tsx +108 -74
  222. package/themes/original/src/components/UserProfile/index.tsx +4 -0
  223. package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
  224. package/themes/original/src/components/UserVerification/index.tsx +178 -192
  225. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  226. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  227. package/themes/original/src/components/Wallets/index.tsx +176 -162
  228. package/themes/original/src/components/Wallets/styles.tsx +10 -8
  229. package/themes/original/src/components/shared/OBottomPopup.tsx +47 -14
  230. package/themes/original/src/components/shared/OButton.tsx +10 -3
  231. package/themes/original/src/components/shared/OInput.tsx +3 -2
  232. package/themes/original/src/components/shared/OModal.tsx +4 -2
  233. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  234. package/themes/original/src/types/index.tsx +200 -47
  235. package/themes/original/src/utils/index.tsx +77 -0
  236. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -39,6 +39,8 @@ import { VerifyPhone } from './src/components/VerifyPhone';
39
39
  import { DriverMap } from './src/components/DriverMap';
40
40
  import { MapViewUI as MapView } from './src/components/MapView'
41
41
  import { NewOrderNotification } from './src/components/NewOrderNotification';
42
+ import { DriverSchedule } from './src/components/DriverSchedule';
43
+ import { ScheduleBlocked } from './src/components/ScheduleBlocked';
42
44
  //OComponents
43
45
  import {
44
46
  OText,
@@ -106,6 +108,8 @@ export {
106
108
  UserFormDetailsUI,
107
109
  UserProfileForm,
108
110
  VerifyPhone,
111
+ DriverSchedule,
112
+ ScheduleBlocked,
109
113
  //OComponents
110
114
  OAlert,
111
115
  OButton,
@@ -84,7 +84,7 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
84
84
  backgroundColor: '#fff',
85
85
  borderColor: theme.colors.lightGray,
86
86
  overflow: 'hidden',
87
- minHeight: 155
87
+ minHeight: 120
88
88
  },
89
89
  rowStyle: {
90
90
  display: 'flex',
@@ -67,11 +67,11 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
67
67
  shadowColor: '#000',
68
68
  shadowOffset: {
69
69
  width: 0,
70
- height: 1.5,
70
+ height: business?.logo ? 1.5 : 0,
71
71
  },
72
72
  shadowOpacity: 0.21,
73
73
  shadowRadius: 3,
74
- elevation: 7,
74
+ elevation: business?.logo ? 7 : 0,
75
75
  },
76
76
  header: {
77
77
  flexDirection: 'row',
@@ -44,33 +44,6 @@ import { USER_TYPE } from '../../config/constants';
44
44
 
45
45
  import SignatureScreen from 'react-native-signature-canvas';
46
46
 
47
- const ORDER_STATUS: any = {
48
- 0: 'ORDER_STATUS_PENDING',
49
- 1: 'ORDERS_COMPLETED',
50
- 2: 'ORDER_REJECTED',
51
- 3: 'ORDER_STATUS_IN_BUSINESS',
52
- 4: 'ORDER_READY',
53
- 5: 'ORDER_REJECTED_RESTAURANT',
54
- 6: 'ORDER_STATUS_CANCELLEDBYDRIVER',
55
- 7: 'ORDER_STATUS_ACCEPTEDBYRESTAURANT',
56
- 8: 'ORDER_CONFIRMED_ACCEPTED_BY_DRIVER',
57
- 9: 'ORDER_PICKUP_COMPLETED_BY_DRIVER',
58
- 10: 'ORDER_PICKUP_FAILED_BY_DRIVER',
59
- 11: 'ORDER_DELIVERY_COMPLETED_BY_DRIVER',
60
- 12: 'ORDER_DELIVERY_FAILED_BY_DRIVER',
61
- 13: 'PREORDER',
62
- 14: 'ORDER_NOT_READY',
63
- 15: 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER',
64
- 16: 'ORDER_STATUS_CANCELLED_BY_CUSTOMER',
65
- 17: 'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
66
- 18: 'ORDER_DRIVER_ALMOST_ARRIVED_BUSINESS',
67
- 19: 'ORDER_DRIVER_ALMOST_ARRIVED_CUSTOMER',
68
- 20: 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
69
- 21: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
70
- 22: 'ORDER_LOOKING_FOR_DRIVER',
71
- 23: 'ORDER_DRIVER_ON_WAY'
72
- }
73
-
74
47
  const filterSpecialStatus = ['prepared_in', 'delivered_in', 'delivery_datetime']
75
48
 
76
49
  const ChatUI = (props: MessagesParams) => {
@@ -97,6 +70,33 @@ const ChatUI = (props: MessagesParams) => {
97
70
  const theme = useTheme();
98
71
  const [messageList, setMessageList] = useState<any>([])
99
72
 
73
+ const ORDER_STATUS: any = {
74
+ 0: t('ORDER_STATUS_PENDING', 'Order status pending'),
75
+ 1: t('ORDERS_COMPLETED', 'Order completed'),
76
+ 2: t('ORDER_REJECTED', 'Order rejected'),
77
+ 3: t('ORDER_STATUS_IN_BUSINESS', 'Order status in business'),
78
+ 4: t('ORDER_READY', 'Order ready'),
79
+ 5: t('ORDER_REJECTED_RESTAURANT', 'Order rejected by restaurant'),
80
+ 6: t('ORDER_STATUS_CANCELLEDBYDRIVER', 'Order status cancelled by driver'),
81
+ 7: t('ORDER_STATUS_ACCEPTEDBYRESTAURANT', 'Order status accepted by restaurant'),
82
+ 8: t('ORDER_CONFIRMED_ACCEPTED_BY_DRIVER', 'Order confirmed accepted by driver'),
83
+ 9: t('ORDER_PICKUP_COMPLETED_BY_DRIVER', 'Order pickup completed by driver'),
84
+ 10: t('ORDER_PICKUP_FAILED_BY_DRIVER', 'Order pickup failed by driver'),
85
+ 11: t('ORDER_DELIVERY_COMPLETED_BY_DRIVER', 'Order delivery completed by driver'),
86
+ 12: t('ORDER_DELIVERY_FAILED_BY_DRIVER', 'Order delivery failed by driver'),
87
+ 13: t('PREORDER', 'Preorder'),
88
+ 14: t('ORDER_NOT_READY', 'Order not ready'),
89
+ 15: t('ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER', 'Order picked up completed by customer'),
90
+ 16: t('ORDER_STATUS_CANCELLED_BY_CUSTOMER', 'Order status cancelled by customer'),
91
+ 17: t('ORDER_NOT_PICKEDUP_BY_CUSTOMER', 'Order not picked up by customer'),
92
+ 18: t('ORDER_DRIVER_ALMOST_ARRIVED_BUSINESS', 'Order driver almost arrived to business'),
93
+ 19: t('ORDER_DRIVER_ALMOST_ARRIVED_CUSTOMER', 'Order driver almost arrived to customer'),
94
+ 20: t('ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', 'Order customer almost arrived to business'),
95
+ 21: t('ORDER_CUSTOMER_ARRIVED_BUSINESS', 'Order customer arrived to business'),
96
+ 22: t('ORDER_LOOKING_FOR_DRIVER', 'Order looking for driver'),
97
+ 23: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
98
+ }
99
+
100
100
  const storeMessageList: any = [
101
101
  { key: 'store_message_1', text: t('STORE_MESSAGE_1', 'store_message_1') },
102
102
  { key: 'store_message_2', text: t('STORE_MESSAGE_2', 'store_message_2') },
@@ -111,6 +111,13 @@ const ChatUI = (props: MessagesParams) => {
111
111
  { key: 'driver_message_4', text: t('DRIVER_MESSAGE_4', 'driver_message_4') }
112
112
  ]
113
113
 
114
+ const adminMessageList: any = [
115
+ { key: 'message_1', text: t('ADMIN_MESSAGE_1', 'admin_message_1') },
116
+ { key: 'message_2', text: t('ADMIN_MESSAGE_2', 'admin_message_2') },
117
+ { key: 'message_3', text: t('ADMIN_MESSAGE_3', 'admin_message_3') },
118
+ { key: 'message_4', text: t('ADMIN_MESSAGE_4', 'admin_message_4') }
119
+ ]
120
+
114
121
  const handleClickQuickMessage = (text: string) => {
115
122
  setMessage && setMessage(`${message}${text}`)
116
123
  }
@@ -370,7 +377,7 @@ const ChatUI = (props: MessagesParams) => {
370
377
  ?
371
378
  `${t('ORDER', 'Order')} ${t(message.change.attribute.toUpperCase(), message.change.attribute.replace('_', ' '))} ${t('CHANGED_FROM', 'Changed from')} ${filterSpecialStatus.includes(message.change.attribute) ?
372
379
  `${message.change.old === null ? '0' : message.change.old} ${t('TO', 'to')} ${message.change.new} ${t('MINUTES', 'Minutes')}` :
373
- `${message.change.old !== null && t(ORDER_STATUS[parseInt(message.change.old, 10)])} ${t('TO', 'to')} ${t(ORDER_STATUS[parseInt(message.change.new, 10)])}`
380
+ `${message.change.old !== null && ORDER_STATUS[parseInt(message.change.old, 10)]} ${t('TO', 'to')} ${ORDER_STATUS[parseInt(message.change.new, 10)]}`
374
381
  }`
375
382
  : message.change.new
376
383
  ?
@@ -426,7 +433,8 @@ const ChatUI = (props: MessagesParams) => {
426
433
  };
427
434
 
428
435
  useEffect(() => {
429
- if (user.level === 2) setMessageList(storeMessageList)
436
+ if (user.level === 0) setMessageList(adminMessageList)
437
+ else if (user.level === 2) setMessageList(storeMessageList)
430
438
  else if (user.level === 4) setMessageList(driverMessageList)
431
439
  else setMessageList([])
432
440
  }, [user])
@@ -484,12 +492,12 @@ const ChatUI = (props: MessagesParams) => {
484
492
  image: message.source,
485
493
  system: message.type === 1,
486
494
  user: {
487
- _id: message.author.id,
488
- name: message.author.name,
495
+ _id: message.author?.id,
496
+ name: message.author?.name,
489
497
  can_see: message?.can_see,
490
- level: message.author.level,
498
+ level: message.author?.level,
491
499
  avatar:
492
- message.author.id !== user?.id && type === USER_TYPE.DRIVER
500
+ message.author?.id !== user?.id && type === USER_TYPE.DRIVER
493
501
  ? order?.driver?.photo
494
502
  : order?.business?.logo,
495
503
  },
@@ -734,7 +742,7 @@ const ChatUI = (props: MessagesParams) => {
734
742
  color: '#414954'
735
743
  }}
736
744
  style={{ ...styles.editButton }}
737
- onClick={() => handleClickQuickMessage(quickMessage.text)}
745
+ onClick={() => handleClickQuickMessage(message?.length > 0 ? ' ' + quickMessage.text : quickMessage.text)}
738
746
  />
739
747
  </React.Fragment>
740
748
  ))}
@@ -13,6 +13,7 @@ import { useTheme } from 'styled-components/native';
13
13
  import { useLocation } from '../../hooks/useLocation';
14
14
  import { FloatingButton } from '../FloatingButton';
15
15
  import { showLocation } from 'react-native-map-link';
16
+ import { transformDistance } from '../../utils';
16
17
 
17
18
  export const DriverMap = (props: GoogleMapsParams) => {
18
19
  const {
@@ -56,6 +57,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
56
57
  content: Array<string>;
57
58
  key?: string | null;
58
59
  }>({ open: false, content: [], key: null });
60
+ const distanceUnit = configState?.configs?.distance_unit?.value
59
61
 
60
62
  const {
61
63
  hasLocation,
@@ -327,6 +329,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
327
329
  justifyContent: 'center',
328
330
  paddingVertical: 10,
329
331
  paddingHorizontal: 80,
332
+ position: 'absolute'
330
333
  },
331
334
  showButton: {
332
335
  alignSelf: 'center',
@@ -474,9 +477,10 @@ export const DriverMap = (props: GoogleMapsParams) => {
474
477
  src={theme.images.general.arrow_distance}
475
478
  style={styles.arrowDistance}
476
479
  />
477
- <OText size={12} numberOfLines={3}>{`${(
478
- distancesFromTwoPlacesKm * 3280.84
479
- ).toFixed(0)} ${t('FT', 'Ft')}`}</OText>
480
+ <OText size={12} numberOfLines={3}>
481
+ {`${transformDistance(distancesFromTwoPlacesKm, distanceUnit)} ${t(distanceUnit.toUpperCase(), distanceUnit)}`}
482
+ </OText>
483
+
480
484
  </View>
481
485
  <View style={{ width: '75%', paddingRight: 20 }}>
482
486
  <OText
@@ -490,14 +494,14 @@ export const DriverMap = (props: GoogleMapsParams) => {
490
494
  </View>
491
495
  </View>
492
496
  </View>
493
- <View style={styles.buttonContainer}>
497
+ <View style={{
498
+ ...styles.buttonContainer,
499
+ bottom: showAcceptOrReject ? 80 : 0
500
+ }}>
494
501
  <OButton
495
502
  imgRightSrc=''
496
503
  textStyle={{ color: theme.colors.white }}
497
- style={{
498
- ...styles.showButton,
499
- bottom: showAcceptOrReject ? 80 : 0
500
- }}
504
+ style={styles.showButton}
501
505
  onClick={() => showLocation({
502
506
  latitude: destination.latitude,
503
507
  longitude: destination.longitude,
@@ -0,0 +1,71 @@
1
+ import React, { useState } from 'react'
2
+ import { RefreshControl, ScrollView, View } from 'react-native'
3
+ import { OText } from '../shared'
4
+ import { useLanguage, useSession } from 'ordering-components/native'
5
+ import { DayContainer } from './styles'
6
+ import { useTheme } from 'styled-components/native'
7
+ export const DriverSchedule = (props: any) => {
8
+ const { schedule } = props
9
+ const [, t] = useLanguage()
10
+ const theme = useTheme()
11
+ const [, { refreshUserInfo }] = useSession()
12
+ const [refreshing] = useState(false);
13
+
14
+ const daysOfWeek = [
15
+ t('SUNDAY_ABBREVIATION', 'Sun'),
16
+ t('MONDAY_ABBREVIATION', 'Mon'),
17
+ t('TUESDAY_ABBREVIATION', 'Tues'),
18
+ t('WEDNESDAY_ABBREVIATION', 'Wed'),
19
+ t('THURSDAY_ABBREVIATION', 'Thur'),
20
+ t('FRIDAY_ABBREVIATION', 'Fri'),
21
+ t('SATURDAY_ABBREVIATION', 'Sat')
22
+ ]
23
+
24
+ const scheduleFormatted = ({ hour, minute }: any) => {
25
+ const checkTime = (val: number) => val < 10 ? `0${val}` : val
26
+ return `${checkTime(hour)}:${checkTime(minute)}`
27
+ }
28
+
29
+ return (
30
+ <ScrollView
31
+ refreshControl={<RefreshControl
32
+ refreshing={refreshing}
33
+ onRefresh={() => refreshUserInfo()}
34
+ />}
35
+ >
36
+ <OText size={24} style={{ paddingLeft: 30 }}>
37
+ {t('SCHEDULE', 'Schedule')}
38
+ </OText>
39
+ <View style={{ padding: 30 }}>
40
+ {schedule.map((item: any, i: number) => (
41
+ <DayContainer key={daysOfWeek[i]}>
42
+ <OText style={{ width: '20%' }} size={22} weight={700}>{daysOfWeek[i]}</OText>
43
+ <View style={{ width: '80%', alignItems: 'center' }}>
44
+ <>
45
+ {item?.enabled ? (
46
+ <View>
47
+ {item?.lapses.map((lapse: any, i: number) => (
48
+ <View key={`${daysOfWeek[i]}_${i}`} style={{ marginTop: 3, marginBottom: 20, flexDirection: 'row', justifyContent: 'space-between' }}>
49
+ <OText size={18} style={{ width: '30%' }}>
50
+ {scheduleFormatted(lapse.open)}
51
+ </OText>
52
+ <OText size={18} style={{ width: 15 }}>
53
+ -
54
+ </OText>
55
+ <OText size={18} style={{ width: '30%' }}>
56
+ {scheduleFormatted(lapse.close)}
57
+ </OText>
58
+ </View>
59
+ ))}
60
+ </View>
61
+ ) : (
62
+ <OText size={18} style={{ marginTop: 3, marginBottom: 10 }} color={theme.colors.red}>{t('NOT_AVAILABLE', 'Not available')}</OText>
63
+ )}
64
+ </>
65
+ </View>
66
+ </DayContainer>
67
+ ))}
68
+ </View>
69
+ </ScrollView>
70
+ )
71
+ }
@@ -0,0 +1,6 @@
1
+ import styled from "styled-components/native";
2
+
3
+ export const DayContainer = styled.View`
4
+ flex-direction: row;
5
+ width: 100%;
6
+ `
@@ -9,6 +9,7 @@ import {
9
9
  } from 'react-native';
10
10
  import { useForm, Controller } from 'react-hook-form';
11
11
  import Recaptcha from 'react-native-recaptcha-that-works'
12
+ import ReCaptcha from '@fatnlazycat/react-native-recaptcha-v3'
12
13
  import { TouchableOpacity } from 'react-native-gesture-handler';
13
14
  import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
14
15
  import {
@@ -52,8 +53,8 @@ const LoginFormUI = (props: LoginParams) => {
52
53
  allowedLevels,
53
54
  useRootPoint,
54
55
  notificationState,
55
- handleReCaptcha,
56
- enableReCaptcha
56
+ handleReCaptcha,
57
+ enableReCaptcha
57
58
  } = props;
58
59
 
59
60
  const [ordering, { setOrdering }] = useApi();
@@ -67,7 +68,7 @@ const LoginFormUI = (props: LoginParams) => {
67
68
  const inputRef = useRef<any>(null);
68
69
  const inputMailRef = useRef<any>(null);
69
70
 
70
- const [projectName, setProjectName] = useState({name: '', isFocued: false});
71
+ const [projectName, setProjectName] = useState({ name: '', isFocued: false });
71
72
  const [passwordSee, setPasswordSee] = useState(false);
72
73
  const [isLoadingVerifyModal, setIsLoadingVerifyModal] = useState(false);
73
74
  const [isModalVisible, setIsModalVisible] = useState(false);
@@ -92,36 +93,50 @@ const LoginFormUI = (props: LoginParams) => {
92
93
  const [formValues, setFormValues] = useState(null);
93
94
 
94
95
  const [recaptchaConfig, setRecaptchaConfig] = useState<any>({})
95
- const [recaptchaVerified, setRecaptchaVerified] = useState(false)
96
+ const [recaptchaVerified, setRecaptchaVerified] = useState(false)
96
97
 
97
98
  const recaptchaRef = useRef<any>({});
98
99
 
99
100
  const handleOpenRecaptcha = () => {
100
- setRecaptchaVerified(false)
101
- if (!recaptchaConfig?.siteKey) {
102
- showToast(ToastType.Error, t('NO_RECAPTCHA_SITE_KEY', 'The config doesn\'t have recaptcha site key'));
103
- return
104
- }
105
- if (!recaptchaConfig?.baseUrl) {
106
- showToast(ToastType.Error, t('NO_RECAPTCHA_BASE_URL', 'The config doesn\'t have recaptcha base url'));
107
- return
108
- }
109
- recaptchaRef.current.open()
110
- }
111
-
112
- const onRecaptchaVerify = (token: any) => {
113
- setRecaptchaVerified(true)
114
- handleReCaptcha(token)
115
- }
116
-
117
- useEffect(() => {
118
- if (configs && Object.keys(configs).length > 0 && enableReCaptcha) {
119
- setRecaptchaConfig({
120
- siteKey: configs?.security_recaptcha_site_key?.value || null,
121
- baseUrl: configs?.security_recaptcha_base_url?.value || null
122
- })
123
- }
124
- }, [configs, enableReCaptcha])
101
+ setRecaptchaVerified(false)
102
+ if (!recaptchaConfig?.siteKey) {
103
+ showToast(ToastType.Error, t('NO_RECAPTCHA_SITE_KEY', 'The config doesn\'t have recaptcha site key'));
104
+ return
105
+ }
106
+ if (!recaptchaConfig?.baseUrl) {
107
+ showToast(ToastType.Error, t('NO_RECAPTCHA_BASE_URL', 'The config doesn\'t have recaptcha base url'));
108
+ return
109
+ }
110
+ recaptchaRef.current.open()
111
+ }
112
+
113
+ const onRecaptchaVerify = (token: any) => {
114
+ setRecaptchaVerified(true)
115
+ handleReCaptcha({ code: token, version: recaptchaConfig?.version })
116
+ }
117
+
118
+ useEffect(() => {
119
+ if (configs && Object.keys(configs).length > 0 && enableReCaptcha) {
120
+ if (configs?.security_recaptcha_type?.value === 'v3' &&
121
+ configs?.security_recaptcha_score_v3?.value > 0 &&
122
+ configs?.security_recaptcha_site_key_v3?.value
123
+ ) {
124
+ setRecaptchaConfig({
125
+ version: 'v3',
126
+ siteKey: configs?.security_recaptcha_site_key_v3?.value || null,
127
+ baseUrl: configs?.security_recaptcha_base_url?.value || null
128
+ })
129
+ return
130
+ }
131
+ if (configs?.security_recaptcha_site_key?.value) {
132
+ setRecaptchaConfig({
133
+ version: 'v2',
134
+ siteKey: configs?.security_recaptcha_site_key?.value || null,
135
+ baseUrl: configs?.security_recaptcha_base_url?.value || null
136
+ })
137
+ }
138
+ }
139
+ }, [configs, enableReCaptcha])
125
140
 
126
141
  useEffect(() => {
127
142
  const projectInputInterval = setInterval(() => {
@@ -164,6 +179,7 @@ const LoginFormUI = (props: LoginParams) => {
164
179
  'An error occurred while trying to pay by PayPal',
165
180
  ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY:
166
181
  'Error adding product, very far for delivery',
182
+ ERROR_AUTH_DRIVER_LOGIN_VALIDATION: 'Error auth driver login validation'
167
183
  };
168
184
 
169
185
  return keyList[key] ? t(key, keyList[key]) : t(key);
@@ -245,6 +261,17 @@ const LoginFormUI = (props: LoginParams) => {
245
261
 
246
262
  useEffect(() => {
247
263
  if (!formState?.loading && formState?.result?.error) {
264
+ if (formState.result?.result?.[0] === 'ERROR_AUTH_VERIFICATION_CODE') {
265
+ setRecaptchaVerified(false)
266
+ setSubmitted(false)
267
+ setRecaptchaConfig({
268
+ version: 'v2',
269
+ siteKey: configs?.security_recaptcha_site_key?.value || null,
270
+ baseUrl: configs?.security_recaptcha_base_url?.value || null
271
+ })
272
+ showToast(ToastType.Info, t('TRY_AGAIN', 'Please try again'))
273
+ return
274
+ }
248
275
  formState?.result?.result &&
249
276
  showToast(
250
277
  ToastType.Error,
@@ -252,17 +279,17 @@ const LoginFormUI = (props: LoginParams) => {
252
279
  ? getTraduction(formState.result?.result)
253
280
  : loginTab === 'email' &&
254
281
  typeof formState.result?.result !== 'string'
255
- ? getTraduction(formState.result?.result[0])
256
- : loginTab === 'cellphone' &&
257
- typeof formState.result?.result === 'string'
258
- ? getTraduction(formState.result?.result).replace(
259
- t('USER', 'user').toLowerCase(),
260
- t('PHONE_NUMER', 'Phone number'),
261
- )
262
- : getTraduction(formState.result?.result[0]).replace(
263
- t('USER', 'user').toLowerCase(),
264
- t('PHONE_NUMER', 'Phone number'),
265
- ),
282
+ ? getTraduction(formState.result?.result[0])
283
+ : loginTab === 'cellphone' &&
284
+ typeof formState.result?.result === 'string'
285
+ ? getTraduction(formState.result?.result).replace(
286
+ t('USER', 'user').toLowerCase(),
287
+ t('PHONE_NUMER', 'Phone number'),
288
+ )
289
+ : getTraduction(formState.result?.result[0]).replace(
290
+ t('USER', 'user').toLowerCase(),
291
+ t('PHONE_NUMER', 'Phone number'),
292
+ ),
266
293
  );
267
294
  setSubmitted(false)
268
295
  }
@@ -516,7 +543,7 @@ const LoginFormUI = (props: LoginParams) => {
516
543
  icon={theme.images.general.project}
517
544
  iconColor={theme.colors.arrowColor}
518
545
  onChange={(e: any) => {
519
- setProjectName({name: e?.target?.value, isFocued: true})
546
+ setProjectName({ name: e?.target?.value, isFocued: true })
520
547
  onChange(e?.target?.value);
521
548
  setSubmitted(false);
522
549
  }}
@@ -545,7 +572,7 @@ const LoginFormUI = (props: LoginParams) => {
545
572
  icon={theme.images.logos.emailInputIcon}
546
573
  iconColor={theme.colors.arrowColor}
547
574
  onChange={(e: any) => {
548
- setProjectName({...projectName, isFocued: false})
575
+ setProjectName({ ...projectName, isFocued: false })
549
576
  handleChangeInputEmail(e, onChange);
550
577
  }}
551
578
  selectionColor={theme.colors.primary}
@@ -650,40 +677,50 @@ const LoginFormUI = (props: LoginParams) => {
650
677
  </OText>
651
678
  </Pressable>
652
679
  )}
653
-
654
- {enableReCaptcha && (
680
+ {(enableReCaptcha && recaptchaConfig?.version) && (
655
681
  <>
656
- <TouchableOpacity
657
- style={{ marginBottom: 15 }}
658
- onPress={handleOpenRecaptcha}
659
- >
660
- <RecaptchaButton>
661
- {recaptchaVerified ? (
662
- <MaterialCommunityIcons
663
- name="checkbox-marked"
664
- size={26}
665
- color={theme.colors.primary}
666
- />
667
- ) : (
668
- <MaterialCommunityIcons
669
- name="checkbox-blank-outline"
670
- size={26}
671
- color={theme.colors.mediumGray}
672
- />
673
- )}
674
- <OText size={14} mLeft={8}>{t('VERIFY_ReCAPTCHA', 'Verify reCAPTCHA')}</OText>
675
- </RecaptchaButton>
676
- </TouchableOpacity>
677
- <Recaptcha
678
- ref={recaptchaRef}
679
- siteKey={recaptchaConfig?.siteKey}
680
- baseUrl={recaptchaConfig?.baseUrl}
681
- onVerify={onRecaptchaVerify}
682
- onExpire={() => setRecaptchaVerified(false)}
683
- />
682
+ {recaptchaConfig?.version === 'v3' ? (
683
+ <ReCaptcha
684
+ url={recaptchaConfig?.baseUrl}
685
+ siteKey={recaptchaConfig?.siteKey}
686
+ containerStyle={{ height: 40 }}
687
+ onExecute={onRecaptchaVerify}
688
+ reCaptchaType={1}
689
+ />
690
+ ) : (
691
+ <>
692
+ <TouchableOpacity
693
+ style={{ marginBottom: 15 }}
694
+ onPress={handleOpenRecaptcha}
695
+ >
696
+ <RecaptchaButton>
697
+ {recaptchaVerified ? (
698
+ <MaterialCommunityIcons
699
+ name="checkbox-marked"
700
+ size={26}
701
+ color={theme.colors.primary}
702
+ />
703
+ ) : (
704
+ <MaterialCommunityIcons
705
+ name="checkbox-blank-outline"
706
+ size={26}
707
+ color={theme.colors.mediumGray}
708
+ />
709
+ )}
710
+ <OText size={14} mLeft={8}>{t('VERIFY_ReCAPTCHA', 'Verify reCAPTCHA')}</OText>
711
+ </RecaptchaButton>
712
+ </TouchableOpacity>
713
+ <Recaptcha
714
+ ref={recaptchaRef}
715
+ siteKey={recaptchaConfig?.siteKey}
716
+ baseUrl={recaptchaConfig?.baseUrl}
717
+ onVerify={onRecaptchaVerify}
718
+ onExpire={() => setRecaptchaVerified(false)}
719
+ />
720
+ </>)
721
+ }
684
722
  </>
685
- )}
686
-
723
+ )}
687
724
  <OButton
688
725
  onClick={handleLogin}
689
726
  text={t('LOGIN', 'Login')}
@@ -15,7 +15,7 @@ const LogoutButtonUI = (props: any) => {
15
15
  const data = await _retrieveStoreData('notification_state');
16
16
  const res = await handleLogoutClick(data);
17
17
  if (res) {
18
- _clearStoreData({ excludedKeys: ['project_name'] });
18
+ _clearStoreData({ excludedKeys: ['isTutorial'] });
19
19
  }
20
20
  };
21
21
 
@@ -191,7 +191,7 @@ const MapViewComponent = (props: MapViewParams) => {
191
191
  {((customer && marker?.business?.zipcode) || (!customer && marker?.business?.zipcode)) && (
192
192
  <OText>{customer ? marker?.customer?.zipcode : marker?.business?.zipcode}</OText>
193
193
  )}
194
- {customer && marker?.customer?.internal_number && (
194
+ {customer && !!marker?.customer?.internal_number && (
195
195
  <OText>{marker?.customer?.internal_number}</OText>
196
196
  )}
197
197
  <OText textDecorationLine='underline' color={theme.colors.primary}>
@@ -5,6 +5,7 @@ import {
5
5
  StyleSheet,
6
6
  Dimensions,
7
7
  ScrollView,
8
+ RefreshControl,
8
9
  } from 'react-native';
9
10
  import { Contacts, useLanguage } from 'ordering-components/native';
10
11
  import { useTheme } from 'styled-components/native';
@@ -24,6 +25,7 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
24
25
  messages,
25
26
  onNavigationRedirect,
26
27
  setSortBy,
28
+ getOrders
27
29
  } = props;
28
30
 
29
31
  const theme = useTheme();
@@ -55,6 +57,7 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
55
57
  const [tabsFilter, setTabsFilter] = useState(tabs[0].tags);
56
58
  const [activeTag, setActiveTag] = useState(tags[0].key);
57
59
  const [reload, setReload] = useState(false);
60
+ const [refreshing] = useState(false);
58
61
  const [unreadMessages, setUnreadMessages] = useState(
59
62
  values?.reduce(
60
63
  (total: number, order: any) => total + order.unread_count,
@@ -247,7 +250,14 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
247
250
  />
248
251
  )}
249
252
 
250
- <ScrollView showsVerticalScrollIndicator={false} style={{ flex: 1 }}>
253
+ <ScrollView
254
+ showsVerticalScrollIndicator={false}
255
+ style={{ flex: 1 }}
256
+ refreshControl={<RefreshControl
257
+ refreshing={refreshing}
258
+ onRefresh={() => getOrders?.()}
259
+ />}
260
+ >
251
261
  {!reload &&
252
262
  !error &&
253
263
  values.length > 0 &&
@@ -439,7 +439,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
439
439
  <>
440
440
  <OrderContentComponent order={order} />
441
441
  {(order?.status === 7 || order?.status === 4) &&
442
- order?.delivery_type === 1 && (
442
+ order?.delivery_type === 1 && configs?.assign_driver_enabled?.value === '1' && (
443
443
  <AssignDriver>
444
444
  <OText style={{ marginBottom: 5 }} size={16} weight="600">
445
445
  {t('ASSIGN_DRIVER', 'Assign driver')}
@@ -247,17 +247,17 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
247
247
  let isToFollow = false;
248
248
  let isBusinessMarker = false;
249
249
 
250
- if (order?.status === 7 || order?.status === 8) {
250
+ if (order?.status === 7 || order?.status === 8 || order?.status === 18) {
251
251
  const markerBusiness = 'Business';
252
252
  isBusinessMarker = true;
253
253
  locationMarker = locations.find(
254
254
  (location: any) => location.type === markerBusiness,
255
255
  );
256
256
 
257
- if (order?.status === 8) {
257
+ if (order?.status === 8 || order?.status === 18) {
258
258
  isToFollow = true;
259
259
  }
260
- } else if (order?.status === 3 || order?.status === 9) {
260
+ } else if (order?.status === 3 || order?.status === 9 || order?.status === 19 || order?.status === 23) {
261
261
  const markerCustomer = 'Customer';
262
262
  isToFollow = true;
263
263
  isBusinessMarker = false;