ordering-ui-react-native 0.16.69 → 0.16.70-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 (203) hide show
  1. package/package.json +6 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/styles.tsx +8 -14
  4. package/src/components/BusinessInformation/index.tsx +19 -4
  5. package/src/components/BusinessInformation/styles.tsx +2 -2
  6. package/src/components/BusinessProductsList/index.tsx +10 -10
  7. package/src/components/BusinessesListing/index.tsx +1 -1
  8. package/src/components/Checkout/index.tsx +2 -1
  9. package/src/components/LanguageSelector/index.tsx +21 -16
  10. package/src/components/Messages/index.tsx +2 -2
  11. package/src/components/OrdersOption/index.tsx +54 -56
  12. package/src/components/PaymentOptions/index.tsx +298 -345
  13. package/src/components/PaymentOptionsWebView/index.tsx +119 -120
  14. package/src/components/SingleProductReview/index.tsx +7 -4
  15. package/src/components/StripeElementsForm/index.tsx +25 -16
  16. package/src/components/VerifyPhone/styles.tsx +1 -2
  17. package/src/components/shared/OToast.tsx +4 -4
  18. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  19. package/src/utils/index.tsx +2 -1
  20. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +260 -238
  21. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  22. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  23. package/themes/business/src/components/Chat/index.tsx +31 -31
  24. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  25. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  26. package/themes/business/src/components/MapView/index.tsx +14 -3
  27. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  28. package/themes/business/src/components/NewOrderNotification/index.tsx +31 -41
  29. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +70 -43
  30. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +3 -3
  31. package/themes/business/src/components/OrdersOption/index.tsx +63 -73
  32. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  33. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  34. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  35. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  36. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  37. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  38. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  39. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  40. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  41. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
  42. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  43. package/themes/business/src/components/PreviousOrders/index.tsx +440 -245
  44. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  45. package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
  46. package/themes/business/src/components/ReviewCustomer/index.tsx +39 -15
  47. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  48. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  49. package/themes/business/src/components/shared/OLink.tsx +33 -13
  50. package/themes/business/src/components/shared/OText.tsx +8 -2
  51. package/themes/business/src/types/index.tsx +14 -3
  52. package/themes/business/src/utils/index.tsx +10 -0
  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/BusinessesListing/index.tsx +2 -1
  57. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  58. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  59. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  60. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  61. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  62. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  63. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  64. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  65. package/themes/kiosk/src/types/index.d.ts +2 -0
  66. package/themes/original/index.tsx +6 -0
  67. package/themes/original/src/components/AddressDetails/index.tsx +10 -8
  68. package/themes/original/src/components/AddressForm/index.tsx +153 -137
  69. package/themes/original/src/components/AddressList/index.tsx +18 -18
  70. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  71. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  72. package/themes/original/src/components/BusinessBasicInformation/index.tsx +49 -33
  73. package/themes/original/src/components/BusinessController/index.tsx +101 -70
  74. package/themes/original/src/components/BusinessController/styles.tsx +14 -9
  75. package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
  76. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -6
  77. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  78. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  79. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  80. package/themes/original/src/components/BusinessListingSearch/index.tsx +87 -142
  81. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  82. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  83. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  84. package/themes/original/src/components/BusinessProductsList/index.tsx +41 -62
  85. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  86. package/themes/original/src/components/BusinessProductsListing/index.tsx +561 -479
  87. package/themes/original/src/components/BusinessProductsListing/styles.tsx +13 -12
  88. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
  89. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  90. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +93 -98
  91. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
  92. package/themes/original/src/components/BusinessesListing/index.tsx +8 -8
  93. package/themes/original/src/components/Cart/index.tsx +75 -42
  94. package/themes/original/src/components/CartContent/index.tsx +80 -18
  95. package/themes/original/src/components/CartContent/styles.tsx +11 -1
  96. package/themes/original/src/components/Checkout/index.tsx +110 -114
  97. package/themes/original/src/components/Checkout/styles.tsx +4 -3
  98. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  99. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  100. package/themes/original/src/components/DriverTips/index.tsx +47 -37
  101. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  102. package/themes/original/src/components/Favorite/index.tsx +7 -4
  103. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  104. package/themes/original/src/components/FavoriteList/index.tsx +70 -80
  105. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  106. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  107. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  108. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  109. package/themes/original/src/components/GoogleMap/index.tsx +10 -1
  110. package/themes/original/src/components/Help/index.tsx +7 -7
  111. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +14 -20
  112. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
  113. package/themes/original/src/components/HelpGuide/index.tsx +12 -11
  114. package/themes/original/src/components/HelpGuide/styles.tsx +5 -0
  115. package/themes/original/src/components/HelpOrder/index.tsx +12 -20
  116. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  117. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  118. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  119. package/themes/original/src/components/LoginForm/Otp/index.tsx +89 -73
  120. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  121. package/themes/original/src/components/LoginForm/index.tsx +98 -41
  122. package/themes/original/src/components/LottieAnimation/index.tsx +78 -0
  123. package/themes/original/src/components/MessageListing/index.tsx +7 -40
  124. package/themes/original/src/components/Messages/index.tsx +35 -20
  125. package/themes/original/src/components/MomentOption/index.tsx +17 -11
  126. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  127. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -93
  128. package/themes/original/src/components/MultiCheckout/index.tsx +158 -77
  129. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  130. package/themes/original/src/components/MultiOrdersDetails/index.tsx +85 -34
  131. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  132. package/themes/original/src/components/MyOrders/index.tsx +86 -20
  133. package/themes/original/src/components/NavBar/index.tsx +7 -6
  134. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  135. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  136. package/themes/original/src/components/Notifications/index.tsx +144 -0
  137. package/themes/original/src/components/Notifications/styles.tsx +20 -0
  138. package/themes/original/src/components/OrderDetails/index.tsx +115 -215
  139. package/themes/original/src/components/OrderDetails/styles.tsx +15 -2
  140. package/themes/original/src/components/OrderItAgain/index.tsx +46 -43
  141. package/themes/original/src/components/OrderProgress/index.tsx +79 -100
  142. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  143. package/themes/original/src/components/OrderSummary/index.tsx +3 -36
  144. package/themes/original/src/components/OrderTypeSelector/index.tsx +13 -6
  145. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +94 -98
  146. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  147. package/themes/original/src/components/OrdersOption/index.tsx +97 -88
  148. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  149. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  150. package/themes/original/src/components/PaymentOptions/index.tsx +1 -2
  151. package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
  152. package/themes/original/src/components/PlaceSpot/index.tsx +249 -47
  153. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  154. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  155. package/themes/original/src/components/ProductForm/index.tsx +212 -253
  156. package/themes/original/src/components/ProductForm/styles.tsx +5 -8
  157. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  158. package/themes/original/src/components/ProductOptionSubOption/index.tsx +17 -9
  159. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +1 -2
  160. package/themes/original/src/components/ProfessionalFilter/index.tsx +2 -1
  161. package/themes/original/src/components/ProfessionalProfile/index.tsx +19 -8
  162. package/themes/original/src/components/Promotions/index.tsx +234 -220
  163. package/themes/original/src/components/Promotions/styles.tsx +7 -2
  164. package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
  165. package/themes/original/src/components/ReviewOrder/index.tsx +43 -11
  166. package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
  167. package/themes/original/src/components/ReviewProducts/index.tsx +8 -5
  168. package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
  169. package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
  170. package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
  171. package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
  172. package/themes/original/src/components/ServiceForm/index.tsx +328 -264
  173. package/themes/original/src/components/SignupForm/index.tsx +134 -89
  174. package/themes/original/src/components/SingleOrderCard/index.tsx +129 -54
  175. package/themes/original/src/components/SingleOrderCard/styles.tsx +10 -8
  176. package/themes/original/src/components/SingleProductCard/index.tsx +85 -82
  177. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -9
  178. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  179. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  180. package/themes/original/src/components/StripeCardsList/index.tsx +1 -1
  181. package/themes/original/src/components/StripeElementsForm/index.tsx +13 -2
  182. package/themes/original/src/components/UpsellingProducts/index.tsx +244 -215
  183. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  184. package/themes/original/src/components/UserDetails/index.tsx +5 -3
  185. package/themes/original/src/components/UserFormDetails/index.tsx +6 -48
  186. package/themes/original/src/components/UserProfile/index.tsx +58 -35
  187. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  188. package/themes/original/src/components/UserProfileForm/index.tsx +19 -28
  189. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  190. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  191. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  192. package/themes/original/src/components/Wallets/index.tsx +230 -164
  193. package/themes/original/src/components/Wallets/styles.tsx +12 -8
  194. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  195. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  196. package/themes/original/src/components/shared/OBottomPopup.tsx +6 -4
  197. package/themes/original/src/components/shared/OButton.tsx +9 -4
  198. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  199. package/themes/original/src/components/shared/OInput.tsx +10 -1
  200. package/themes/original/src/layouts/Container.tsx +13 -9
  201. package/themes/original/src/types/index.tsx +44 -6
  202. package/themes/original/src/utils/index.tsx +305 -58
  203. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -3,6 +3,7 @@ import { ImageSourcePropType, ImageStyle, ViewStyle, TextInputProps, TextStyle }
