ordering-ui-react-native 0.17.99 → 0.18.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 (257) hide show
  1. package/package.json +9 -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 +0 -20
  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 +7 -2
  13. package/themes/business/index.tsx +2 -0
  14. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +36 -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/index.tsx +5 -2
  22. package/themes/business/src/components/MapView/index.tsx +14 -10
  23. package/themes/business/src/components/MessagesOption/index.tsx +22 -94
  24. package/themes/business/src/components/NewOrderNotification/index.tsx +123 -96
  25. package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
  26. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  27. package/themes/business/src/components/OrderDetails/Delivery.tsx +209 -15
  28. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +91 -43
  29. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +87 -66
  30. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +200 -0
  31. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  32. package/themes/business/src/components/OrderMessage/index.tsx +19 -18
  33. package/themes/business/src/components/OrderSummary/index.tsx +114 -123
  34. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  35. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  36. package/themes/business/src/components/OrdersOption/index.tsx +60 -47
  37. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  38. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  39. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +21 -29
  40. package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
  41. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  42. package/themes/business/src/components/PreviousOrders/index.tsx +198 -221
  43. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  44. package/themes/business/src/components/ProductItemAccordion/index.tsx +7 -1
  45. package/themes/business/src/components/ReviewCustomer/index.tsx +18 -13
  46. package/themes/business/src/components/StoresList/index.tsx +3 -4
  47. package/themes/business/src/components/UserProfileForm/index.tsx +14 -15
  48. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  49. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  50. package/themes/business/src/components/shared/OModal.tsx +16 -9
  51. package/themes/business/src/types/index.tsx +24 -10
  52. package/themes/business/src/utils/index.tsx +29 -2
  53. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  54. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  55. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  56. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  57. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  58. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -5
  59. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  60. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  61. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  62. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  63. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  64. package/themes/original/index.tsx +7 -3
  65. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  66. package/themes/original/src/components/AddressForm/index.tsx +33 -15
  67. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  68. package/themes/original/src/components/AddressList/index.tsx +5 -8
  69. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  70. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  71. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  72. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  73. package/themes/original/src/components/BusinessBasicInformation/index.tsx +74 -38
  74. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +11 -13
  75. package/themes/original/src/components/BusinessController/index.tsx +35 -44
  76. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  77. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  78. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  79. package/themes/original/src/components/BusinessInformation/index.tsx +140 -85
  80. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  81. package/themes/original/src/components/BusinessItemAccordion/index.tsx +25 -26
  82. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  83. package/themes/original/src/components/BusinessListingSearch/index.tsx +346 -341
  84. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -19
  85. package/themes/original/src/components/BusinessPreorder/index.tsx +105 -22
  86. package/themes/original/src/components/BusinessPreorder/styles.tsx +14 -0
  87. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -3
  88. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  89. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  90. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  91. package/themes/original/src/components/BusinessProductsListing/index.tsx +162 -39
  92. package/themes/original/src/components/BusinessProductsListing/styles.tsx +4 -5
  93. package/themes/original/src/components/BusinessReviews/index.tsx +4 -2
  94. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  95. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  96. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  97. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  98. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  99. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +37 -404
  100. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  101. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  102. package/themes/original/src/components/Cart/index.tsx +49 -47
  103. package/themes/original/src/components/CartContent/index.tsx +99 -38
  104. package/themes/original/src/components/CartContent/styles.tsx +6 -6
  105. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  106. package/themes/original/src/components/Checkout/index.tsx +324 -43
  107. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  108. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  109. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  110. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  111. package/themes/original/src/components/DatePicker/index.tsx +17 -0
  112. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  113. package/themes/original/src/components/DriverTips/index.tsx +12 -4
  114. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  115. package/themes/original/src/components/Favorite/index.tsx +4 -9
  116. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  117. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  118. package/themes/original/src/components/GPSButton/index.tsx +7 -5
  119. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  120. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +42 -5
  121. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +3 -1
  122. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +84 -8
  123. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  124. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  125. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  126. package/themes/original/src/components/GoogleMap/index.tsx +63 -7
  127. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  128. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  129. package/themes/original/src/components/Home/index.tsx +14 -5
  130. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  131. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  132. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  133. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  134. package/themes/original/src/components/LottieAnimation/index.tsx +88 -63
  135. package/themes/original/src/components/MessageListing/index.tsx +9 -2
  136. package/themes/original/src/components/Messages/index.tsx +15 -4
  137. package/themes/original/src/components/Messages/styles.tsx +1 -1
  138. package/themes/original/src/components/MomentOption/index.tsx +44 -39
  139. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  140. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  141. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +161 -49
  142. package/themes/original/src/components/MultiCheckout/index.tsx +348 -70
  143. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  144. package/themes/original/src/components/MultiOrdersDetails/index.tsx +2 -2
  145. package/themes/original/src/components/MyOrders/index.tsx +16 -5
  146. package/themes/original/src/components/NavBar/index.tsx +20 -13
  147. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  148. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  149. package/themes/original/src/components/Notifications/index.tsx +2 -4
  150. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  151. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  152. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +22 -6
  153. package/themes/original/src/components/OrderDetails/index.tsx +721 -670
  154. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  155. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  156. package/themes/original/src/components/OrderProgress/index.tsx +34 -25
  157. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  158. package/themes/original/src/components/OrderSummary/index.tsx +62 -57
  159. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  160. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  161. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +13 -13
  162. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  163. package/themes/original/src/components/OrdersOption/index.tsx +44 -21
  164. package/themes/original/src/components/OrdersOption/styles.tsx +2 -2
  165. package/themes/original/src/components/PageBanner/index.tsx +65 -29
  166. package/themes/original/src/components/PageBanner/styles.tsx +0 -3
  167. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  168. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  169. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  170. package/themes/original/src/components/PaymentOptions/index.tsx +100 -34
  171. package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
  172. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  173. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  174. package/themes/original/src/components/ProductForm/index.tsx +106 -170
  175. package/themes/original/src/components/ProductForm/styles.tsx +3 -3
  176. package/themes/original/src/components/ProductItemAccordion/index.tsx +13 -6
  177. package/themes/original/src/components/ProductOptionSubOption/index.tsx +49 -20
  178. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +10 -9
  179. package/themes/original/src/components/ProfessionalProfile/index.tsx +35 -6
  180. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  181. package/themes/original/src/components/Promotions/index.tsx +6 -6
  182. package/themes/original/src/components/Promotions/styles.tsx +3 -3
  183. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  184. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  185. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  186. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  187. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  188. package/themes/original/src/components/ServiceForm/index.tsx +36 -24
  189. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  190. package/themes/original/src/components/SignupForm/index.tsx +27 -16
  191. package/themes/original/src/components/SingleOrderCard/index.tsx +44 -20
  192. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  193. package/themes/original/src/components/SingleProductCard/index.tsx +13 -10
  194. package/themes/original/src/components/SingleProductCard/styles.tsx +8 -3
  195. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  196. package/themes/original/src/components/StripeCardsList/index.tsx +61 -5
  197. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  198. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  199. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  200. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  201. package/themes/original/src/components/UpsellingProducts/index.tsx +16 -205
  202. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  203. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  204. package/themes/original/src/components/UserFormDetails/index.tsx +100 -22
  205. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  206. package/themes/original/src/components/UserProfile/index.tsx +8 -26
  207. package/themes/original/src/components/UserProfileForm/index.tsx +30 -31
  208. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  209. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  210. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  211. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  212. package/themes/original/src/components/Wallets/index.tsx +48 -60
  213. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  214. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  215. package/themes/original/src/components/shared/OButton.tsx +3 -3
  216. package/themes/original/src/components/shared/OInput.tsx +4 -5
  217. package/themes/original/src/components/shared/OModal.tsx +15 -17
  218. package/themes/original/src/layouts/Container.tsx +1 -1
  219. package/themes/original/src/types/index.tsx +28 -6
  220. package/themes/original/src/utils/index.tsx +180 -13
  221. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  222. package/src/navigators/BottomNavigator.tsx +0 -117
  223. package/src/navigators/CheckoutNavigator.tsx +0 -66
  224. package/src/navigators/HomeNavigator.tsx +0 -202
  225. package/src/navigators/NavigationRef.tsx +0 -7
  226. package/src/navigators/RootNavigator.tsx +0 -269
  227. package/src/pages/Account.tsx +0 -34
  228. package/src/pages/AddressForm.tsx +0 -62
  229. package/src/pages/AddressList.tsx +0 -24
  230. package/src/pages/BusinessProductsList.tsx +0 -81
  231. package/src/pages/BusinessesListing.tsx +0 -43
  232. package/src/pages/CartList.tsx +0 -49
  233. package/src/pages/Checkout.tsx +0 -101
  234. package/src/pages/ForgotPassword.tsx +0 -24
  235. package/src/pages/Help.tsx +0 -23
  236. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  237. package/src/pages/HelpGuide.tsx +0 -23
  238. package/src/pages/HelpOrder.tsx +0 -23
  239. package/src/pages/Home.tsx +0 -36
  240. package/src/pages/IntroductoryTutorial.tsx +0 -170
  241. package/src/pages/Login.tsx +0 -47
  242. package/src/pages/MomentOption.tsx +0 -30
  243. package/src/pages/MultiCheckout.tsx +0 -31
  244. package/src/pages/MultiOrdersDetails.tsx +0 -27
  245. package/src/pages/MyOrders.tsx +0 -40
  246. package/src/pages/NetworkError.tsx +0 -24
  247. package/src/pages/NotFound.tsx +0 -22
  248. package/src/pages/OrderDetails.tsx +0 -25
  249. package/src/pages/ProductDetails.tsx +0 -55
  250. package/src/pages/Profile.tsx +0 -36
  251. package/src/pages/ReviewDriver.tsx +0 -30
  252. package/src/pages/ReviewOrder.tsx +0 -32
  253. package/src/pages/ReviewProducts.tsx +0 -30
  254. package/src/pages/Sessions.tsx +0 -22
  255. package/src/pages/Signup.tsx +0 -53
  256. package/src/pages/SpinnerLoader.tsx +0 -10
  257. package/src/pages/Splash.tsx +0 -21
