ordering-ui-react-native 0.15.87 → 0.15.88-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 (239) hide show
  1. package/package.json +7 -3
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/index.tsx +61 -63
  4. package/src/components/ActiveOrders/styles.tsx +1 -1
  5. package/src/components/AddressForm/index.tsx +18 -2
  6. package/src/components/BusinessBasicInformation/index.tsx +11 -19
  7. package/src/components/BusinessController/index.tsx +16 -8
  8. package/src/components/BusinessInformation/index.tsx +14 -0
  9. package/src/components/BusinessTypeFilter/index.tsx +1 -2
  10. package/src/components/BusinessesListing/index.tsx +1 -1
  11. package/src/components/Checkout/index.tsx +25 -3
  12. package/src/components/DriverTips/index.tsx +11 -6
  13. package/src/components/LanguageSelector/index.tsx +21 -16
  14. package/src/components/LoginForm/index.tsx +120 -30
  15. package/src/components/LoginForm/styles.tsx +6 -0
  16. package/src/components/Messages/index.tsx +2 -2
  17. package/src/components/NotificationSetting/index.tsx +85 -0
  18. package/src/components/OrderDetails/index.tsx +7 -21
  19. package/src/components/PaymentOptions/index.tsx +335 -365
  20. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  21. package/src/components/ReviewDriver/index.tsx +1 -1
  22. package/src/components/ReviewOrder/index.tsx +2 -1
  23. package/src/components/ReviewProducts/index.tsx +11 -0
  24. package/src/components/SignupForm/index.tsx +145 -61
  25. package/src/components/SingleProductCard/index.tsx +16 -4
  26. package/src/components/SingleProductReview/index.tsx +1 -1
  27. package/src/components/StripeElementsForm/index.tsx +25 -16
  28. package/src/components/StripeMethodForm/index.tsx +22 -24
  29. package/src/components/UpsellingProducts/index.tsx +1 -1
  30. package/src/components/UserProfileForm/index.tsx +63 -6
  31. package/src/components/UserProfileForm/styles.tsx +8 -0
  32. package/src/components/VerifyPhone/styles.tsx +1 -2
  33. package/src/components/shared/OBottomPopup.tsx +6 -2
  34. package/src/components/shared/OModal.tsx +1 -1
  35. package/src/index.tsx +2 -0
  36. package/src/navigators/CheckoutNavigator.tsx +6 -0
  37. package/src/navigators/HomeNavigator.tsx +6 -0
  38. package/src/pages/BusinessesListing.tsx +7 -6
  39. package/src/pages/MultiCheckout.tsx +31 -0
  40. package/src/pages/MultiOrdersDetails.tsx +27 -0
  41. package/src/pages/OrderDetails.tsx +1 -1
  42. package/src/pages/ReviewDriver.tsx +2 -2
  43. package/src/pages/ReviewOrder.tsx +2 -2
  44. package/src/theme.json +0 -1
  45. package/src/types/index.tsx +18 -11
  46. package/src/utils/index.tsx +28 -29
  47. package/themes/business/index.tsx +4 -0
  48. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +100 -60
  49. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
  50. package/themes/business/src/components/Chat/index.tsx +52 -92
  51. package/themes/business/src/components/DriverMap/index.tsx +6 -5
  52. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  53. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  54. package/themes/business/src/components/LoginForm/index.tsx +89 -2
  55. package/themes/business/src/components/LoginForm/styles.tsx +6 -0
  56. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  57. package/themes/business/src/components/MapView/index.tsx +1 -1
  58. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  59. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -13
  60. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  61. package/themes/business/src/components/OrderDetails/Delivery.tsx +17 -7
  62. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +26 -18
  63. package/themes/business/src/components/OrdersListManager/index.tsx +11 -4
  64. package/themes/business/src/components/OrdersOption/index.tsx +66 -20
  65. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  66. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  67. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  68. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  69. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  70. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  71. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  72. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  73. package/themes/business/src/components/PreviousMessages/index.tsx +1 -0
  74. package/themes/business/src/components/PreviousOrders/index.tsx +7 -7
  75. package/themes/business/src/components/ProductItemAccordion/index.tsx +5 -4
  76. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  77. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  78. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  79. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  80. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  81. package/themes/business/src/components/shared/OModal.tsx +41 -38
  82. package/themes/business/src/types/index.tsx +15 -7
  83. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  84. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  85. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  86. package/themes/kiosk/src/components/BusinessMenu/index.tsx +25 -26
  87. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -3
  88. package/themes/kiosk/src/components/Cart/index.tsx +10 -11
  89. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
  90. package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
  91. package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
  92. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +107 -62
  93. package/themes/kiosk/src/components/Checkout/index.tsx +40 -22
  94. package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
  95. package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
  96. package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
  97. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  98. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  99. package/themes/kiosk/src/components/OrderDetails/index.tsx +2 -2
  100. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +9 -11
  101. package/themes/kiosk/src/components/PaymentOptions/index.tsx +55 -53
  102. package/themes/kiosk/src/components/ProductForm/index.tsx +6 -7
  103. package/themes/kiosk/src/components/ProductOptionSubOption/index.tsx +3 -1
  104. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
  105. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  106. package/themes/kiosk/src/types/index.d.ts +1 -0
  107. package/themes/original/index.tsx +22 -0
  108. package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
  109. package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
  110. package/themes/original/src/components/AddressForm/index.tsx +26 -33
  111. package/themes/original/src/components/AddressList/index.tsx +2 -2
  112. package/themes/original/src/components/AppleLogin/index.tsx +6 -8
  113. package/themes/original/src/components/BusinessBasicInformation/index.tsx +302 -160
  114. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  115. package/themes/original/src/components/BusinessController/index.tsx +179 -96
  116. package/themes/original/src/components/BusinessController/styles.tsx +5 -0
  117. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -8
  118. package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
  119. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  120. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  121. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  122. package/themes/original/src/components/BusinessListingSearch/index.tsx +217 -127
  123. package/themes/original/src/components/BusinessListingSearch/styles.tsx +29 -11
  124. package/themes/original/src/components/BusinessPreorder/index.tsx +1 -1
  125. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
  126. package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
  127. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  128. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  129. package/themes/original/src/components/BusinessProductsList/index.tsx +66 -73
  130. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  131. package/themes/original/src/components/BusinessProductsListing/index.tsx +296 -178
  132. package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -0
  133. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  134. package/themes/original/src/components/BusinessTypeFilter/index.tsx +106 -38
  135. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  136. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
  137. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -2
  138. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +673 -0
  139. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  140. package/themes/original/src/components/BusinessesListing/index.tsx +104 -462
  141. package/themes/original/src/components/Cart/index.tsx +83 -38
  142. package/themes/original/src/components/Cart/styles.tsx +4 -0
  143. package/themes/original/src/components/CartContent/index.tsx +3 -3
  144. package/themes/original/src/components/Checkout/index.tsx +143 -91
  145. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  146. package/themes/original/src/components/DriverTips/index.tsx +17 -12
  147. package/themes/original/src/components/Favorite/index.tsx +92 -0
  148. package/themes/original/src/components/Favorite/styles.tsx +22 -0
  149. package/themes/original/src/components/FavoriteList/index.tsx +298 -0
  150. package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
  151. package/themes/original/src/components/ForgotPasswordForm/index.tsx +13 -4
  152. package/themes/original/src/components/GPSButton/index.tsx +25 -17
  153. package/themes/original/src/components/GoogleMap/index.tsx +11 -11
  154. package/themes/original/src/components/Help/index.tsx +21 -4
  155. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +8 -3
  156. package/themes/original/src/components/HelpGuide/index.tsx +8 -3
  157. package/themes/original/src/components/HelpOrder/index.tsx +8 -3
  158. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
  159. package/themes/original/src/components/LastOrders/index.tsx +12 -1
  160. package/themes/original/src/components/LoginForm/Otp/index.tsx +3 -3
  161. package/themes/original/src/components/LoginForm/index.tsx +52 -13
  162. package/themes/original/src/components/LoginForm/styles.tsx +1 -3
  163. package/themes/original/src/components/Messages/index.tsx +17 -17
  164. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  165. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  166. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
  167. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
  168. package/themes/original/src/components/MultiCheckout/index.tsx +304 -0
  169. package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
  170. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
  171. package/themes/original/src/components/MultiOrdersDetails/index.tsx +262 -0
  172. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
  173. package/themes/original/src/components/MyOrders/index.tsx +132 -27
  174. package/themes/original/src/components/MyOrders/styles.tsx +8 -1
  175. package/themes/original/src/components/NavBar/index.tsx +11 -5
  176. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  177. package/themes/original/src/components/OrderDetails/index.tsx +153 -77
  178. package/themes/original/src/components/OrderDetails/styles.tsx +5 -2
  179. package/themes/original/src/components/OrderItAgain/index.tsx +73 -0
  180. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  181. package/themes/original/src/components/OrderProgress/index.tsx +8 -2
  182. package/themes/original/src/components/OrderSummary/index.tsx +2 -35
  183. package/themes/original/src/components/OrderTypeSelector/index.tsx +84 -36
  184. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  185. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +140 -0
  186. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
  187. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +53 -0
  188. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
  189. package/themes/original/src/components/OrdersOption/index.tsx +138 -46
  190. package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
  191. package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
  192. package/themes/original/src/components/PaymentOptionWallet/index.tsx +15 -22
  193. package/themes/original/src/components/PaymentOptions/index.tsx +57 -37
  194. package/themes/original/src/components/PhoneInputNumber/index.tsx +4 -10
  195. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  196. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  197. package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
  198. package/themes/original/src/components/ProductForm/index.tsx +737 -682
  199. package/themes/original/src/components/ProductForm/styles.tsx +9 -7
  200. package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
  201. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  202. package/themes/original/src/components/ProductOptionSubOption/index.tsx +13 -9
  203. package/themes/original/src/components/ProfessionalFilter/index.tsx +128 -0
  204. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  205. package/themes/original/src/components/ProfessionalProfile/index.tsx +298 -0
  206. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  207. package/themes/original/src/components/Promotions/index.tsx +22 -6
  208. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  209. package/themes/original/src/components/ReviewOrder/index.tsx +1 -1
  210. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  211. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  212. package/themes/original/src/components/SearchBar/index.tsx +13 -5
  213. package/themes/original/src/components/ServiceForm/index.tsx +579 -0
  214. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  215. package/themes/original/src/components/SignupForm/index.tsx +237 -127
  216. package/themes/original/src/components/SingleOrderCard/index.tsx +316 -0
  217. package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
  218. package/themes/original/src/components/SingleProductCard/index.tsx +197 -95
  219. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
  220. package/themes/original/src/components/StripeElementsForm/index.tsx +25 -9
  221. package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
  222. package/themes/original/src/components/UpsellingProducts/index.tsx +7 -3
  223. package/themes/original/src/components/UserDetails/index.tsx +32 -18
  224. package/themes/original/src/components/UserFormDetails/index.tsx +108 -74
  225. package/themes/original/src/components/UserProfile/index.tsx +5 -1
  226. package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
  227. package/themes/original/src/components/UserVerification/index.tsx +178 -192
  228. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  229. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  230. package/themes/original/src/components/Wallets/index.tsx +177 -163
  231. package/themes/original/src/components/Wallets/styles.tsx +10 -8
  232. package/themes/original/src/components/shared/OBottomPopup.tsx +47 -14
  233. package/themes/original/src/components/shared/OButton.tsx +10 -3
  234. package/themes/original/src/components/shared/OInput.tsx +3 -2
  235. package/themes/original/src/components/shared/OModal.tsx +4 -2
  236. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  237. package/themes/original/src/types/index.tsx +199 -48
  238. package/themes/original/src/utils/index.tsx +77 -0
  239. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useState } from 'react';