3
3
  import styled from 'styled-components/native';
4
4
  import OIcon from './OIcon';
5
5
  import MaterialIcon from 'react-native-vector-icons/MaterialIcons'
6
+ import { useTheme } from 'styled-components/native';
6
7
 
7
8
  const Input = styled.TextInput`
8
9
  flex-grow: 1;
@@ -39,6 +40,7 @@ interface Props extends TextInputProps {
39
40
  inputStyle?: TextStyle;
40
41
  wrapperRef?: any;
41
42
  onPress?: any;
43
+ isFocusHighlight?: boolean
42
44
  }
43
45
 
44
46
  const Wrapper = styled.Pressable`
@@ -54,12 +56,16 @@ const Wrapper = styled.Pressable`
54
56
  `;
55
57
 
56
58
  const OInput = (props: Props): React.ReactElement => {
59
+ const theme = useTheme();
60
+ const [inputFocused, setInputFocused] = React.useState(false)
57
61
  return (
58
62
  <Wrapper
59
63
  onPress={() => { props.forwardRef?.current?.focus?.(); props.onPress && props.onPress() }}
60
64
  style={{
61
65
  backgroundColor: props.bgColor,
62
- borderColor: props.borderColor,
66
+ borderColor: !props.isFocusHighlight
67
+ ? props.borderColor
68
+ : inputFocused ? theme.colors.primary : theme.colors.border,
63
69
  ...props.style,
64
70
  }}>
65
71
  {props.icon ? (
@@ -95,6 +101,8 @@ const OInput = (props: Props): React.ReactElement => {
95
101
  props.forwardRef && (props.forwardRef.current = e)
96
102
  }}
97
103
  style={props?.inputStyle}
104
+ onFocus={() => setInputFocused(true)}
105
+ onBlur={() => setInputFocused(false)}
98
106
  />
99
107
  {props.iconRight && (
100
108
  <OIcon
@@ -114,6 +122,7 @@ OInput.defaultProps = {
114
122
  iconColor: '#959595',
115
123
  bgColor: 'white',
116
124
  borderColor: 'white',
125
+ isFocusHighlight: false
117
126
  };
118
127
 
119
128
  export default OInput;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
- import styled, { css } from 'styled-components/native';
3
- import { Platform } from 'react-native';
2
+ import { useSafeAreaInsets } from 'react-native-safe-area-context'
3
+ import styled, { css, useTheme } from 'styled-components/native';
4
+ import { Platform, View } from 'react-native';
4
5
 
5
6
  const ContainerStyled = styled.ScrollView`
6
7
  flex: 1;
@@ -10,17 +11,20 @@ const ContainerStyled = styled.ScrollView`
10
11
  background-color: ${(props: any) => props.theme.colors.backgroundPage};
11
12
  `;
12
13
 
13
- const SafeAreaStyled = styled.SafeAreaView`
14
- flex: 1;
15
- background-color: ${(props: any) => props.theme.colors.backgroundPage};
16
- `;
17
-
18
14
  export const Container = (props: any) => {
15
+ const theme = useTheme()
16
+ const insets = useSafeAreaInsets()
19
17
  return (
20
- <SafeAreaStyled>
18
+ <View
19
+ style={{
20
+ flex: 1,
21
+ paddingTop: props.pt ?? insets.top,
22
+ backgroundColor: theme.colors.backgroundPage
23
+ }}
24
+ >
21
25
  <ContainerStyled {...props} ref={props?.forwardRef} keyboardShouldPersistTaps='handled' style={{...props.style}}>
22
26
  {props.children}
23
27
  </ContainerStyled>
24
- </SafeAreaStyled>
28
+ </View>
25
29
  )
26
30
  }
@@ -47,6 +47,8 @@ export interface ProfileParams {
47
47
  isVerifiedPhone?: any;
48
48
  handleRemoveAccount?: any;
49
49
  removeAccountState?: any;
50
+ handleChangePromotions?: any;
51
+ notificationsGroup?: any;
50
52
  }
51
53
 
52
54
  export interface AddressListParams {
@@ -80,6 +82,7 @@ export interface AddressFormParams {
80
82
  saveAddress?: any,
81
83
  userCustomerSetup?: boolean,
82
84
  isRequiredField?: (field: string) => {},
85
+ showField?: (field: string) => {},
83
86
  isGuestUser?: boolean,
84
87
  useValidationFileds?: boolean,
85
88
  isSelectedAfterAdd?: boolean,
@@ -170,6 +173,9 @@ export interface BusinessesListingParams {
170
173
  handleChangePriceLevel?: any;
171
174
  businessTypeSelected?: any;
172
175
  logosLayout?: boolean;
176
+ isCustomLayout?: boolean;
177
+ citiesState?: any;
178
+ actualSlug?: any;
173
179
  }
174
180
  export interface HighestRatedBusinessesParams {
175
181
  businessesList: { businesses: Array<any>, loading: boolean, error: null | string };
@@ -215,6 +221,9 @@ export interface BusinessControllerParams {
215
221
  setFavoriteIds?: any;
216
222
  handleUpdateBusinessList?: any;
217
223
  enableIntersection?: boolean;
224
+ isCustomLayout?: boolean;
225
+ getBusinessOffer?: any;
226
+ handleCustomUpdate?: (businessId: number, changes: any) => {};
218
227
  }
219
228
  export interface BusinessProductsListingParams {
220
229
  navigation?: any;
@@ -240,6 +249,9 @@ export interface BusinessProductsListingParams {
240
249
  handleUpdateProducts?: any;
241
250
  professionalSelected?: any;
242
251
  handleChangeProfessionalSelected?: any;
252
+ handleUpdateProfessionals?: any;
253
+ onBusinessClick?: any;
254
+ onNavigationRedirect?: any;
243
255
  }
244
256
  export interface BusinessBasicInformationParams {
245
257
  navigation?: any;
@@ -305,6 +317,7 @@ export interface SingleProductCardParams {
305
317
  enableIntersection?: boolean;
306
318
  navigation?: any;
307
319
  isPreviously?: any;
320
+ isProductId?: any;
308
321
  }
309
322
  export interface BusinessInformationParams {
310
323
  navigation?: any,
@@ -359,6 +372,8 @@ export interface OrdersOptionParams {
359
372
  refreshOrders?: boolean,
360
373
  setRefreshOrders?: (value: boolean) => void,
361
374
  handleUpdateOrderList?: (orderId: number, changes: any) => {},
375
+ handleUpdateProducts?: (productId: number, changes: any) => {},
376
+ handleUpdateBusinesses?: (businessId: number, changes: any) => {},
362
377
  isBusiness?: boolean,
363
378
  isProducts?: boolean,
364
379
  businessOrderIds?: any,
@@ -366,6 +381,8 @@ export interface OrdersOptionParams {
366
381
  businessesSearchList?: any,
367
382
  hideOrders?: boolean,
368
383
  BusinessControllerSkeletons?: any,
384
+ businessPaginationProps?: any,
385
+ businesses?: any
369
386
  }
370
387
  export interface ActiveOrdersParams {
371
388
  orders?: any,
@@ -387,6 +404,7 @@ export interface PreviousOrdersParams {
387
404
  getOrderStatus?: any,
388
405
  orderID?: number
389
406
  reorderLoading?: boolean,
407
+ loading?: boolean,
390
408
  loadMoreOrders?: () => {},
391
409
  handleReorder?: (orderId: number) => {},
392
410
  onNavigationRedirect?: (route: string, params?: any) => {}
@@ -575,6 +593,8 @@ export interface UpsellingProductsParams {
575
593
  products?: any;
576
594
  onNavigationRedirect?: any;
577
595
  onGoBack?: any;
596
+ singleBusiness?: any;
597
+ isFranchiseApp?: any;
578
598
  }
579
599
 
580
600
  export interface GoogleMapsParams {
@@ -635,6 +655,7 @@ export interface BusinessSearchParams {
635
655
  onNavigationRedirect?: any,
636
656
  handleUpdateProducts: any,
637
657
  handleUpdateBusinessList?: any;
658
+ brandId?: number
638
659
  }
639
660
 
640
661
  export interface NoNetworkParams {
@@ -642,12 +663,21 @@ export interface NoNetworkParams {
642
663
  }
643
664
 
644
665
  export interface PlaceSpotParams {
645
- isOpenPlaceSpot?: boolean,
666
+ isCheckout?: any,
667
+ isInputMode?: any,
646
668
  cart?: any,
669
+ spotNumberDefault?: any,
670
+ vehicleDefault?: any,
671
+ spotNumber?: any,
672
+ setSpotNumber?: any,
673
+ orderTypes?: any,
647
674
  placesState?: any,
648
675
  handleChangePlace?: any,
649
- getPlacesList?: any,
650
- setOpenPlaceModal?: any
676
+ spotState?: any,
677
+ vehicle?: any,
678
+ setVehicle?: any,
679
+ handleChangeSpot?: any
680
+ setPlaceSpotNumber?: any
651
681
  }
652
682
 
653
683
  export interface PromotionParams {
@@ -711,7 +741,9 @@ export interface PreviousBusinessOrderedParams {
711
741
  businessId?: number,
712
742
  onNavigationRedirect?: any,
713
743
  isBusinessesSearchList?: any,
714
- businessLoading?: boolean
744
+ businessLoading?: boolean,
745
+ businesses?: any
746
+ handleUpdateBusinesses?: (businessId: number, changes: any) => {},
715
747
  }
716
748
 
717
749
  export interface ServiceFormParams {
@@ -724,7 +756,10 @@ export interface ServiceFormParams {
724
756
  maxProductQuantity: any,
725
757
  businessSlug?: string,
726
758
  onClose: any,
727
- professionalList: any
759
+ professionalList: any,
760
+ productObject?: any,
761
+ professionalListState?: any,
762
+ isCartProduct?: any
728
763
  }
729
764
 
730
765
  export interface ProfessionalFilterParams {
@@ -746,11 +781,14 @@ export interface OrderItAgainParams {
746
781
  categoryState: any,
747
782
  currentCart: any,
748
783
  handleUpdateProducts: any,
749
- navigation: any
784
+ navigation: any,
785
+ searchValue?: string
750
786
  }
751
787
 
752
788
  export interface PreviousProductsOrderedParams {
753
789
  products?: any,
790
+ isProductId?: boolean
754
791
  onProductClick?: any,
755
792
  isBusinessesSearchList?: boolean
793
+ handleUpdateProducts?: any
756
794
  }
@@ -1,8 +1,12 @@
1
1
  import React from 'react';
2
2
  import { useLanguage } from 'ordering-components/native';
3
3
  import FontAwesome from 'react-native-vector-icons/FontAwesome';
4
- import {CODES} from 'ordering-components/native'
4
+ import { CODES } from 'ordering-components/native'
5
5
  import { ORDER_TYPES } from '../config/constants';
6
+ import { useTheme } from 'styled-components/native';
7
+
8
+ const [languageState, t] = useLanguage();
9
+ const theme = useTheme()
6
10
 
7
11
  export const flatArray = (arr: any) => [].concat(...arr)
8
12
 
@@ -43,69 +47,113 @@ export const getTraduction = (key: string) => {
43
47
  /**
44
48
  * Change local moment variables
45
49
  */
46
- export const setLocalMoment = (moment : any, t : any) => {
50
+ export const setLocalMoment = (moment: any, t: any) => {
47
51
  moment.locale('custom', {
48
52
  months: [
49
- t('MONTH1','January'),
50
- t('MONTH2','February'),
51
- t('MONTH3','March'),
52
- t('MONTH4','April'),
53
- t('MONTH5','May'),
54
- t('MONTH6','June'),
55
- t('MONTH7','July'),
56
- t('MONTH8','August'),
57
- t('MONTH9','September'),
58
- t('MONTH10','October'),
59
- t('MONTH11','November'),
60
- t('MONTH12','December')
53
+ t('MONTH1', 'January'),
54
+ t('MONTH2', 'February'),
55
+ t('MONTH3', 'March'),
56
+ t('MONTH4', 'April'),
57
+ t('MONTH5', 'May'),
58
+ t('MONTH6', 'June'),
59
+ t('MONTH7', 'July'),
60
+ t('MONTH8', 'August'),
61
+ t('MONTH9', 'September'),
62
+ t('MONTH10', 'October'),
63
+ t('MONTH11', 'November'),
64
+ t('MONTH12', 'December')
61
65
  ],
62
66
  monthsShort: [
63
- t('MONTHSHORT1','Jan'),
64
- t('MONTHSHORT2','Feb'),
65
- t('MONTHSHORT3','Mar'),
66
- t('MONTHSHORT4','Apr'),
67
- t('MONTHSHORT5','May'),
68
- t('MONTHSHORT6','Jun'),
69
- t('MONTHSHORT7','Jul'),
70
- t('MONTHSHORT8','Aug'),
71
- t('MONTHSHORT9','Sep'),
72
- t('MONTHSHORT10','Oct'),
73
- t('MONTHSHORT11','Nov'),
74
- t('MONTHSHORT12','Dec')
67
+ t('MONTHSHORT1', 'Jan'),
68
+ t('MONTHSHORT2', 'Feb'),
69
+ t('MONTHSHORT3', 'Mar'),
70
+ t('MONTHSHORT4', 'Apr'),
71
+ t('MONTHSHORT5', 'May'),
72
+ t('MONTHSHORT6', 'Jun'),
73
+ t('MONTHSHORT7', 'Jul'),
74
+ t('MONTHSHORT8', 'Aug'),
75
+ t('MONTHSHORT9', 'Sep'),
76
+ t('MONTHSHORT10', 'Oct'),
77
+ t('MONTHSHORT11', 'Nov'),
78
+ t('MONTHSHORT12', 'Dec')
75
79
  ],
76
80
  weekdays: [
77
- t('DAY7','Sunday'),
78
- t('DAY1','Monday'),
79
- t('DAY2','Tuesday'),
80
- t('DAY3','Wednesday'),
81
- t('DAY4','Thursday'),
82
- t('DAY5','Friday'),
83
- t('DAY6','Saturday')
81
+ t('DAY7', 'Sunday'),
82
+ t('DAY1', 'Monday'),
83
+ t('DAY2', 'Tuesday'),
84
+ t('DAY3', 'Wednesday'),
85
+ t('DAY4', 'Thursday'),
86
+ t('DAY5', 'Friday'),
87
+ t('DAY6', 'Saturday')
84
88
  ],
85
89
  weekdaysShort: [
86
- t('DAYSHORT7','Sun'),
87
- t('DAYSHORT1','Mon'),
88
- t('DAYSHORT2','Tue'),
89
- t('DAYSHORT3','Wed'),
90
- t('DAYSHORT4','Thu'),
91
- t('DAYSHORT5','Fri'),
92
- t('DAYSHORT6','Sat')
90
+ t('DAYSHORT7', 'Sun'),
91
+ t('DAYSHORT1', 'Mon'),
92
+ t('DAYSHORT2', 'Tue'),
93
+ t('DAYSHORT3', 'Wed'),
94
+ t('DAYSHORT4', 'Thu'),
95
+ t('DAYSHORT5', 'Fri'),
96
+ t('DAYSHORT6', 'Sat')
93
97
  ],
94
98
  weekdaysMin: [
95
- t('DAYMIN7','Su'),
96
- t('DAYMIN1','Mo'),
97
- t('DAYMIN2','Tu'),
98
- t('DAYMIN3','We'),
99
- t('DAYMIN4','Th'),
100
- t('DAYMIN5','Fr'),
101
- t('DAYMIN6','Sa')
99
+ t('DAYMIN7', 'Su'),
100
+ t('DAYMIN1', 'Mo'),
101
+ t('DAYMIN2', 'Tu'),
102
+ t('DAYMIN3', 'We'),
103
+ t('DAYMIN4', 'Th'),
104
+ t('DAYMIN5', 'Fr'),
105
+ t('DAYMIN6', 'Sa')
102
106
  ],
103
- meridiem : function (hours : any) {
104
- return hours < 12 ? t('AM', 'AM') : t('PM','PM');
107
+ meridiem: function (hours: any) {
108
+ return hours < 12 ? t('AM', 'AM') : t('PM', 'PM');
105
109
  }
106
110
  })
107
111
  }
108
112
 
113
+ export const monthsEnum: any = {
114
+ Jan: 'MONTHSHORT1',
115
+ Feb: 'MONTHSHORT2',
116
+ Mar: 'MONTHSHORT3',
117
+ Apr: 'MONTHSHORT4',
118
+ May: 'MONTHSHORT5',
119
+ Jun: 'MONTHSHORT6',
120
+ Jul: 'MONTHSHORT7',
121
+ Aug: 'MONTHSHORT8',
122
+ Sep: 'MONTHSHORT9',
123
+ Oct: 'MONTHSHORT10',
124
+ Nov: 'MONTHSHORT11',
125
+ Dec: 'MONTHSHORT12',
126
+ }
127
+
128
+ export const locale = {
129
+ name: languageState?.language?.code?.slice(0, 2),
130
+ config: {
131
+ months: [
132
+ t('MONTH1', 'January'),
133
+ t('MONTH2', 'February'),
134
+ t('MONTH3', 'March'),
135
+ t('MONTH4', 'April'),
136
+ t('MONTH5', 'May'),
137
+ t('MONTH6', 'June'),
138
+ t('MONTH7', 'July'),
139
+ t('MONTH8', 'August'),
140
+ t('MONTH9', 'September'),
141
+ t('MONTH10', 'October'),
142
+ t('MONTH11', 'November'),
143
+ t('MONTH12', 'December')
144
+ ],
145
+ weekdaysShort: [
146
+ t('DAYSHORT7', 'Sun'),
147
+ t('DAYSHORT1', 'Mon'),
148
+ t('DAYSHORT2', 'Tue'),
149
+ t('DAYSHORT3', 'Wed'),
150
+ t('DAYSHORT4', 'Thu'),
151
+ t('DAYSHORT5', 'Fri'),
152
+ t('DAYSHORT6', 'Sat')
153
+ ],
154
+ }
155
+ };
156
+
109
157
  /**
110
158
  * Function to convert delivery time in minutes
111
159
  * @param {string} time business delivery time
@@ -182,7 +230,7 @@ export const getIconCard = (brand: string, size: number) => {
182
230
  * Function to return a static google maps image based in location
183
231
  * @param {object} param object with latitude and logitude
184
232
  */
185
- export const getGoogleMapImage = ({ lat, lng }: any, apiKey: string) => {
233
+ export const getGoogleMapImage = ({ lat, lng }: any, apiKey: string) => {
186
234
  return `https://maps.googleapis.com/maps/api/staticmap?size=500x190&center=${lat},${lng}&zoom=17&scale=2&maptype=roadmap&&markers=icon:https://res.cloudinary.com/ditpjbrmz/image/upload/f_auto,q_auto,w_45,q_auto:best,q_auto:best/v1564675872/marker-customer_kvxric.png%7Ccolor:white%7C${lat},${lng}&key=${apiKey}`
187
235
  }
188
236
  /**
@@ -213,8 +261,8 @@ export const sortInputFields = ({ fields, values }: any) => {
213
261
  return fieldsSorted;
214
262
  }
215
263
 
216
- export const transformCountryCode = (countryCode : number) => {
217
- const code = CODES.find((code : any) => code.phoneCode === countryCode)
264
+ export const transformCountryCode = (countryCode: number) => {
265
+ const code = CODES.find((code: any) => code.phoneCode === countryCode)
218
266
  return code?.countryCode
219
267
  }
220
268
 
@@ -224,7 +272,7 @@ export const transformCountryCode = (countryCode : number) => {
224
272
  * @param {*} parser function fallback when is decimal
225
273
  * @returns string
226
274
  */
227
- export const verifyDecimals = (value: number, parser: any) => {
275
+ export const verifyDecimals = (value: number, parser: any) => {
228
276
  if (value % 1 === 0) {
229
277
  return value
230
278
  } else {
@@ -240,7 +288,7 @@ export const getTypesText = (value: number) => {
240
288
  /**
241
289
  * List shape for ribbon
242
290
  */
243
- export const shape = {
291
+ export const shape = {
244
292
  rectangle: 'rectangle',
245
293
  rectangleRound: 'rectangle_round',
246
294
  capsuleShape: 'capsule_shape'
@@ -251,7 +299,7 @@ export const getTypesText = (value: number) => {
251
299
  * @param {number} value for transform
252
300
  *
253
301
  */
254
- export const convertToRadian = (value: number) => {
302
+ export const convertToRadian = (value: number) => {
255
303
  return value * Math.PI / 180
256
304
  }
257
305
 
@@ -273,14 +321,14 @@ export const getDistance = (lat1: any, lon1: any, lat2: any, lon2: any) => {
273
321
  return R * c
274
322
  }
275
323
 
276
- export const formatUrlVideo = (url : string) => {
324
+ export const formatUrlVideo = (url: string) => {
277
325
  const regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/
278
326
  const match = url.match(regExp)
279
327
  const id = (match && match[7].length === 11) ? match[7] : false
280
328
  return `https://www.youtube-nocookie.com/embed/${id}`
281
329
  }
282
330
 
283
- export const formatSeconds = (seconds : number) => {
331
+ export const formatSeconds = (seconds: number) => {
284
332
  // Hours, minutes and seconds
285
333
  var hrs = ~~(seconds / 3600)
286
334
  var mins = ~~((seconds % 3600) / 60)
@@ -299,10 +347,209 @@ export const formatSeconds = (seconds : number) => {
299
347
  /**
300
348
  * List of price to filter businesses
301
349
  */
302
- export const priceList = [
350
+ export const priceList = [
303
351
  { level: '1', content: '$' },
304
352
  { level: '2', content: '$$' },
305
353
  { level: '3', content: '$$$' },
306
354
  { level: '4', content: '$$$$' },
307
355
  { level: '5', content: '$$$$$' }
308
356
  ]
357
+
358
+ export const getOrderStatus = (s: string) => {
359
+ const status = parseInt(s);
360
+ const orderStatus = [
361
+ {
362
+ key: 0,
363
+ value: t('PENDING', 'Pending'),
364
+ slug: 'PENDING',
365
+ percentage: 0.25,
366
+ image: theme.images.order.status0,
367
+ },
368
+ {
369
+ key: 1,
370
+ value: t('COMPLETED', 'Completed'),
371
+ slug: 'COMPLETED',
372
+ percentage: 1,
373
+ image: theme.images.order.status1,
374
+ },
375
+ {
376
+ key: 2,
377
+ value: t('REJECTED', 'Rejected'),
378
+ slug: 'REJECTED',
379
+ percentage: 0,
380
+ image: theme.images.order.status2,
381
+ },
382
+ {
383
+ key: 3,
384
+ value: t('DRIVER_IN_BUSINESS', 'Driver in business'),
385
+ slug: 'DRIVER_IN_BUSINESS',
386
+ percentage: 0.6,
387
+ image: theme.images.order.status3,
388
+ },
389
+ {
390
+ key: 4,
391
+ value: t('PREPARATION_COMPLETED', 'Preparation Completed'),
392
+ slug: 'PREPARATION_COMPLETED',
393
+ percentage: 0.7,
394
+ image: theme.images.order.status4,
395
+ },
396
+ {
397
+ key: 5,
398
+ value: t('REJECTED_BY_BUSINESS', 'Rejected by business'),
399
+ slug: 'REJECTED_BY_BUSINESS',
400
+ percentage: 0,
401
+ image: theme.images.order.status5,
402
+ },
403
+ {
404
+ key: 6,
405
+ value: t('REJECTED_BY_DRIVER', 'Rejected by Driver'),
406
+ slug: 'REJECTED_BY_DRIVER',
407
+ percentage: 0,
408
+ image: theme.images.order.status6,
409
+ },
410
+ {
411
+ key: 7,
412
+ value: t('ACCEPTED_BY_BUSINESS', 'Accepted by business'),
413
+ slug: 'ACCEPTED_BY_BUSINESS',
414
+ percentage: 0.35,
415
+ image: theme.images.order.status7,
416
+ },
417
+ {
418
+ key: 8,
419
+ value: t('ACCEPTED_BY_DRIVER', 'Accepted by driver'),
420
+ slug: 'ACCEPTED_BY_DRIVER',
421
+ percentage: 0.45,
422
+ image: theme.images.order.status8,
423
+ },
424
+ {
425
+ key: 9,
426
+ value: t('PICK_UP_COMPLETED_BY_DRIVER', 'Pick up completed by driver'),
427
+ slug: 'PICK_UP_COMPLETED_BY_DRIVER',
428
+ percentage: 0.8,
429
+ image: theme.images.order.status9,
430
+ },
431
+ {
432
+ key: 10,
433
+ value: t('PICK_UP_FAILED_BY_DRIVER', 'Pick up Failed by driver'),
434
+ slug: 'PICK_UP_FAILED_BY_DRIVER',
435
+ percentage: 0,
436
+ image: theme.images.order.status10,
437
+ },
438
+ {
439
+ key: 11,
440
+ value: t(
441
+ 'DELIVERY_COMPLETED_BY_DRIVER',
442
+ 'Delivery completed by driver',
443
+ ),
444
+ slug: 'DELIVERY_COMPLETED_BY_DRIVER',
445
+ percentage: 1,
446
+ image: theme.images.order.status11,
447
+ },
448
+ {
449
+ key: 12,
450
+ value: t('DELIVERY_FAILED_BY_DRIVER', 'Delivery Failed by driver'),
451
+ slug: 'DELIVERY_FAILED_BY_DRIVER',
452
+ percentage: 0,
453
+ image: theme.images.order.status12,
454
+ },
455
+ {
456
+ key: 13,
457
+ value: t('PREORDER', 'PreOrder'),
458
+ slug: 'PREORDER',
459
+ percentage: 0,
460
+ image: theme.images.order.status13,
461
+ },
462
+ {
463
+ key: 14,
464
+ value: t('ORDER_NOT_READY', 'Order not ready'),
465
+ slug: 'ORDER_NOT_READY',
466
+ percentage: 0,
467
+ image: theme.images.order.status13,
468
+ },
469
+ {
470
+ key: 15,
471
+ value: t(
472
+ 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER',
473
+ 'Order picked up completed by customer',
474
+ ),
475
+ slug: 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER',
476
+ percentage: 100,
477
+ image: theme.images.order.status1,
478
+ },
479
+ {
480
+ key: 16,
481
+ value: t('CANCELLED_BY_CUSTOMER', 'Cancelled by customer'),
482
+ slug: 'CANCELLED_BY_CUSTOMER',
483
+ percentage: 0,
484
+ image: theme.images.order.status2,
485
+ },
486
+ {
487
+ key: 17,
488
+ value: t(
489
+ 'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
490
+ 'Order not picked up by customer',
491
+ ),
492
+ slug: 'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
493
+ percentage: 0,
494
+ image: theme.images.order.status2,
495
+ },
496
+ {
497
+ key: 18,
498
+ value: t(
499
+ 'DRIVER_ALMOST_ARRIVED_TO_BUSINESS',
500
+ 'Driver almost arrived to business',
501
+ ),
502
+ slug: 'DRIVER_ALMOST_ARRIVED_TO_BUSINESS',
503
+ percentage: 0.15,
504
+ image: theme.images.order.status3,
505
+ },
506
+ {
507
+ key: 19,
508
+ value: t(
509
+ 'DRIVER_ALMOST_ARRIVED_TO_CUSTOMER',
510
+ 'Driver almost arrived to customer',
511
+ ),
512
+ slug: 'DRIVER_ALMOST_ARRIVED_TO_CUSTOMER',
513
+ percentage: 0.9,
514
+ image: theme.images.order.status11,
515
+ },
516
+ {
517
+ key: 20,
518
+ value: t(
519
+ 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
520
+ 'Customer almost arrived to business',
521
+ ),
522
+ slug: 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
523
+ percentage: 90,
524
+ image: theme.images.order.status7,
525
+ },
526
+ {
527
+ key: 21,
528
+ value: t(
529
+ 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
530
+ 'Customer arrived to business',
531
+ ),
532
+ slug: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
533
+ percentage: 95,
534
+ image: theme.images.order.status7,
535
+ },
536
+ {
537
+ key: 22,
538
+ value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver'),
539
+ slug: 'ORDER_LOOKING_FOR_DRIVER',
540
+ percentage: 35,
541
+ image: theme.images.order.status8
542
+ },
543
+ {
544
+ key: 23,
545
+ value: t('ORDER_DRIVER_ON_WAY', 'Driver on way'),
546
+ slug: 'ORDER_DRIVER_ON_WAY',
547
+ percentage: 45,
548
+ image: theme.images.order.status8
549
+ }
550
+ ];
551
+
552
+ const objectStatus = orderStatus.find((o) => o.key === status);
553
+
554
+ return objectStatus && objectStatus;
555
+ }