@@ -47,10 +47,10 @@ export const getTraduction = (key: string, t: any) => {
47
47
  */
48
48
  export const convertHoursToMinutes = (time: any) => {
49
49
  const [, t] = useLanguage()
50
- if (!time) return '0min'
50
+ if (!time) return `0 ${t('TIME_MIN', 'min')}`
51
51
  const [hour, minute] = time.split(':')
52
52
  const result = (parseInt(hour, 10) * 60) + parseInt(minute, 10)
53
- return `${result}${t('MIN', 'min')}`
53
+ return `${result}${t('TIME_MIN', 'min')}`
54
54
  }
55
55
 
56
56
  export const getIconCard = (brand: string, size: number) => {
@@ -154,6 +154,11 @@ export const transformCountryCode = (countryCode : number) => {
154
154
  return code?.countryCode
155
155
  }
156
156
 
157
+ export const verifyCountryCode = (countryCode : string) => {
158
+ const code = CODES.find((code : any) => code.countryCode === (countryCode || '').toUpperCase())
159
+ return code?.countryCode
160
+ }
161
+
157
162
  /**
158
163
  * Function to check if a number is decimal or not
159
164
  * @param {*} value number to check if decimal or not
@@ -41,6 +41,7 @@ import { MapViewUI as MapView } from './src/components/MapView'
41
41
  import { NewOrderNotification } from './src/components/NewOrderNotification';
42
42
  import { DriverSchedule } from './src/components/DriverSchedule';
43
43
  import { ScheduleBlocked } from './src/components/ScheduleBlocked';
44
+ import { OrderDetailsLogistic } from './src/components/OrderDetailsLogistic'
44
45
  //OComponents
45
46
  import {
46
47
  OText,
@@ -110,6 +111,7 @@ export {
110
111
  VerifyPhone,
111
112
  DriverSchedule,
112
113
  ScheduleBlocked,
114
+ OrderDetailsLogistic,
113
115
  //OComponents
114
116
  OAlert,
115
117
  OButton,
@@ -7,13 +7,14 @@ import {
7
7
  View,
8
8
  KeyboardAvoidingView,
9
9
  TextInput,
10
- StyleSheet
10
+ StyleSheet,
11
+ TouchableOpacity
11
12
  } from 'react-native';
12
13
  import { useTheme } from 'styled-components/native';
13
14
  import SelectDropdown from 'react-native-select-dropdown'
14
15
  import { useLanguage } from 'ordering-components/native';
15
16
  import { Content, Timer, TimeField, Header, Comments, CommentsButtonGroup, TopActions } from './styles';
16
- import { OText, OButton, OTextarea, OIconButton } from '../shared';
17
+ import { OText, OButton, OTextarea, OIcon } from '../shared';
17
18
  import { AcceptOrRejectOrderParams } from '../../types';
18
19
 
19
20
  import { orderCommentList } from '../../../../../src/utils'
@@ -95,7 +96,7 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
95
96
  upper: {
96
97
  flex: 1,
97
98
  zIndex: 1001,
98
- paddingTop: isPage ? 30 : 50,
99
+ paddingTop: isPage ? 30 : 40,
99
100
  marginBottom: 10,
100
101
  backgroundColor: theme.colors.backgroundPage
101
102
  },
@@ -109,7 +110,18 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
109
110
  bottom: {
110
111
  textAlignVertical: "center",
111
112
  textAlign: "center",
112
- }
113
+ },
114
+ btnBackArrow: {
115
+ borderWidth: 0,
116
+ width: 32,
117
+ height: 32,
118
+ tintColor: theme.colors.textGray,
119
+ backgroundColor: theme.colors.clear,
120
+ borderColor: theme.colors.clear,
121
+ shadowColor: theme.colors.clear,
122
+ paddingLeft: 0,
123
+ paddingRight: 0
124
+ },
113
125
  })
114
126
 
115
127
  const handleFocus = () => {
@@ -203,7 +215,7 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
203
215
  status: 7,
204
216
  },
205
217
  rejectByBusiness: {
206
- comment: comments,
218
+ reasons: comments,
207
219
  status: 5,
208
220
  },
209
221
  acceptByDriver: {
@@ -211,22 +223,22 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
211
223
  status: 8,
212
224
  },
213
225
  rejectByDriver: {
214
- comment: comments,
226
+ reasons: comments,
215
227
  status: 6,
216
228
  reject_reason: rejectReason
217
229
  },
218
230
  pickupFailedByDriver: {
219
- comment: comments,
231
+ reasons: comments,
220
232
  status: 10,
221
233
  reject_reason: rejectReason
222
234
  },
223
235
  deliveryFailedByDriver: {
224
- comment: comments,
236
+ reasons: comments,
225
237
  status: 12,
226
238
  reject_reason: rejectReason
227
239
  },
228
240
  orderNotReady: {
229
- comment: comments,
241
+ reasons: comments,
230
242
  status: 14,
231
243
  reject_reason: rejectReason
232
244
  },
@@ -295,22 +307,17 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
295
307
  }, [])
296
308
 
297
309
  return (
298
- <KeyboardAvoidingView style={{ flex: 1 }}>
310
+ <KeyboardAvoidingView
311
+ enabled
312
+ behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
313
+ style={{ flex: 1 }}
314
+ >
299
315
  <View style={styles.parent}>
300
316
  <View style={styles.upper}>
301
317
  <TopActions>
302
- <OIconButton
303
- icon={theme.images.general.arrow_left}
304
- borderColor={theme.colors.clear}
305
- iconStyle={{ width: 20, height: 20 }}
306
- style={{
307
- maxWidth: 40,
308
- height: 35,
309
- justifyContent: 'flex-end',
310
- marginBottom: 10,
311
- }}
312
- onClick={() => handleArrowBack()}
313
- />
318
+ <TouchableOpacity onPress={() => handleArrowBack()} style={styles.btnBackArrow}>
319
+ <OIcon src={theme.images.general.arrow_left} color={theme.colors.textGray} />
320
+ </TouchableOpacity>
314
321
  <OText
315
322
  size={20}
316
323
  color={theme.colors.textGray}
@@ -339,7 +346,7 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
339
346
  )}
340
347
  </OText>
341
348
 
342
- {numberToShow ? (
349
+ {!!numberToShow ? (
343
350
  <OButton
344
351
  bgColor="transparent"
345
352
  borderColor={theme.colors.primary}
@@ -508,7 +515,10 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
508
515
  <View
509
516
  style={{
510
517
  ...styles.bottomParent,
511
- marginBottom: (keyboardState.height === 0) ? isPage ? 0 : 30 : keyboardState.height - (isPage ? 20 : -10)
518
+ marginBottom: Platform.OS === 'ios'
519
+ ? 30 : (keyboardState.height === 0)
520
+ ? isPage ? 0 : 30
521
+ : keyboardState.height - (isPage ? 20 : -10)
512
522
  }}
513
523
  >
514
524
  <OButton
@@ -518,8 +528,8 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
518
528
  imgRightSrc={null}
519
529
  style={{ borderRadius: 7, height: 45 }}
520
530
  parentStyle={{ width: '100%' }}
521
- textStyle={{color: '#FFF', fontSize: 18 }}
522
- isDisabled={!rejectReason && showTextArea}
531
+ textStyle={{ color: '#FFF', fontSize: 18 }}
532
+ isDisabled={showTextArea && !comments}
523
533
  onClick={() => handleAcceptOrReject()}
524
534
  />
525
535
  </View>
@@ -97,7 +97,6 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
97
97
  <Logo style={styles.logo}>
98
98
  <OIcon
99
99
  url={optimizeImage(business?.logo, 'h_300,c_limit')}
100
- src={!business?.logo && theme?.images?.dummies?.businessLogo}
101
100
  style={styles.icon}
102
101
  />
103
102
  </Logo>
@@ -69,6 +69,8 @@ const ChatUI = (props: MessagesParams) => {
69
69
  const [, { showToast }] = useToast();
70
70
  const theme = useTheme();
71
71
  const [messageList, setMessageList] = useState<any>([])
72
+ const previousStatus = [1, 2, 5, 6, 10, 11, 12, 16, 17]
73
+ const chatDisabled = previousStatus.includes(order?.status)
72
74
 
73
75
  const ORDER_STATUS: any = {
74
76
  0: t('ORDER_STATUS_PENDING', 'Order status pending'),
@@ -97,6 +99,17 @@ const ChatUI = (props: MessagesParams) => {
97
99
  23: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
98
100
  }
99
101
 
102
+ const getLogisticTag = (status: any) => {
103
+ const keyList: any = {
104
+ 0: t('PENDING', 'Pending'),
105
+ 1: t('IN_PROGRESS', 'In progress'),
106
+ 2: t('IN_QUEUE', 'In queue'),
107
+ 3: t('EXPIRED', 'Expired'),
108
+ 4: t('RESOLVED', 'Resolved'),
109
+ }
110
+ return keyList[status] ? keyList[status] : t('UNKNOWN', 'Unknown')
111
+ }
112
+
100
113
  const storeMessageList: any = [
101
114
  { key: 'store_message_1', text: t('STORE_MESSAGE_1', 'store_message_1') },
102
115
  { key: 'store_message_2', text: t('STORE_MESSAGE_2', 'store_message_2') },
@@ -176,12 +189,8 @@ const ChatUI = (props: MessagesParams) => {
176
189
  fontSize: 12,
177
190
  },
178
191
  toolbarStyle: {
179
- flexDirection: 'column-reverse',
180
- paddingVertical: 15,
181
- paddingHorizontal: 30,
182
- backgroundColor: theme.colors.white,
183
- borderTopWidth: 1,
184
- borderTopColor: theme.colors.tabBar,
192
+ padding: Platform.OS === 'ios' && isKeyboardShow ? 0 : 10,
193
+ flexDirection: 'column-reverse'
185
194
  },
186
195
  accessoryIcon: {
187
196
  height: 32,
@@ -314,14 +323,16 @@ const ChatUI = (props: MessagesParams) => {
314
323
  quality: 1
315
324
  },
316
325
  (response: any) => {
317
- if (response.didCancel) {
326
+ const image = response.assets?.[0];
327
+ if (!image) return
328
+ if (image.didCancel) {
318
329
  console.log('User cancelled image picker');
319
- } else if (response.errorMessage) {
320
- console.log('ImagePicker Error: ', response.errorMessage);
321
- showToast(ToastType.Error, response.errorMessage);
330
+ } else if (image.errorMessage) {
331
+ console.log('ImagePicker Error: ', image.errorMessage);
332
+ showToast(ToastType.Error, image.errorMessage);
322
333
  } else {
323
- if (response.uri) {
324
- const url = `data:${response.type};base64,${response.base64}`;
334
+ if (image.uri) {
335
+ const url = `data:${image.type};base64,${image.base64}`;
325
336
  setImage && setImage(url);
326
337
  } else {
327
338
  showToast(ToastType.Error, t('IMAGE_NOT_FOUND', 'Image not found'));
@@ -372,18 +383,34 @@ const ChatUI = (props: MessagesParams) => {
372
383
  }}>
373
384
  <OText
374
385
  numberOfLines={3}
375
- style={{ ...styles.firstMessageText, textAlign: 'center' }}>
376
- {message.change?.attribute !== 'driver_id'
377
- ?
378
- `${t('ORDER', 'Order')} ${t(message.change.attribute.toUpperCase(), message.change.attribute.replace('_', ' '))} ${t('CHANGED_FROM', 'Changed from')} ${filterSpecialStatus.includes(message.change.attribute) ?
379
- `${message.change.old === null ? '0' : message.change.old} ${t('TO', 'to')} ${message.change.new} ${t('MINUTES', 'Minutes')}` :
380
- `${message.change.old !== null && ORDER_STATUS[parseInt(message.change.old, 10)]} ${t('TO', 'to')} ${ORDER_STATUS[parseInt(message.change.new, 10)]}`
381
- }`
382
- : message.change.new
386
+ style={{ ...styles.firstMessageText, textAlign: 'center' }}
387
+ >
388
+ {
389
+ message.change?.attribute === 'driver_group_id'
390
+ ? message.change.old
391
+ ? t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
392
+ .replace('_attribute_', t(message.change?.attribute.toUpperCase()).toLowerCase())
393
+ .replace('_from_', message.change.old)
394
+ .replace('_to_', message.change.new)
395
+ : t('ORDER_ATTRIBUTE_CHANGED_TO')
396
+ .replace('_attribute_', t(message.change?.attribute.toUpperCase()).toLowerCase())
397
+ .replace('_to_', message.change.new)
398
+ : message.change?.attribute !== 'driver_id'
383
399
  ?
384
- `${message.driver?.name} ${message.driver?.lastname !== null ? message.driver.lastname : ''} ${t('WAS_ASSIGNED_AS_DRIVER', 'Was assigned as driver')} ${message.comment ? message.comment.length : ''}`
385
- :
386
- `${t('DRIVER_UNASSIGNED', 'Driver unassigned')}`}
400
+ `${t('ORDER', 'Order')} ${t(message.change.attribute.toUpperCase(), message.change.attribute.replace('_', ' '))} ${t('CHANGED_FROM', 'Changed from')} ${filterSpecialStatus.includes(message.change.attribute)
401
+ ? `${message.change.old === null ? '0' : message.change.old} ${t('TO', 'to')} ${message.change.new} ${t('MINUTES', 'Minutes')}`
402
+ : `${message.change?.attribute !== 'logistic_status'
403
+ ? message.change.old !== null && t(ORDER_STATUS[parseInt(message.change.old, 10)])
404
+ : message.change.old !== null && getLogisticTag(message.change.old)} ${t('TO', 'to')} ${message.change?.attribute !== 'logistic_status'
405
+ ? t(ORDER_STATUS[parseInt(message.change.new, 10)])
406
+ : getLogisticTag(message.change.new)}`
407
+ }`
408
+ : message.change.new
409
+ ?
410
+ `${message.driver?.name} ${message.driver?.lastname !== null ? message.driver.lastname : ''} ${t('WAS_ASSIGNED_AS_DRIVER', 'Was assigned as driver')} ${message.comment ? message.comment.length : ''}`
411
+ :
412
+ `${t('DRIVER_UNASSIGNED', 'Driver unassigned')}`
413
+ }
387
414
  </OText>
388
415
  <OText size={10} color={'#aaa'} style={{ alignSelf: 'flex-start' }}>
389
416
  {parseTime(message?.created_at, { outputFormat: 'hh:mma' })}
@@ -586,16 +613,12 @@ const ChatUI = (props: MessagesParams) => {
586
613
  };
587
614
 
588
615
  const renderAccessory = () => (
616
+ !chatDisabled &&
589
617
  <View>
590
618
  <Header
591
619
  showsVerticalScrollIndicator={false}
592
620
  showsHorizontalScrollIndicator={false}
593
621
  horizontal
594
- // contentContainerStyle={{
595
- // justifyContent:
596
- // orientation === 'Landscape' ? 'center' : 'space-between',
597
- // width: '100%',
598
- // }}
599
622
  nestedScrollEnabled={true}
600
623
  >
601
624
  {user?.level !== 2 && (
@@ -766,113 +789,130 @@ const ChatUI = (props: MessagesParams) => {
766
789
  containerStyle={styles.toolbarStyle}
767
790
  primaryStyle={{ alignItems: 'center', justifyContent: 'space-between' }}
768
791
  accessoryStyle={{ position: 'relative', marginBottom: 45 }}
769
- renderAccessory={order ? () => renderAccessory && renderAccessory() : undefined}
792
+ renderAccessory={() => renderAccessory()}
770
793
  />
771
794
  );
772
795
 
773
796
  const renderComposer = (props: any) => (
774
- <View
775
- style={{
776
- flexDirection: 'row',
777
- height: 44,
778
- width: '85%',
779
- backgroundColor: theme.colors.composerView,
780
- borderRadius: 7.6,
781
- alignItems: 'center',
782
- justifyContent: 'center',
783
- paddingRight: 10,
784
- }}>
785
- <Composer
786
- {...props}
787
- textInputStyle={{
788
- borderRadius: 7.6,
789
- borderColor: theme.colors.transparent,
790
- borderWidth: 0,
791
- color: '#010300',
792
- }}
793
- textInputProps={{
794
- value: message,
795
- onSubmitEditing: onSubmit,
796
- returnKeyType: message ? 'send' : 'done',
797
- blurOnSubmit: true,
798
- multiline: false,
799
- numberOfLines: 1,
800
- autoCorrect: false,
801
- autoCompleteType: 'off',
802
- enablesReturnKeyAutomatically: false,
803
- selectionColor: theme.colors.primary,
797
+ chatDisabled ? (
798
+ <View
799
+ style={{
800
+ width: '100%',
801
+ flexDirection: 'column',
802
+ alignItems: 'center'
804
803
  }}
805
- placeholder={t('WRITE_MESSAGE', 'Write message')}
806
- placeholderTextColor={theme.colors.composerPlaceHolder}
807
- />
808
-
809
- <TouchableOpacity
810
- onPress={() => {
811
- setImage && setImage(null);
812
- setIsShowSignaturePad(!isShowSignaturePad);
813
- }}>
804
+ >
814
805
  <MaterialCommunityIcon
815
- name="pen"
816
- color={
817
- isShowSignaturePad ? theme.colors.primary : theme.colors.arrowColor
818
- }
806
+ name='close-octagon-outline'
819
807
  size={24}
820
808
  />
821
- </TouchableOpacity>
822
-
823
- {!file.type && (
824
- <Actions
809
+ <OText size={14}>{t('NOT_SEND_MESSAGES', 'You can\'t send messages because the order has ended')}</OText>
810
+ </View>
811
+ ) : (
812
+ <View
813
+ style={{
814
+ flexDirection: 'row',
815
+ height: 44,
816
+ width: '85%',
817
+ backgroundColor: theme.colors.composerView,
818
+ borderRadius: 7.6,
819
+ alignItems: 'center',
820
+ justifyContent: 'center',
821
+ paddingRight: 10,
822
+ }}>
823
+ <Composer
825
824
  {...props}
826
- containerStyle={styles.containerActions}
827
- optionTintColor="#222845"
828
- icon={() => (
829
- <>
830
- {!file?.type && (
831
- <>
832
- <OIconButton
833
- borderColor={theme.colors.transparent}
834
- icon={
835
- !isShowSignaturePad && image
836
- ? { uri: image }
837
- : theme.images.general.imageChat
838
- }
839
- iconStyle={{
840
- borderRadius: image ? 10 : 0,
841
- width: image ? 32 : 28,
842
- height: image ? 32 : 28,
843
- }}
844
- onClick={handleImagePicker}
845
- iconCover
846
- />
847
-
848
- {image && !isShowSignaturePad && (
849
- <TouchableOpacity
850
- style={{
851
- position: 'absolute',
852
- top: -5,
853
- right: -5,
854
- borderColor: theme.colors.backgroundDark,
855
- backgroundColor: theme.colors.white,
856
- borderRadius: 25,
857
- }}
858
- onPress={() => removeImage()}>
859
- <MaterialCommunityIcon
860
- name="close-circle-outline"
861
- color={theme.colors.backgroundDark}
862
- size={24}
863
- />
864
- </TouchableOpacity>
865
- )}
866
- </>
867
- )}
868
- </>
869
- )}
825
+ textInputStyle={{
826
+ borderRadius: 7.6,
827
+ borderColor: theme.colors.transparent,
828
+ borderWidth: 0,
829
+ color: '#010300',
830
+ }}
831
+ textInputProps={{
832
+ value: message,
833
+ onSubmitEditing: onSubmit,
834
+ returnKeyType: message ? 'send' : 'done',
835
+ blurOnSubmit: true,
836
+ multiline: false,
837
+ numberOfLines: 1,
838
+ autoCorrect: false,
839
+ autoCompleteType: 'off',
840
+ enablesReturnKeyAutomatically: false,
841
+ selectionColor: theme.colors.primary,
842
+ }}
843
+ placeholder={t('WRITE_MESSAGE', 'Write message')}
844
+ placeholderTextColor={theme.colors.composerPlaceHolder}
870
845
  />
871
- )}
872
- </View>
846
+
847
+ <TouchableOpacity
848
+ onPress={() => {
849
+ setImage && setImage(null);
850
+ setIsShowSignaturePad(!isShowSignaturePad);
851
+ }}>
852
+ <MaterialCommunityIcon
853
+ name="pen"
854
+ color={
855
+ isShowSignaturePad ? theme.colors.primary : theme.colors.arrowColor
856
+ }
857
+ size={24}
858
+ />
859
+ </TouchableOpacity>
860
+
861
+ {!file.type && (
862
+ <Actions
863
+ {...props}
864
+ containerStyle={styles.containerActions}
865
+ optionTintColor="#222845"
866
+ icon={() => (
867
+ <>
868
+ {!file?.type && (
869
+ <>
870
+ <OIconButton
871
+ borderColor={theme.colors.transparent}
872
+ icon={
873
+ !isShowSignaturePad && image
874
+ ? { uri: image }
875
+ : theme.images.general.imageChat
876
+ }
877
+ iconStyle={{
878
+ borderRadius: image ? 10 : 0,
879
+ width: image ? 32 : 28,
880
+ height: image ? 32 : 28,
881
+ }}
882
+ onClick={handleImagePicker}
883
+ iconCover
884
+ />
885
+
886
+ {!!image && !isShowSignaturePad && (
887
+ <TouchableOpacity
888
+ style={{
889
+ position: 'absolute',
890
+ top: -5,
891
+ right: -5,
892
+ borderColor: theme.colors.backgroundDark,
893
+ backgroundColor: theme.colors.white,
894
+ borderRadius: 25,
895
+ }}
896
+ onPress={() => removeImage()}>
897
+ <MaterialCommunityIcon
898
+ name="close-circle-outline"
899
+ color={theme.colors.backgroundDark}
900
+ size={24}
901
+ />
902
+ </TouchableOpacity>
903
+ )}
904
+ </>
905
+ )}
906
+ </>
907
+ )}
908
+ />
909
+ )}
910
+ </View>
911
+ )
873
912
  );
874
913
 
875
914
  const renderSend = (props: any) => (
915
+ !chatDisabled &&
876
916
  <Send
877
917
  {...props}
878
918
  disabled={
@@ -1050,7 +1090,7 @@ const ChatUI = (props: MessagesParams) => {
1050
1090
  .m-signature-pad {
1051
1091
  box-shadow: none;
1052
1092
  border: none;
1053
- }
1093
+ }
1054
1094
  .m-signature-pad--body {
1055
1095
  border: none;
1056
1096
  }
@@ -12,7 +12,7 @@ import Icon from 'react-native-vector-icons/FontAwesome5';
12
12
  import { useTheme } from 'styled-components/native';
13
13
  import { useLocation } from '../../hooks/useLocation';
14
14
  import { FloatingButton } from '../FloatingButton';
15
- import { showLocation } from 'react-native-map-link';
15
+ import { Popup } from 'react-native-map-link';
16
16
  import { transformDistance } from '../../utils';
17
17
 
18
18
  export const DriverMap = (props: GoogleMapsParams) => {
@@ -48,6 +48,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
48
48
  const [distancesFromTwoPlacesKm, setDistancesFromTwoPlacesKm] = useState(0);
49
49
  const [isMin, setIsMin] = useState(false);
50
50
  const [{ parseDate }] = useUtils();
51
+ const [popUp, setPopUp] = useState<boolean>(false);
51
52
  const mapErrors: any = {
52
53
  ERROR_NOT_FOUND_ADDRESS: "Sorry, we couldn't find an address",
53
54
  ERROR_MAX_LIMIT_LOCATION_TO: 'Sorry, You can only set the position to',
@@ -452,7 +453,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
452
453
  {order?.delivery_datetime_utc
453
454
  ? parseDate(order?.delivery_datetime_utc)
454
455
  : parseDate(order?.delivery_datetime, { utc: false })}
455
- {` - ${order?.paymethod?.name}`}
456
+ {` - ${t(order?.paymethod?.name?.replace(/\s+/g, '_')?.toUpperCase(), order?.paymethod?.name)}`}
456
457
  </OText>
457
458
  <OText weight="bold">
458
459
  {t('INVOICE_ORDER_NO', 'Order No.')} {order?.id}
@@ -478,7 +479,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
478
479
  style={styles.arrowDistance}
479
480
  />
480
481
  <OText size={12} numberOfLines={3}>
481
- {`${transformDistance(distancesFromTwoPlacesKm, distanceUnit)} ${t(distanceUnit.toUpperCase(), distanceUnit)}`}
482
+ {`${transformDistance(distancesFromTwoPlacesKm, distanceUnit)} ${t(distanceUnit.toUpperCase(), distanceUnit)}`}
482
483
  </OText>
483
484
 
484
485
  </View>
@@ -501,7 +502,18 @@ export const DriverMap = (props: GoogleMapsParams) => {
501
502
  imgRightSrc=''
502
503
  textStyle={{ color: theme.colors.white }}
503
504
  style={styles.showButton}
504
- onClick={() => showLocation({
505
+ onClick={() => setPopUp(true)}
506
+ text={t('SHOW_IN_OTHER_MAPS', 'Show in other maps')}
507
+ />
508
+ <Popup
509
+ isVisible={popUp}
510
+ onCancelPressed={() => setPopUp(false)}
511
+ onAppPressed={() => setPopUp(false)}
512
+ onBackButtonPressed={() => setPopUp(false)}
513
+ modalProps={{
514
+ animationIn: 'slideInUp'
515
+ }}
516
+ options={{
505
517
  latitude: destination.latitude,
506
518
  longitude: destination.longitude,
507
519
  sourceLatitude: userLocation.latitude,
@@ -510,8 +522,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
510
522
  dialogTitle: t('SHOW_IN_OTHER_MAPS', 'Show in other maps'),
511
523
  dialogMessage: t('WHAT_APP_WOULD_YOU_USE', 'What app would you like to use?'),
512
524
  cancelText: t('CANCEL', 'Cancel'),
513
- })}
514
- text={t('SHOW_IN_OTHER_MAPS', 'Show in other maps')}
525
+ }}
515
526
  />
516
527
  </View>
517
528
  {showAcceptOrReject && (