ordering-ui-react-native 0.17.75 → 0.17.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 (225) hide show
  1. package/package.json +8 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/OrderCreating/index.tsx +1 -21
  6. package/src/components/PaymentOptionsWebView/index.tsx +29 -8
  7. package/src/components/PhoneInputNumber/index.tsx +6 -2
  8. package/src/components/StripeMethodForm/index.tsx +136 -102
  9. package/src/components/VerifyPhone/styles.tsx +1 -2
  10. package/src/components/shared/OToast.tsx +3 -2
  11. package/src/types/index.tsx +5 -0
  12. package/src/utils/index.tsx +5 -0
  13. package/themes/business/index.tsx +2 -0
  14. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +28 -25
  15. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  16. package/themes/business/src/components/Chat/index.tsx +149 -118
  17. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  18. package/themes/business/src/components/DriverSchedule/index.tsx +45 -8
  19. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  20. package/themes/business/src/components/LoginForm/Otp/index.tsx +31 -3
  21. package/themes/business/src/components/LoginForm/index.tsx +15 -22
  22. package/themes/business/src/components/MapView/index.tsx +10 -10
  23. package/themes/business/src/components/MessagesOption/index.tsx +20 -93
  24. package/themes/business/src/components/NewOrderNotification/index.tsx +128 -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 +191 -6
  28. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +102 -40
  29. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +61 -60
  30. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  31. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  32. package/themes/business/src/components/OrderMessage/index.tsx +19 -18
  33. package/themes/business/src/components/OrderSummary/index.tsx +114 -123
  34. package/themes/business/src/components/OrdersOption/index.tsx +20 -22
  35. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  36. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  37. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +17 -12
  38. package/themes/business/src/components/PreviousOrders/OrderList.tsx +88 -0
  39. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  40. package/themes/business/src/components/PreviousOrders/index.tsx +139 -174
  41. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  42. package/themes/business/src/components/ReviewCustomer/index.tsx +18 -13
  43. package/themes/business/src/components/StoresList/index.tsx +3 -4
  44. package/themes/business/src/components/UserProfileForm/index.tsx +14 -15
  45. package/themes/business/src/components/shared/OLink.tsx +9 -2
  46. package/themes/business/src/components/shared/OModal.tsx +16 -9
  47. package/themes/business/src/components/shared/OText.tsx +6 -1
  48. package/themes/business/src/types/index.tsx +25 -10
  49. package/themes/business/src/utils/index.tsx +29 -2
  50. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  51. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  52. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  53. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  54. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  55. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -9
  56. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  57. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  58. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  59. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  60. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  61. package/themes/original/index.tsx +1 -1
  62. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  63. package/themes/original/src/components/AddressForm/index.tsx +61 -39
  64. package/themes/original/src/components/AddressList/index.tsx +11 -6
  65. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  66. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  67. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  68. package/themes/original/src/components/BusinessBasicInformation/index.tsx +153 -96
  69. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
  70. package/themes/original/src/components/BusinessController/index.tsx +81 -68
  71. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  72. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  73. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  74. package/themes/original/src/components/BusinessInformation/index.tsx +140 -85
  75. package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
  76. package/themes/original/src/components/BusinessListingSearch/index.tsx +348 -340
  77. package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -18
  78. package/themes/original/src/components/BusinessPreorder/index.tsx +103 -19
  79. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -2
  80. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  81. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  82. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  83. package/themes/original/src/components/BusinessProductsListing/index.tsx +684 -559
  84. package/themes/original/src/components/BusinessProductsListing/styles.tsx +1 -1
  85. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  86. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +69 -38
  87. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +0 -1
  88. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  89. package/themes/original/src/components/Cart/index.tsx +76 -79
  90. package/themes/original/src/components/CartContent/index.tsx +112 -19
  91. package/themes/original/src/components/CartContent/styles.tsx +16 -6
  92. package/themes/original/src/components/Checkout/index.tsx +281 -55
  93. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  94. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  95. package/themes/original/src/components/DriverTips/index.tsx +52 -34
  96. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  97. package/themes/original/src/components/Favorite/index.tsx +2 -6
  98. package/themes/original/src/components/FavoriteList/index.tsx +1 -35
  99. package/themes/original/src/components/FloatingButton/index.tsx +10 -13
  100. package/themes/original/src/components/GPSButton/index.tsx +6 -4
  101. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +7 -3
  102. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +2 -0
  103. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +19 -6
  104. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  105. package/themes/original/src/components/GoogleMap/index.tsx +60 -5
  106. package/themes/original/src/components/Help/index.tsx +2 -2
  107. package/themes/original/src/components/HelpGuide/index.tsx +2 -2
  108. package/themes/original/src/components/HelpGuide/styles.tsx +1 -0
  109. package/themes/original/src/components/Home/index.tsx +13 -4
  110. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  111. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  112. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  113. package/themes/original/src/components/LottieAnimation/index.tsx +88 -63
  114. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  115. package/themes/original/src/components/Messages/index.tsx +14 -7
  116. package/themes/original/src/components/MomentOption/index.tsx +193 -90
  117. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  118. package/themes/original/src/components/MultiCart/index.tsx +41 -54
  119. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +162 -50
  120. package/themes/original/src/components/MultiCheckout/index.tsx +329 -100
  121. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  122. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  123. package/themes/original/src/components/MultiOrdersDetails/index.tsx +54 -21
  124. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  125. package/themes/original/src/components/MyOrders/index.tsx +37 -24
  126. package/themes/original/src/components/NavBar/index.tsx +20 -12
  127. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  128. package/themes/original/src/components/Notifications/styles.tsx +1 -5
  129. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  130. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +21 -5
  131. package/themes/original/src/components/OrderDetails/index.tsx +28 -233
  132. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  133. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  134. package/themes/original/src/components/OrderProgress/index.tsx +30 -56
  135. package/themes/original/src/components/OrderSummary/index.tsx +83 -57
  136. package/themes/original/src/components/OrderTypeSelector/index.tsx +2 -1
  137. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
  138. package/themes/original/src/components/OrdersOption/index.tsx +67 -85
  139. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  140. package/themes/original/src/components/PageBanner/index.tsx +98 -38
  141. package/themes/original/src/components/PageBanner/styles.tsx +0 -10
  142. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  143. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  144. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  145. package/themes/original/src/components/PaymentOptions/index.tsx +77 -34
  146. package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
  147. package/themes/original/src/components/ProductForm/index.tsx +101 -34
  148. package/themes/original/src/components/ProductForm/styles.tsx +3 -3
  149. package/themes/original/src/components/ProductItemAccordion/index.tsx +8 -6
  150. package/themes/original/src/components/ProductOptionSubOption/index.tsx +20 -18
  151. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +5 -9
  152. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  153. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
  154. package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
  155. package/themes/original/src/components/Promotions/index.tsx +2 -2
  156. package/themes/original/src/components/Promotions/styles.tsx +3 -1
  157. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  158. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  159. package/themes/original/src/components/ServiceForm/index.tsx +63 -20
  160. package/themes/original/src/components/Sessions/index.tsx +11 -8
  161. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  162. package/themes/original/src/components/SignupForm/index.tsx +43 -27
  163. package/themes/original/src/components/SingleOrderCard/index.tsx +102 -63
  164. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  165. package/themes/original/src/components/SingleProductCard/index.tsx +72 -31
  166. package/themes/original/src/components/SingleProductCard/styles.tsx +20 -4
  167. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  168. package/themes/original/src/components/StripeCardsList/index.tsx +49 -5
  169. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  170. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  171. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -224
  172. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  173. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  174. package/themes/original/src/components/UserFormDetails/index.tsx +78 -9
  175. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  176. package/themes/original/src/components/UserProfile/index.tsx +87 -76
  177. package/themes/original/src/components/UserProfileForm/index.tsx +10 -3
  178. package/themes/original/src/components/UserProfileForm/styles.tsx +1 -1
  179. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  180. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  181. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  182. package/themes/original/src/components/Wallets/index.tsx +56 -33
  183. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  184. package/themes/original/src/components/shared/OButton.tsx +6 -2
  185. package/themes/original/src/components/shared/OInput.tsx +6 -1
  186. package/themes/original/src/components/shared/OModal.tsx +3 -3
  187. package/themes/original/src/types/index.tsx +39 -10
  188. package/themes/original/src/utils/index.tsx +273 -1
  189. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  190. package/src/navigators/BottomNavigator.tsx +0 -117
  191. package/src/navigators/CheckoutNavigator.tsx +0 -66
  192. package/src/navigators/HomeNavigator.tsx +0 -202
  193. package/src/navigators/NavigationRef.tsx +0 -7
  194. package/src/navigators/RootNavigator.tsx +0 -269
  195. package/src/pages/Account.tsx +0 -34
  196. package/src/pages/AddressForm.tsx +0 -62
  197. package/src/pages/AddressList.tsx +0 -24
  198. package/src/pages/BusinessProductsList.tsx +0 -81
  199. package/src/pages/BusinessesListing.tsx +0 -43
  200. package/src/pages/CartList.tsx +0 -49
  201. package/src/pages/Checkout.tsx +0 -101
  202. package/src/pages/ForgotPassword.tsx +0 -24
  203. package/src/pages/Help.tsx +0 -23
  204. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  205. package/src/pages/HelpGuide.tsx +0 -23
  206. package/src/pages/HelpOrder.tsx +0 -23
  207. package/src/pages/Home.tsx +0 -36
  208. package/src/pages/IntroductoryTutorial.tsx +0 -170
  209. package/src/pages/Login.tsx +0 -47
  210. package/src/pages/MomentOption.tsx +0 -30
  211. package/src/pages/MultiCheckout.tsx +0 -31
  212. package/src/pages/MultiOrdersDetails.tsx +0 -27
  213. package/src/pages/MyOrders.tsx +0 -40
  214. package/src/pages/NetworkError.tsx +0 -24
  215. package/src/pages/NotFound.tsx +0 -22
  216. package/src/pages/OrderDetails.tsx +0 -25
  217. package/src/pages/ProductDetails.tsx +0 -55
  218. package/src/pages/Profile.tsx +0 -36
  219. package/src/pages/ReviewDriver.tsx +0 -30
  220. package/src/pages/ReviewOrder.tsx +0 -32
  221. package/src/pages/ReviewProducts.tsx +0 -30
  222. package/src/pages/Sessions.tsx +0 -22
  223. package/src/pages/Signup.tsx +0 -53
  224. package/src/pages/SpinnerLoader.tsx +0 -10
  225. package/src/pages/Splash.tsx +0 -21