2
- import { View, StyleSheet, ScrollView, ActivityIndicator } from 'react-native';
2
+ import { View, StyleSheet, ScrollView, ActivityIndicator, Pressable } from 'react-native';
3
3
  import { useForm } from 'react-hook-form';
4
4
  import { launchImageLibrary } from 'react-native-image-picker';
5
5
  import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
@@ -22,6 +22,7 @@ import {
22
22
  import { LogoutButton } from '../LogoutButton';
23
23
  import { LanguageSelector } from '../LanguageSelector';
24
24
  import { UserFormDetailsUI } from '../UserFormDetails';
25
+ import { DriverSchedule } from '../DriverSchedule'
25
26
  import ToggleSwitch from 'toggle-switch-react-native';
26
27
  import { UDWrapper } from '../UserFormDetails/styles';
27
28
  import {
@@ -30,11 +31,12 @@ import {
30
31
  OText,
31
32
  OButton,
32
33
  OInput,
34
+ OModal,
33
35
  } from '../../components/shared';
34
36
  import { sortInputFields, getTraduction } from '../../utils';
35
37
  import { ProfileParams } from '../../types';
36
38
  import { NotFoundSource } from '../NotFoundSource';
37
-
39
+ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
38
40
  const ProfileUI = (props: ProfileParams) => {
39
41
  const {
40
42
  navigation,
@@ -47,6 +49,7 @@ const ProfileUI = (props: ProfileParams) => {
47
49
  handleToggleAvalaibleStatusDriver,
48
50
  userState,
49
51
  isAvailableLoading,
52
+ isAlsea
50
53
  } = props;
51
54
 
52
55
  const [{ user }] = useSession();
@@ -66,6 +69,7 @@ const ProfileUI = (props: ProfileParams) => {
66
69
  const [phoneUpdate, setPhoneUpdate] = useState(false);
67
70
  const [userPhoneNumber, setUserPhoneNumber] = useState<any>(null);
68
71
  const [phoneToShow, setPhoneToShow] = useState('');
72
+ const [openModal, setOpenModal] = useState(false)
69
73
 
70
74
  useEffect(() => {
71
75
  if (phoneInputData.phone.cellphone) {
@@ -456,10 +460,10 @@ const ProfileUI = (props: ProfileParams) => {
456
460
  hideUpdateButton
457
461
  handleCancelEdit={handleCancelEdit}
458
462
  toggleIsEdit={toggleIsEdit}
463
+ isAlsea={isAlsea}
459
464
  />
460
465
  </View>
461
466
  )}
462
-
463
467
  {!validationFields.loading && !isEdit && (
464
468
  <EditButton>
465
469
  <OButton
@@ -474,12 +478,32 @@ const ProfileUI = (props: ProfileParams) => {
474
478
  />
475
479
  </EditButton>
476
480
  )}
477
-
481
+ {!!user?.schedule && (
482
+ <Pressable style={{ marginBottom: 10 }} onPress={() => setOpenModal(true)}>
483
+ <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
484
+ <OText size={16}>{t('SCHEDULE', 'Schedule')}</OText>
485
+ <AntDesignIcon size={18} name='right' />
486
+ </View>
487
+ <View style={{
488
+ borderBottomColor: theme.colors.tabBar,
489
+ borderBottomWidth: 1,
490
+ marginTop: 10
491
+ }} />
492
+ </Pressable>
493
+ )}
478
494
  <Actions>
479
495
  <LanguageSelector />
480
496
 
481
497
  <LogoutButton />
482
498
  </Actions>
499
+ <OModal
500
+ open={openModal}
501
+ onClose={() => setOpenModal(false)}
502
+ entireModal
503
+ hideIcons
504
+ >
505
+ <DriverSchedule schedule={user?.schedule} />
506
+ </OModal>
483
507
  </ScrollView>
484
508
  )}
485
509
  </>
@@ -4,6 +4,7 @@ import { ScrollView, TouchableOpacity } from 'react-native-gesture-handler'
4
4
  import { ScrollView as CustomScrollView, TouchableOpacity as CustomTouchableOpacity, View } from 'react-native'
5
5
  import FeatherIcon from 'react-native-vector-icons/Feather';
6
6
  import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
7
+ import AntDesign from 'react-native-vector-icons/AntDesign';
7
8
  import { Text } from 'react-native-paper';
8
9
 
9
10
  interface Props {
@@ -16,7 +17,11 @@ interface Props {
16
17
  dropViewMaxHeight?: any,
17
18
  isModal?: any,
18
19
  bgcolor?: string,
19
- textcolor?: string
20
+ textcolor?: string,
21
+ handleClear?: any,
22
+ handleOpenSelect?: any,
23
+ openedSelect?: string,
24
+ selectType?: string
20
25
  }
21
26
 
22
27
  const Wrapper = styled.View`
@@ -70,7 +75,11 @@ const ODropDown = (props: Props) => {
70
75
  placeholder,
71
76
  onSelect,
72
77
  dropViewMaxHeight,
73
- isModal
78
+ isModal,
79
+ handleClear,
80
+ handleOpenSelect,
81
+ openedSelect,
82
+ selectType
74
83
  } = props
75
84
 
76
85
  const theme = useTheme();
@@ -82,6 +91,7 @@ const ODropDown = (props: Props) => {
82
91
 
83
92
  const onToggle = () => {
84
93
  setIsOpen(!isOpen)
94
+ if (!isOpen) handleOpenSelect?.()
85
95
  }
86
96
 
87
97
  const onSelectOption = (option: any) => {
@@ -91,12 +101,25 @@ const ODropDown = (props: Props) => {
91
101
  setIsOpen(false)
92
102
  }
93
103
 
104
+ const handleClearSearch = () => {
105
+ handleClear()
106
+ if (isOpen) {
107
+ onToggle()
108
+ }
109
+ }
110
+
94
111
  useEffect(() => {
95
112
  const _defaultOption = options?.find((option: any) => option.value === defaultValue)
96
113
  setSelectedOption(_defaultOption)
97
114
  setValue(defaultValue)
98
115
  }, [defaultValue, options])
99
116
 
117
+ useEffect(() => {
118
+ if (openedSelect !== selectType && typeof openedSelect === 'string') {
119
+ setIsOpen(false)
120
+ }
121
+ }, [openedSelect])
122
+
100
123
  return (
101
124
  <Wrapper style={props.style}>
102
125
  <Selected
@@ -110,11 +133,22 @@ const ODropDown = (props: Props) => {
110
133
  >
111
134
  {selectedOption?.content || selectedOption?.name || placeholder}
112
135
  </SelectedLabel>
113
- <FeatherIcon
114
- name='chevron-down'
115
- color={props.textcolor}
116
- size={24}
117
- />
136
+ {selectedOption && handleClear ? (
137
+ <AntDesign
138
+ name={'close'}
139
+ size={20}
140
+ onPress={() => handleClearSearch()}
141
+ style={{ position: 'absolute', right: 12, top: 13 }}
142
+ />
143
+ ) : (
144
+ <FeatherIcon
145
+ name='chevron-down'
146
+ color={props.textcolor}
147
+ size={24}
148
+ style={{ position: 'absolute', right: 12, top: 13 }}
149
+
150
+ />
151
+ )}
118
152
  </Selected>
119
153
  {isOpen && options && (
120
154
  <DropView
@@ -154,7 +188,7 @@ const ODropDown = (props: Props) => {
154
188
  maxHeight: dropViewMaxHeight || null,
155
189
  paddingBottom: 15
156
190
  }}
157
- nestedScrollEnabled={true}
191
+ nestedScrollEnabled={true}
158
192
  >
159
193
  {options.map((option: any, index: number) => (
160
194
  <CustomTouchableOpacity
@@ -1,4 +1,4 @@
1
- import React, { useState, useEffect } from 'react'
1
+ import React, { useState, useEffect, useRef } from 'react'
2
2
  import styled, { css, useTheme } from 'styled-components/native'
3
3
  import { useLanguage } from 'ordering-components/native';
4
4
  import { ScrollView, TouchableOpacity } from 'react-native-gesture-handler'
@@ -24,6 +24,10 @@ interface Props {
24
24
  handleChangeDate?: any,
25
25
  rangeDate?: any,
26
26
  isCalendarAlwaysVisible?: boolean
27
+ handleClear?: any;
28
+ handleOpenSelect?: any,
29
+ openedSelect?: string,
30
+ selectType?: string
27
31
  }
28
32
 
29
33
  const Wrapper = styled.View`
@@ -96,7 +100,11 @@ const ODropDownCalendar = (props: Props) => {
96
100
  isCalendar,
97
101
  handleChangeDate,
98
102
  rangeDate,
99
- isCalendarAlwaysVisible
103
+ isCalendarAlwaysVisible,
104
+ handleClear,
105
+ handleOpenSelect,
106
+ openedSelect,
107
+ selectType
100
108
  } = props
101
109
 
102
110
  const theme = useTheme();
@@ -110,6 +118,7 @@ const ODropDownCalendar = (props: Props) => {
110
118
 
111
119
  const onToggle = () => {
112
120
  setIsOpen(!isOpen)
121
+ if (!isOpen) handleOpenSelect?.()
113
122
  }
114
123
 
115
124
  const onSelectOption = (option: any) => {
@@ -122,7 +131,7 @@ const ODropDownCalendar = (props: Props) => {
122
131
  const onDateChange = (date: any, type: any) => {
123
132
  if (!date) return
124
133
  if (type === 'END_DATE') {
125
- handleChangeDate(rangeDate.from, date.format('MM/DD/YY'))
134
+ handleChangeDate(rangeDate.from, new Date(date.format('MM/DD/YY')) === rangeDate.from ? '' : date.format('MM/DD/YY'))
126
135
  } else {
127
136
  handleChangeDate(date.format('MM/DD/YY'), '')
128
137
  }
@@ -142,12 +151,31 @@ const ODropDownCalendar = (props: Props) => {
142
151
  return (from || to) ? (from + (to ? end : '')) : placeholder
143
152
  }
144
153
 
154
+ const handleClearCalendar = () => {
155
+ handleClear && handleClear()
156
+ if (isOpen) {
157
+ onToggle()
158
+ }
159
+ }
160
+
145
161
  useEffect(() => {
146
162
  const _defaultOption = options?.find((option: any) => option.value === defaultValue)
147
163
  setSelectedOption(_defaultOption)
148
164
  setValue(defaultValue)
149
165
  }, [defaultValue, options])
150
166
 
167
+ useEffect(() => {
168
+ if (openedSelect !== selectType && typeof openedSelect === 'string') {
169
+ setIsOpen(false)
170
+ }
171
+ }, [openedSelect])
172
+
173
+ useEffect(() => {
174
+ if (rangeDate.to && rangeDate.from) {
175
+ onSelect('calendar')
176
+ }
177
+ }, [rangeDate.to, rangeDate.from])
178
+
151
179
  return (
152
180
  <Wrapper style={props.style}>
153
181
  <Selected
@@ -165,10 +193,11 @@ const ODropDownCalendar = (props: Props) => {
165
193
  : `${selectedOption?.content || selectedOption?.name || placeholder}`
166
194
  }
167
195
  </SelectedLabel>
168
- <FeatherIcon
169
- name='calendar'
170
- color={theme.colors.backArrow}
171
- size={24}
196
+ <AntDesign
197
+ name={selectedOption && handleClear ? 'close' : 'calendar'}
198
+ size={20}
199
+ onPress={() => handleClearCalendar()}
200
+ style={{ position: 'absolute', right: 12, top: 13 }}
172
201
  />
173
202
  </Selected>
174
203
  {isOpen && options && (
@@ -26,6 +26,7 @@ interface Props {
26
26
  isNotDecoration?: boolean;
27
27
  styleCloseButton?: any;
28
28
  order?: any;
29
+ hideIcons?: boolean
29
30
  }
30
31
 
31
32
  const OModal = (props: Props): React.ReactElement => {
@@ -47,6 +48,7 @@ const OModal = (props: Props): React.ReactElement => {
47
48
  style,
48
49
  styleCloseButton,
49
50
  order,
51
+ hideIcons
50
52
  } = props;
51
53
 
52
54
  const theme = useTheme();
@@ -70,8 +72,8 @@ const OModal = (props: Props): React.ReactElement => {
70
72
  alignItems: 'center',
71
73
  paddingHorizontal: 30,
72
74
  paddingTop: 30,
73
- paddingBottom: 25,
74
- borderBottomWidth: 2,
75
+ paddingBottom: !hideIcons ? 25 : 15,
76
+ borderBottomWidth: !hideIcons ? 2 : 0,
75
77
  borderBottomColor: '#e6e6e6',
76
78
  },
77
79
  titleGroups: {
@@ -165,7 +167,7 @@ const OModal = (props: Props): React.ReactElement => {
165
167
  transparent={isTransparent}
166
168
  visible={open}
167
169
  onRequestClose={() => {
168
- onClose();
170
+ onClose && onClose();
169
171
  }}
170
172
  style={{
171
173
  height: '100%',
@@ -218,50 +220,51 @@ const OModal = (props: Props): React.ReactElement => {
218
220
  {title}
219
221
  </OText>
220
222
  </View>
223
+ {!hideIcons && (
224
+ <View style={styles.titleGroups}>
225
+ <View style={styles.shadow}>
226
+ {order?.business?.logo ? (
227
+ <OIcon
228
+ url={optimizeImage(
229
+ order?.business?.logo,
230
+ 'h_300,c_limit',
231
+ )}
232
+ style={styles.titleIcons}
233
+ />
234
+ ) : (
235
+ <OIcon
236
+ src={theme.images.dummies.businessLogo}
237
+ style={styles.titleIcons}
238
+ />
239
+ )}
240
+ </View>
221
241
 
222
- <View style={styles.titleGroups}>
223
- <View style={styles.shadow}>
224
- {order?.business?.logo ? (
242
+ <View style={styles.shadow}>
225
243
  <OIcon
226
244
  url={optimizeImage(
227
- order?.business?.logo,
245
+ order?.customer?.photo ||
246
+ theme?.images?.dummies?.customerPhoto,
228
247
  'h_300,c_limit',
229
248
  )}
230
249
  style={styles.titleIcons}
231
250
  />
232
- ) : (
233
- <OIcon
234
- src={theme.images.dummies.businessLogo}
235
- style={styles.titleIcons}
236
- />
237
- )}
238
- </View>
251
+ </View>
239
252
 
240
- <View style={styles.shadow}>
241
- <OIcon
242
- url={optimizeImage(
243
- order?.customer?.photo ||
244
- theme?.images?.dummies?.customerPhoto,
245
- 'h_300,c_limit',
246
- )}
247
- style={styles.titleIcons}
248
- />
253
+ {order?.driver && (
254
+ <View style={styles.shadow}>
255
+ <OIcon
256
+ url={
257
+ optimizeImage(
258
+ order?.driver?.photo,
259
+ 'h_300,c_limit',
260
+ ) || theme?.images?.dummies?.driverPhoto
261
+ }
262
+ style={styles.titleIcons}
263
+ />
264
+ </View>
265
+ )}
249
266
  </View>
250
-
251
- {order?.driver && (
252
- <View style={styles.shadow}>
253
- <OIcon
254
- url={
255
- optimizeImage(
256
- order?.driver?.photo,
257
- 'h_300,c_limit',
258
- ) || theme?.images?.dummies?.driverPhoto
259
- }
260
- style={styles.titleIcons}
261
- />
262
- </View>
263
- )}
264
- </View>
267
+ )}
265
268
  </View>
266
269
  )}
267
270
  {children}
@@ -20,6 +20,9 @@ export interface LoginParams {
20
20
  passwordInputIcon?: any;
21
21
  allowedLevels?: any;
22
22
  useRootPoint?: any;
23
+ notificationState?: any;
24
+ handleReCaptcha?: any;
25
+ enableReCaptcha?: any;
23
26
  }
24
27
  export interface ProfileParams {
25
28
  navigation?: any;
@@ -38,6 +41,7 @@ export interface ProfileParams {
38
41
  validationFields?: any;
39
42
  showField?: any;
40
43
  isRequiredField?: any;
44
+ isAlsea?: boolean;
41
45
  }
42
46
 
43
47
  export interface AddressListParams {
@@ -252,6 +256,7 @@ export interface MessagesOptionParams {
252
256
  messagesReadList?: any;
253
257
  onNavigationRedirect?: any;
254
258
  setSortBy?: any;
259
+ getOrders: any
255
260
  }
256
261
  export interface OrdersOptionParams {
257
262
  orderList?: any;
@@ -262,7 +267,7 @@ export interface OrdersOptionParams {
262
267
  titleContent?: string;
263
268
  customArray?: Array<any>;
264
269
  loadMoreOrders?: () => {};
265
- loadOrders?: ({}: any) => {};
270
+ loadOrders?: ({ }: any) => {};
266
271
  messages?: any;
267
272
  setMessages?: () => {};
268
273
  loadMessages?: () => {};
@@ -276,7 +281,7 @@ export interface OrdersOptionParams {
276
281
  ordersGroup?: any;
277
282
  setOrdersGroup?: any;
278
283
  setCurrentFilters?: any;
279
- onFiltered?: ({}: any) => {};
284
+ onFiltered?: ({ }: any) => {};
280
285
  filtered?: any;
281
286
  handleClickOrder?: any;
282
287
  orderGroupStatusCustom?: {
@@ -287,9 +292,11 @@ export interface OrdersOptionParams {
287
292
  };
288
293
  isBusinessApp?: boolean;
289
294
  handleClickLogisticOrder: (status: number, orderId: number) => void,
290
- logisticOrders: {orders: Array<any>, loading: boolean, error: Array<string> | string},
295
+ logisticOrders: { orders: Array<any>, loading: boolean, error: Array<string> | string },
291
296
  loadLogisticOrders: () => void;
292
- isLogisticActivated?: boolean
297
+ isLogisticActivated?: boolean;
298
+ isAlsea?: boolean;
299
+ checkNotification?: boolean;
293
300
  }
294
301
  export interface ActiveOrdersParams {
295
302
  orders?: any;
@@ -387,6 +394,7 @@ export interface ProductItemAccordionParams {
387
394
  offsetDisabled?: any;
388
395
  isFromCheckout?: any;
389
396
  isClickableEvent?: any;
397
+ currency?: any;
390
398
  }
391
399
  export interface ReviewOrderParams {
392
400
  order?: { orderId: number; businessId: number; logo: string };
@@ -402,7 +410,7 @@ export interface MessagesParams {
402
410
  order?: any;
403
411
  orderId?: number;
404
412
  messages?: any;
405
- message?: string;
413
+ message: string;
406
414
  image?: string;
407
415
  messagesToShow?: any;
408
416
  sendMessage?: any;
@@ -558,13 +566,13 @@ export interface AcceptOrRejectOrderParams {
558
566
  }
559
567
 
560
568
  export interface MapViewParams {
561
- onNavigationRedirect: (page : string, params ?: any) => void,
569
+ onNavigationRedirect: (page: string, params?: any) => void,
562
570
  getBusinessLocations: () => void,
563
571
  isLoadingBusinessMarkers?: boolean,
564
572
  markerGroups: Array<any>,
565
573
  customerMarkerGroups: Array<any>,
566
574
  alertState: { open: boolean, content: Array<string>, key?: string | null },
567
- setAlertState: ({open, content, key} : { open: boolean, content: Array<string>, key?: string | null }) => void
575
+ setAlertState: ({ open, content, key }: { open: boolean, content: Array<string>, key?: string | null }) => void
568
576
  }
569
577
 
570
578
  export interface ReviewCustomerParams {
@@ -197,7 +197,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
197
197
  {isFarAway && (
198
198
  <FarAwayMessage style={styles.farAwayMsg}>
199
199
  <Ionicons name='md-warning-outline' style={styles.iconStyle} />
200
- <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'You are far from this address')}</OText>
200
+ <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
201
201
  </FarAwayMessage>
202
202
  )}
203
203
  {!auth && (
@@ -410,8 +410,7 @@ const LoginFormUI = (props: LoginParams) => {
410
410
  textInputProps={{
411
411
  returnKeyType: 'next',
412
412
  onSubmitEditing: () => inputRef?.current?.focus?.(),
413
- style: { borderWidth: 0, fontSize: 12 },
414
- maxLength: 10
413
+ style: { borderWidth: 0, fontSize: 12 }
415
414
  }}
416
415
  textWrapStyle={{ borderColor: theme.colors.clear, borderWidth: 0, height: 40, paddingStart: 0 }}
417
416
  />
@@ -155,7 +155,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
155
155
  {isFarAway && (
156
156
  <FarAwayMessage style={styles.farAwayMsg}>
157
157
  <Ionicons name='md-warning-outline' style={styles.iconStyle} />
158
- <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'You are far from this address')}</OText>
158
+ <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
159
159
  </FarAwayMessage>
160
160
  )}
161
161
  <View style={styles.wrapperOrderOptions}>
@@ -1,5 +1,5 @@
1
1
  import React, { useCallback, useEffect, useRef, useState } from 'react';
2
- import { PanResponder, TouchableOpacity, View } from 'react-native';
2
+ import { PanResponder, Platform, TouchableOpacity, View } from 'react-native';
3
3
  import {
4
4
  useLanguage,
5
5
  useOrder,
@@ -120,32 +120,31 @@ const BusinessMenu = (props:any): React.ReactElement => {
120
120
  }}
121
121
  >
122
122
  <Container nopadding nestedScrollEnabled>
123
- <View style={{ paddingTop: 20 }}>
124
- <NavBar
125
- title={t('MENU_V21', 'Menu')}
126
- onActionLeft={goToBack}
127
- includeOrderTypeSelector
128
- onClickTypes={handleRedirect}
129
- rightComponent={cart && (
130
- <TouchableOpacity
131
- style={{ paddingHorizontal: 20, flexDirection: 'row', alignItems: 'center' }}
132
- onPress={onToggleCart}
123
+ {Platform.OS === 'android' && (<View style={{ paddingTop: 20 }} />)}
124
+ <NavBar
125
+ title={t('MENU_V21', 'Menu')}
126
+ onActionLeft={goToBack}
127
+ includeOrderTypeSelector
128
+ onClickTypes={handleRedirect}
129
+ rightComponent={cart && (
130
+ <TouchableOpacity
131
+ style={{ flexDirection: 'row', alignItems: 'center' }}
132
+ onPress={onToggleCart}
133
+ >
134
+ <OText
135
+ color={theme.colors.mediumGray}
133
136
  >
134
- <OText
135
- color={theme.colors.mediumGray}
136
- >
137
- {`${cart?.products?.length || 0} ${t('ITEMS', 'items')}`} {parsePrice(cart?.total || 0)} {' '}
138
- </OText>
139
-
140
- <MaterialIcon
141
- name={bottomSheetVisibility ? "cart-off" : "cart-outline"}
142
- color={theme.colors.primary}
143
- size={30}
144
- />
145
- </TouchableOpacity>
146
- )}
147
- />
148
- </View>
137
+ {`${cart?.products?.length || 0} ${t('ITEMS', 'items')}`} {parsePrice(cart?.total || 0)} {' '}
138
+ </OText>
139
+
140
+ <MaterialIcon
141
+ name={bottomSheetVisibility ? "cart-off" : "cart-outline"}
142
+ color={theme.colors.primary}
143
+ size={30}
144
+ />
145
+ </TouchableOpacity>
146
+ )}
147
+ />
149
148
 
150
149
  <BusinessProductsListing
151
150
  { ...businessProductsListingProps }
@@ -1,5 +1,5 @@
1
- import React, { useEffect, useState } from 'react';
2
- import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
1
+ import React from 'react';
2
+ import { PlaceholderLine } from 'rn-placeholder';
3
3
  import { View, ScrollView, Platform } from 'react-native';
4
4
  import { useTheme } from 'styled-components/native';
5
5
  import { useDeviceOrientation } from '../../../../../src/hooks/DeviceOrientation';
@@ -21,7 +21,6 @@ const BusinessesListingUI = (props: any) => {
21
21
  navigation,
22
22
  businessesList,
23
23
  handleBusinessClick,
24
- paginationProps,
25
24
  } = props;
26
25
 
27
26
  const theme = useTheme();
@@ -110,7 +110,6 @@ const CartUI = (props: any) => {
110
110
  <NavBar
111
111
  title={t('CONFIRM_YOUR_ORDER', 'Confirm your order')}
112
112
  onActionLeft={goToBack}
113
- style={{ height: orientationState?.dimensions?.height * 0.08 }}
114
113
  btnStyle={{ paddingLeft: 0 }}
115
114
  rightComponent={(
116
115
  <OButton
@@ -238,8 +237,8 @@ const CartUI = (props: any) => {
238
237
  </OSTable>
239
238
  )}
240
239
  {
241
- cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 1)?.map((offer: any) => (
242
- <OSTable key={offer.id}>
240
+ cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 1)?.map((offer: any, i: number) => (
241
+ <OSTable key={`${offer?.id}_${i}`}>
243
242
  <OSRow>
244
243
  <OText>{offer.name}</OText>
245
244
  {offer.rate_type === 1 && (
@@ -263,8 +262,8 @@ const CartUI = (props: any) => {
263
262
  </OSTable>
264
263
  )}
265
264
  {
266
- cart.taxes?.length > 0 && cart.taxes.filter((tax: any) => tax.type === 2 && tax?.rate !== 0).map((tax: any) => (
267
- <OSTable key={tax.id}>
265
+ cart.taxes?.length > 0 && cart.taxes.filter((tax: any) => tax.type === 2 && tax?.rate !== 0).map((tax: any, i: number) => (
266
+ <OSTable key={`${tax?.id}_${i}`}>
268
267
  <OSRow>
269
268
  <OText>
270
269
  {tax.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}{' '}
@@ -276,8 +275,8 @@ const CartUI = (props: any) => {
276
275
  ))
277
276
  }
278
277
  {
279
- cart?.fees?.length > 0 && cart?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0)).map((fee: any) => (
280
- <OSTable key={fee?.id}>
278
+ cart?.fees?.length > 0 && cart?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0)).map((fee: any, i: number) => (
279
+ <OSTable key={`${fee?.id}_${i}`}>
281
280
  <OSRow>
282
281
  <OText>
283
282
  {fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}{' '}
@@ -289,8 +288,8 @@ const CartUI = (props: any) => {
289
288
  ))
290
289
  }
291
290
  {
292
- cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 3)?.map((offer: any) => (
293
- <OSTable key={offer.id}>
291
+ cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 3)?.map((offer: any, i: number) => (
292
+ <OSTable key={`${offer?.id}_${i}`}>
294
293
  <OSRow>
295
294
  <OText>{offer.name}</OText>
296
295
  {offer.rate_type === 1 && (
@@ -310,8 +309,8 @@ const CartUI = (props: any) => {
310
309
  </OSTable>
311
310
  )}
312
311
  {
313
- cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 2)?.map((offer: any) => (
314
- <OSTable key={offer.id}>
312
+ cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 2)?.map((offer: any, i: number) => (
313
+ <OSTable key={`${offer?.id}_${i}`}>
315
314
  <OSRow>
316
315
  <OText>{offer.name}</OText>
317
316
  {offer.rate_type === 1 && (