@@ -3,9 +3,18 @@ import { useLanguage } from 'ordering-components/native';
3
3
  import FontAwesome from 'react-native-vector-icons/FontAwesome';
4
4
  import { CODES } from 'ordering-components/native'
5
5
  import { ORDER_TYPES } from '../config/constants';
6
+ import { useTheme } from 'styled-components/native';
7
+ import ReactNativeHapticFeedback from "react-native-haptic-feedback";
6
8
 
7
- export const flatArray = (arr: any) => [].concat(...arr)
8
9
  const [languageState, t] = useLanguage();
10
+ const theme = useTheme()
11
+
12
+ export const flatArray = (arr: any) => [].concat(...arr)
13
+
14
+ /**
15
+ * List of order type
16
+ */
17
+ export const orderTypeList = ['delivery', 'pickup', 'eatin', 'curbside', 'drivethru', 'seatdelivery']
9
18
 
10
19
  /**
11
20
  * Function to return the traduction depending of a key 't'
@@ -263,6 +272,11 @@ export const transformCountryCode = (countryCode: number) => {
263
272
  return code?.countryCode
264
273
  }
265
274
 
275
+ export const findExitingCode = (countryCode: string) => {
276
+ const code = CODES.find((code: any) => code.countryCode === (countryCode || '').toUpperCase())
277
+ return code?.countryCode
278
+ }
279
+
266
280
  /**
267
281
  * Function to check if a number is decimal or not
268
282
  * @param {*} value number to check if decimal or not
@@ -351,3 +365,261 @@ export const priceList = [
351
365
  { level: '4', content: '$$$$' },
352
366
  { level: '5', content: '$$$$$' }
353
367
  ]
368
+
369
+ export const getLogisticTag = (status: any) => {
370
+ const keyList: any = {
371
+ 0: t('PENDING', 'Pending'),
372
+ 1: t('IN_PROGRESS', 'In progress'),
373
+ 2: t('IN_QUEUE', 'In queue'),
374
+ 3: t('EXPIRED', 'Expired'),
375
+ 4: t('RESOLVED', 'Resolved'),
376
+ }
377
+ return keyList[status] ? keyList[status] : t('UNKNOWN', 'Unknown')
378
+ }
379
+
380
+ export const getOrderStatus = (s: string) => {
381
+ const status = parseInt(s);
382
+ const orderStatus = [
383
+ {
384
+ key: 0,
385
+ value: t('PENDING', 'Pending'),
386
+ slug: 'PENDING',
387
+ percentage: 0.1,
388
+ image: theme.images.order.status0,
389
+ },
390
+ {
391
+ key: 1,
392
+ value: t('COMPLETED', 'Completed'),
393
+ slug: 'COMPLETED',
394
+ percentage: 1,
395
+ image: theme.images.order.status1,
396
+ },
397
+ {
398
+ key: 2,
399
+ value: t('REJECTED', 'Rejected'),
400
+ slug: 'REJECTED',
401
+ percentage: 0,
402
+ image: theme.images.order.status2,
403
+ },
404
+ {
405
+ key: 3,
406
+ value: t('DRIVER_IN_BUSINESS', 'Driver in business'),
407
+ slug: 'DRIVER_IN_BUSINESS',
408
+ percentage: 0.6,
409
+ image: theme.images.order.status3,
410
+ },
411
+ {
412
+ key: 4,
413
+ value: t('PREPARATION_COMPLETED', 'Preparation Completed'),
414
+ slug: 'PREPARATION_COMPLETED',
415
+ percentage: 0.2,
416
+ image: theme.images.order.status4,
417
+ },
418
+ {
419
+ key: 5,
420
+ value: t('REJECTED_BY_BUSINESS', 'Rejected by business'),
421
+ slug: 'REJECTED_BY_BUSINESS',
422
+ percentage: 0,
423
+ image: theme.images.order.status5,
424
+ },
425
+ {
426
+ key: 6,
427
+ value: t('REJECTED_BY_DRIVER', 'Rejected by Driver'),
428
+ slug: 'REJECTED_BY_DRIVER',
429
+ percentage: 0,
430
+ image: theme.images.order.status6,
431
+ },
432
+ {
433
+ key: 7,
434
+ value: t('ACCEPTED_BY_BUSINESS', 'Accepted by business'),
435
+ slug: 'ACCEPTED_BY_BUSINESS',
436
+ percentage: 0.15,
437
+ image: theme.images.order.status7,
438
+ },
439
+ {
440
+ key: 8,
441
+ value: t('ACCEPTED_BY_DRIVER', 'Accepted by driver'),
442
+ slug: 'ACCEPTED_BY_DRIVER',
443
+ percentage: 0.4,
444
+ image: theme.images.order.status8,
445
+ },
446
+ {
447
+ key: 9,
448
+ value: t('PICK_UP_COMPLETED_BY_DRIVER', 'Pick up completed by driver'),
449
+ slug: 'PICK_UP_COMPLETED_BY_DRIVER',
450
+ percentage: 0.7,
451
+ image: theme.images.order.status9,
452
+ },
453
+ {
454
+ key: 10,
455
+ value: t('PICK_UP_FAILED_BY_DRIVER', 'Pick up Failed by driver'),
456
+ slug: 'PICK_UP_FAILED_BY_DRIVER',
457
+ percentage: 0,
458
+ image: theme.images.order.status10,
459
+ },
460
+ {
461
+ key: 11,
462
+ value: t(
463
+ 'DELIVERY_COMPLETED_BY_DRIVER',
464
+ 'Delivery completed by driver',
465
+ ),
466
+ slug: 'DELIVERY_COMPLETED_BY_DRIVER',
467
+ percentage: 1,
468
+ image: theme.images.order.status11,
469
+ },
470
+ {
471
+ key: 12,
472
+ value: t('DELIVERY_FAILED_BY_DRIVER', 'Delivery Failed by driver'),
473
+ slug: 'DELIVERY_FAILED_BY_DRIVER',
474
+ percentage: 0,
475
+ image: theme.images.order.status12,
476
+ },
477
+ {
478
+ key: 13,
479
+ value: t('PREORDER', 'PreOrder'),
480
+ slug: 'PREORDER',
481
+ percentage: 0,
482
+ image: theme.images.order.status13,
483
+ },
484
+ {
485
+ key: 14,
486
+ value: t('ORDER_NOT_READY', 'Order not ready'),
487
+ slug: 'ORDER_NOT_READY',
488
+ percentage: 0.15,
489
+ image: theme.images.order.status13,
490
+ },
491
+ {
492
+ key: 15,
493
+ value: t(
494
+ 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER',
495
+ 'Order picked up completed by customer',
496
+ ),
497
+ slug: 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER',
498
+ percentage: 1,
499
+ image: theme.images.order.status1,
500
+ },
501
+ {
502
+ key: 16,
503
+ value: t('CANCELLED_BY_CUSTOMER', 'Cancelled by customer'),
504
+ slug: 'CANCELLED_BY_CUSTOMER',
505
+ percentage: 0,
506
+ image: theme.images.order.status2,
507
+ },
508
+ {
509
+ key: 17,
510
+ value: t(
511
+ 'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
512
+ 'Order not picked up by customer',
513
+ ),
514
+ slug: 'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
515
+ percentage: 0,
516
+ image: theme.images.order.status2,
517
+ },
518
+ {
519
+ key: 18,
520
+ value: t(
521
+ 'DRIVER_ALMOST_ARRIVED_TO_BUSINESS',
522
+ 'Driver almost arrived to business',
523
+ ),
524
+ slug: 'DRIVER_ALMOST_ARRIVED_TO_BUSINESS',
525
+ percentage: 0.5,
526
+ image: theme.images.order.status3,
527
+ },
528
+ {
529
+ key: 19,
530
+ value: t(
531
+ 'DRIVER_ALMOST_ARRIVED_TO_CUSTOMER',
532
+ 'Driver almost arrived to customer',
533
+ ),
534
+ slug: 'DRIVER_ALMOST_ARRIVED_TO_CUSTOMER',
535
+ percentage: 0.9,
536
+ image: theme.images.order.status11,
537
+ },
538
+ {
539
+ key: 20,
540
+ value: t(
541
+ 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
542
+ 'Customer almost arrived to business',
543
+ ),
544
+ slug: 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
545
+ percentage: 0.9,
546
+ image: theme.images.order.status7,
547
+ },
548
+ {
549
+ key: 21,
550
+ value: t(
551
+ 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
552
+ 'Customer arrived to business',
553
+ ),
554
+ slug: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
555
+ percentage: 0.9,
556
+ image: theme.images.order.status7,
557
+ },
558
+ {
559
+ key: 22,
560
+ value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver'),
561
+ slug: 'ORDER_LOOKING_FOR_DRIVER',
562
+ percentage: 0.3,
563
+ image: theme.images.order.status8
564
+ },
565
+ {
566
+ key: 23,
567
+ value: t('ORDER_DRIVER_ON_WAY', 'Driver on way'),
568
+ slug: 'ORDER_DRIVER_ON_WAY',
569
+ percentage: 0.8,
570
+ image: theme.images.order.status8
571
+ }
572
+ ];
573
+
574
+ const objectStatus = orderStatus.find((o) => o.key === status);
575
+
576
+ return objectStatus && objectStatus;
577
+ }
578
+
579
+ /**
580
+ * Function to get brightness of color.
581
+ */
582
+ export const lightenDarkenColor = (color: any) => {
583
+
584
+ let r, g, b, hsp
585
+ if (!color) return
586
+ if (color.match(/^rgb/)) {
587
+ // If HEX --> store the red, green, blue values in separate variables
588
+ color = color.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)$/)
589
+
590
+ r = color[1]
591
+ g = color[2]
592
+ b = color[3]
593
+ } else {
594
+ // If RGB --> Convert it to HEX
595
+ color = +("0x" + color.slice(1).replace(color.length < 5 && /./g, '$&$&'))
596
+
597
+ r = color >> 16
598
+ g = color >> 8 & 255
599
+ b = color & 255
600
+ }
601
+
602
+ // HSP (Highly Sensitive Poo) equation
603
+ hsp = Math.sqrt(
604
+ 0.299 * (r * r) +
605
+ 0.587 * (g * g) +
606
+ 0.114 * (b * b)
607
+ )
608
+
609
+ // Using the HSP value, determine whether the color is light or dark
610
+ if (hsp > 197) {
611
+ return true //is light color
612
+ } else {
613
+ return false
614
+ }
615
+ }
616
+
617
+ export const vibrateApp = (impact ?: string) => {
618
+ const options = {
619
+ enableVibrateFallback: true,
620
+ ignoreAndroidSystemSettings: false
621
+ };
622
+
623
+ ReactNativeHapticFeedback.trigger(impact || "impactLight", options);
624
+
625
+ }
@@ -144,7 +144,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
144
144
  {isFarAway && (
145
145
  <FarAwayMessage style={styles.farAwayMsg}>
146
146
  <Ionicons name='md-warning-outline' style={styles.iconStyle} />
147
- <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'You are far from this address')}</OText>
147
+ <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
148
148
  </FarAwayMessage>
149
149
  )}
150
150
  <View style={styles.wrapperOrderOptions}>
@@ -1,117 +0,0 @@
1
- import React from 'react'
2
- import { View, Platform, PlatformIOSStatic } from 'react-native'
3
- import { useOrder } from 'ordering-components/native'
4
- import { createMaterialBottomTabNavigator } from '@react-navigation/material-bottom-tabs'
5
- import MaterialCommunityIcon from 'react-native-vector-icons/MaterialCommunityIcons'
6
- import MaterialIcon from 'react-native-vector-icons/MaterialIcons'
7
- import styled from 'styled-components/native'
8
-
9
- import { OText } from '../components/shared'
10
- import BusinessList from '../pages/BusinessesListing'
11
- import MyOrders from '../pages/MyOrders'
12
- import CartList from '../pages/CartList'
13
- import Profile from '../pages/Profile'
14
- import { useTheme } from 'styled-components/native'
15
-
16
- const CartsLenght = styled.View`
17
- width: 25px;
18
- height: 25px;
19
- background-color: ${(props: any) => props.theme.colors.primary};
20
- display: flex;
21
- justify-content: center;
22
- align-items: center;
23
- position: absolute;
24
- right: 0;
25
- `
26
-
27
- const Tab = createMaterialBottomTabNavigator();
28
-
29
- const BottomNavigator = () => {
30
- const theme = useTheme()
31
- const [{ carts }] = useOrder()
32
- const cartsList = (carts && Object.values(carts).filter((cart: any) => cart.products.length > 0)) || []
33
- const isIos = Platform.OS === 'ios'
34
- const platformIOS = Platform as PlatformIOSStatic
35
- const androidStyles = isIos
36
- ? platformIOS.isPad
37
- ? { paddingBottom: 30 }
38
- : {}
39
- : {height: 40, position: 'relative', bottom: 15}
40
- return (
41
- <Tab.Navigator
42
- initialRouteName="BusinessList"
43
- activeColor={theme.colors.primary}
44
- barStyle={{ backgroundColor: theme.colors.white, ...androidStyles }}
45
- labeled={false}
46
- inactiveColor={theme.colors.disabled}
47
- >
48
- <Tab.Screen
49
- name="BusinessList"
50
- component={BusinessList}
51
- options={{
52
- tabBarIcon:
53
- ({ color }: any) => (
54
- <View style={{ width: 50, height: 50, justifyContent: !isIos ? 'flex-start' : 'space-evenly', position: 'relative', bottom: !isIos ? 10 : 0 }}>
55
- <MaterialCommunityIcon name='home' size={46} color={color} />
56
- </View>
57
- )
58
- }}
59
- />
60
- <Tab.Screen
61
- name="MyOrders"
62
- component={MyOrders}
63
- options={
64
- {
65
- tabBarIcon:
66
- ({ color }: any) => (
67
- <View style={{ width: 50, height: 50, justifyContent: !isIos ? 'flex-start' : 'space-evenly', position: 'relative', bottom: !isIos ? 10 : 0 }}>
68
- <MaterialIcon name='format-list-bulleted' size={46} color={color} />
69
- </View>
70
- ),
71
- }}
72
- />
73
- <Tab.Screen
74
- name="Cart"
75
- component={CartList}
76
- options={{
77
- tabBarIcon:
78
- ({ color }: any) => (
79
- <View style={{
80
- width: 50,
81
- height: 50,
82
- justifyContent: !isIos ? 'flex-start' : 'space-evenly',
83
- position: 'relative',
84
- bottom: !isIos ? 10 : 0
85
- }}
86
- >
87
- <MaterialIcon name='shopping-basket' size={46} color={color} />
88
- {cartsList.length > 0 && (
89
- <CartsLenght style={{ borderRadius: 100 / 2 }}>
90
- <OText
91
- color={theme.colors.white}
92
- >
93
- {cartsList.length}
94
- </OText>
95
- </CartsLenght>
96
- )}
97
- </View>
98
- )
99
- }}
100
- />
101
- <Tab.Screen
102
- name="Profile"
103
- component={Profile}
104
- options={{
105
- tabBarIcon:
106
- ({ color }: any) => (
107
- <View style={{ width: 50, height: 50, justifyContent: !isIos ? 'flex-start' : 'space-evenly', position: 'relative', bottom: !isIos ? 10 : 0 }}>
108
- <MaterialIcon name='person' size={46} color={color} />
109
- </View>
110
- )
111
- }}
112
- />
113
- </Tab.Navigator>
114
- );
115
- }
116
-
117
- export default BottomNavigator
@@ -1,66 +0,0 @@
1
- import React from 'react';
2
- import { createStackNavigator } from "@react-navigation/stack";
3
-
4
- import AddressList from '../pages/AddressList'
5
- import AddressForm from '../pages/AddressForm'
6
- import CartList from '../pages/CartList'
7
- import CheckoutPage from '../pages/Checkout';
8
- import BusinessProductsList from '../pages/BusinessProductsList';
9
- import MultiCheckout from '../pages/MultiCheckout';
10
-
11
- const Stack = createStackNavigator();
12
-
13
- const CheckoutNavigator = (props: any) => {
14
- const {
15
- navigation,
16
- route
17
- } = props;
18
-
19
- const cartUuid = route?.params?.cartUuid
20
-
21
- const checkoutProps = {
22
- navigation,
23
- route,
24
- cartUuid: route?.params?.cartUuid
25
- }
26
-
27
- return (
28
- <Stack.Navigator>
29
- {!cartUuid && (
30
- <Stack.Screen
31
- name="Cart"
32
- component={CartList}
33
- options={{ headerShown: false }}
34
- />
35
- )}
36
- <Stack.Screen
37
- name="CheckoutPage"
38
- children={() => <CheckoutPage {...checkoutProps} />}
39
- options={{ headerShown: false }}
40
- />
41
- <Stack.Screen
42
- name="Business"
43
- component={BusinessProductsList}
44
- options={{ headerShown: false }}
45
- />
46
- <Stack.Screen
47
- name="AddressList"
48
- component={AddressList}
49
- options={{ headerShown: false }}
50
- initialParams={{isFromCheckout: true}}
51
- />
52
- <Stack.Screen
53
- name="AddressForm"
54
- component={AddressForm}
55
- options={{ headerShown: false }}
56
- />
57
- <Stack.Screen
58
- name="MultiCheckout"
59
- children={() => <MultiCheckout {...checkoutProps} />}
60
- options={{ headerShown: false }}
61
- />
62
- </Stack.Navigator>
63
- );
64
- }
65
-
66
- export default CheckoutNavigator;
@@ -1,202 +0,0 @@
1
- import * as React from 'react';
2
- import { AppState } from 'react-native'
3
- import { createStackNavigator } from "@react-navigation/stack";
4
- import { useSession, useOrder, useWebsocket } from 'ordering-components/native';
5
- import BottomNavigator from '../navigators/BottomNavigator';
6
- import RootNavigator from '../navigators/RootNavigator';
7
- import CheckoutNavigator from '../navigators/CheckoutNavigator';
8
- import BackgroundTimer from 'react-native-background-timer';
9
-
10
- import AddressList from '../pages/AddressList';
11
- import AddressForm from '../pages/AddressForm';
12
- import OrderDetails from '../pages/OrderDetails';
13
- import BusinessProductsList from '../pages/BusinessProductsList';
14
- import ReviewOrder from '../pages/ReviewOrder'
15
- import ReviewProducts from '../pages/ReviewProducts';
16
- import ReviewDriver from '../pages/ReviewDriver'
17
- import MomentOption from '../pages/MomentOption'
18
- import Account from '../pages/Account'
19
- import Help from '../pages/Help'
20
- import HelpOrder from '../pages/HelpOrder'
21
- import HelpGuide from '../pages/HelpGuide'
22
- import HelpAccountAndPayment from '../pages/HelpAccountAndPayment'
23
- import Sessions from '../pages/Sessions';
24
- import Splash from '../pages/Splash';
25
- import ProductDetails from '../pages/ProductDetails';
26
- import MultiOrdersDetails from '../pages/MultiOrdersDetails';
27
- const Stack = createStackNavigator();
28
-
29
- const HomeNavigator = (e : any) => {
30
- const [orderState] = useOrder();
31
- const [{ auth, user }] = useSession();
32
- const socket = useWebsocket();
33
-
34
- const appState = React.useRef(AppState.currentState);
35
- let interval: any
36
-
37
- const _handleAppStateChange = (nextAppState: any) => {
38
- if (appState.current.match(/inactive|background/) && nextAppState === 'active') {
39
- BackgroundTimer.clearInterval(interval)
40
- }else{
41
- interval = BackgroundTimer.setInterval(()=>{
42
- const ordersRoom = user?.level === 0 ? 'orders' : `orders_${user?.id}`
43
- socket.join(ordersRoom)
44
- }, 5000)
45
- appState.current = nextAppState;
46
- }
47
- }
48
-
49
- React.useEffect (() => {
50
- AppState.addEventListener('change', _handleAppStateChange);
51
- return () => {
52
- AppState.removeEventListener('change', _handleAppStateChange);
53
- };
54
- },[])
55
-
56
- return (
57
- <Stack.Navigator>
58
- {!orderState.loading || (orderState?.options?.user_id && orderState.loading) || orderState?.options?.address?.location ? (
59
- <>
60
- {auth ? (
61
- <>
62
- {Object.keys(orderState?.carts).length === 0 && !orderState?.options?.address?.location && !orderState.loading ? (
63
- <>
64
- <Stack.Screen
65
- name="AddressListInitial"
66
- component={AddressList}
67
- options={{ headerShown: false }}
68
- initialParams={{ afterSignup: true }}
69
- />
70
- <Stack.Screen
71
- name="AddressFormInitial"
72
- component={AddressForm}
73
- options={{ headerShown: false }}
74
- initialParams={{ afterSignup: true }}
75
- />
76
- </>
77
- ) : (
78
- <>
79
- {!!Object.keys(e?.route?.params?.productLogin || {})?.length && (
80
- <Stack.Screen
81
- name="BusinessAfterLogin"
82
- component={BusinessProductsList}
83
- options={{headerShown: false}}
84
- initialParams={{productLogin: e?.route?.params?.productLogin}}
85
- />
86
- )}
87
- <Stack.Screen
88
- name='BottomTab'
89
- component={BottomNavigator}
90
- options={{ headerShown: false }}
91
- />
92
- <Stack.Screen
93
- name="CheckoutNavigator"
94
- component={CheckoutNavigator}
95
- options={{ headerShown: false }}
96
- />
97
- <Stack.Screen
98
- name="OrderDetails"
99
- component={OrderDetails}
100
- options={{ headerShown: false }}
101
- />
102
- <Stack.Screen
103
- name="Business"
104
- component={BusinessProductsList}
105
- options={{ headerShown: false }}
106
- />
107
- <Stack.Screen
108
- name="ProductDetails"
109
- component={ProductDetails}
110
- options={{ headerShown: false }}
111
- />
112
- <Stack.Screen
113
- name="ReviewOrder"
114
- component={ReviewOrder}
115
- options={{ headerShown: false }}
116
- />
117
- <Stack.Screen
118
- name="ReviewProducts"
119
- component={ReviewProducts}
120
- options={{ headerShown: false }}
121
- />
122
- <Stack.Screen
123
- name="ReviewDriver"
124
- component={ReviewDriver}
125
- options={{ headerShown: false }}
126
- />
127
- <Stack.Screen
128
- name='MomentOption'
129
- component={MomentOption}
130
- options={{ headerShown: false }}
131
- />
132
- <Stack.Screen
133
- name="AddressList"
134
- component={AddressList}
135
- options={{ headerShown: false }}
136
- initialParams={{ afterSignup: false }}
137
- />
138
- <Stack.Screen
139
- name="AddressForm"
140
- component={AddressForm}
141
- options={{ headerShown: false }}
142
- initialParams={{ afterSignup: false }}
143
- />
144
- <Stack.Screen
145
- name="Account"
146
- component={Account}
147
- options={{ headerShown: false }}
148
- />
149
- <Stack.Screen
150
- name="Help"
151
- component={Help}
152
- options={{ headerShown: false }}
153
- />
154
- <Stack.Screen
155
- name="HelpOrder"
156
- component={HelpOrder}
157
- options={{ headerShown: false }}
158
- />
159
- <Stack.Screen
160
- name="HelpGuide"
161
- component={HelpGuide}
162
- options={{ headerShown: false }}
163
- />
164
- <Stack.Screen
165
- name="HelpAccountAndPayment"
166
- component={HelpAccountAndPayment}
167
- options={{ headerShown: false }}
168
- />
169
- <Stack.Screen
170
- name="Sessions"
171
- component={Sessions}
172
- options={{ headerShown: false }}
173
- />
174
- <Stack.Screen
175
- name="MultiOrdersDetails"
176
- component={MultiOrdersDetails}
177
- options={{ headerShown: false }}
178
- />
179
- </>
180
- )}
181
- </>
182
- )
183
- : (
184
- <Stack.Screen
185
- name='root'
186
- component={RootNavigator}
187
- options={{ headerShown: false }}
188
- />
189
- )}
190
- </>
191
- ) : (
192
- <Stack.Screen
193
- name="Splash"
194
- component={Splash}
195
- options={{ headerShown: false }}
196
- />
197
- )}
198
- </Stack.Navigator>
199
- );
200
- }
201
-
202
- export default HomeNavigator;
@@ -1,7 +0,0 @@
1
- import * as React from 'react';
2
-
3
- export const navigationRef: any = React.createRef();
4
-
5
- export const navigate = (name: string, params: any) => {
6
- navigationRef.current?.navigate(name, params);
7
- }