ordering-ui-react-native 0.18.2 → 0.18.3-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 (263) hide show
  1. package/package.json +9 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/OrderCreating/index.tsx +0 -20
  6. package/src/components/PaymentOptionsWebView/index.tsx +29 -8
  7. package/src/components/PhoneInputNumber/index.tsx +6 -2
  8. package/src/components/StripeMethodForm/index.tsx +136 -102
  9. package/src/components/VerifyPhone/styles.tsx +1 -2
  10. package/src/components/shared/OToast.tsx +3 -2
  11. package/src/types/index.tsx +5 -0
  12. package/src/utils/index.tsx +7 -2
  13. package/themes/business/index.tsx +2 -0
  14. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +36 -26
  15. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  16. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  17. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  18. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  19. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  20. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  21. package/themes/business/src/components/Chat/index.tsx +163 -123
  22. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  23. package/themes/business/src/components/DriverSchedule/index.tsx +45 -8
  24. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  25. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  26. package/themes/business/src/components/LoginForm/index.tsx +5 -2
  27. package/themes/business/src/components/MapView/index.tsx +14 -10
  28. package/themes/business/src/components/MessagesOption/index.tsx +22 -94
  29. package/themes/business/src/components/NewOrderNotification/index.tsx +123 -96
  30. package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
  31. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  32. package/themes/business/src/components/OrderDetails/Delivery.tsx +205 -12
  33. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +67 -39
  34. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +47 -23
  35. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +9 -4
  36. package/themes/business/src/components/OrderMessage/index.tsx +1 -1
  37. package/themes/business/src/components/OrderSummary/index.tsx +114 -123
  38. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  39. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  40. package/themes/business/src/components/OrdersOption/index.tsx +43 -32
  41. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  42. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  43. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +21 -29
  44. package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
  45. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  46. package/themes/business/src/components/PreviousOrders/index.tsx +193 -221
  47. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  48. package/themes/business/src/components/ReviewCustomer/index.tsx +3 -1
  49. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  50. package/themes/business/src/components/StoresList/index.tsx +6 -5
  51. package/themes/business/src/components/UserProfileForm/index.tsx +14 -15
  52. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  53. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  54. package/themes/business/src/components/shared/OModal.tsx +16 -9
  55. package/themes/business/src/types/index.tsx +8 -0
  56. package/themes/business/src/utils/index.tsx +4 -4
  57. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  58. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  59. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  60. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  61. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  62. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -5
  63. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  64. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  65. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  66. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  67. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  68. package/themes/original/index.tsx +7 -3
  69. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  70. package/themes/original/src/components/AddressForm/index.tsx +33 -15
  71. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  72. package/themes/original/src/components/AddressList/index.tsx +5 -8
  73. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  74. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  75. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  76. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  77. package/themes/original/src/components/BusinessBasicInformation/index.tsx +74 -38
  78. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +11 -13
  79. package/themes/original/src/components/BusinessController/index.tsx +35 -44
  80. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  81. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  82. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  83. package/themes/original/src/components/BusinessInformation/index.tsx +140 -85
  84. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  85. package/themes/original/src/components/BusinessItemAccordion/index.tsx +25 -26
  86. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  87. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  88. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  89. package/themes/original/src/components/BusinessListingSearch/index.tsx +133 -438
  90. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -19
  91. package/themes/original/src/components/BusinessPreorder/index.tsx +105 -22
  92. package/themes/original/src/components/BusinessPreorder/styles.tsx +14 -0
  93. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -3
  94. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  95. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  96. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  97. package/themes/original/src/components/BusinessProductsListing/index.tsx +162 -39
  98. package/themes/original/src/components/BusinessProductsListing/styles.tsx +4 -5
  99. package/themes/original/src/components/BusinessReviews/index.tsx +4 -2
  100. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  101. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  102. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  103. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  104. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  105. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +37 -404
  106. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  107. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  108. package/themes/original/src/components/Cart/index.tsx +49 -47
  109. package/themes/original/src/components/CartContent/index.tsx +99 -38
  110. package/themes/original/src/components/CartContent/styles.tsx +6 -6
  111. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  112. package/themes/original/src/components/Checkout/index.tsx +324 -43
  113. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  114. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  115. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  116. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  117. package/themes/original/src/components/DatePicker/index.tsx +17 -0
  118. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  119. package/themes/original/src/components/DriverTips/index.tsx +6 -3
  120. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  121. package/themes/original/src/components/Favorite/index.tsx +4 -9
  122. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  123. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  124. package/themes/original/src/components/GPSButton/index.tsx +7 -5
  125. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  126. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +42 -5
  127. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +3 -1
  128. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +84 -8
  129. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  130. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  131. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  132. package/themes/original/src/components/GoogleMap/index.tsx +63 -7
  133. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  134. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  135. package/themes/original/src/components/Home/index.tsx +14 -5
  136. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  137. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  138. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  139. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  140. package/themes/original/src/components/LottieAnimation/index.tsx +88 -63
  141. package/themes/original/src/components/MessageListing/index.tsx +9 -2
  142. package/themes/original/src/components/Messages/index.tsx +15 -4
  143. package/themes/original/src/components/Messages/styles.tsx +1 -1
  144. package/themes/original/src/components/MomentOption/index.tsx +9 -10
  145. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  146. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  147. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +161 -49
  148. package/themes/original/src/components/MultiCheckout/index.tsx +348 -70
  149. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  150. package/themes/original/src/components/MultiOrdersDetails/index.tsx +2 -2
  151. package/themes/original/src/components/MyOrders/index.tsx +16 -5
  152. package/themes/original/src/components/NavBar/index.tsx +20 -13
  153. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  154. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  155. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  156. package/themes/original/src/components/Notifications/index.tsx +4 -8
  157. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  158. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  159. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +22 -6
  160. package/themes/original/src/components/OrderDetails/index.tsx +721 -670
  161. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  162. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  163. package/themes/original/src/components/OrderProgress/index.tsx +34 -25
  164. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  165. package/themes/original/src/components/OrderSummary/index.tsx +62 -57
  166. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  167. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  168. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +13 -13
  169. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  170. package/themes/original/src/components/OrdersOption/index.tsx +44 -21
  171. package/themes/original/src/components/OrdersOption/styles.tsx +2 -2
  172. package/themes/original/src/components/PageBanner/index.tsx +65 -29
  173. package/themes/original/src/components/PageBanner/styles.tsx +0 -3
  174. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  175. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  176. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  177. package/themes/original/src/components/PaymentOptions/index.tsx +100 -34
  178. package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
  179. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  180. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  181. package/themes/original/src/components/ProductForm/index.tsx +106 -170
  182. package/themes/original/src/components/ProductForm/styles.tsx +3 -3
  183. package/themes/original/src/components/ProductItemAccordion/index.tsx +13 -6
  184. package/themes/original/src/components/ProductOptionSubOption/index.tsx +49 -20
  185. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +10 -9
  186. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  187. package/themes/original/src/components/Promotions/index.tsx +6 -6
  188. package/themes/original/src/components/Promotions/styles.tsx +3 -3
  189. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  190. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  191. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  192. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  193. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  194. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  195. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  196. package/themes/original/src/components/SignupForm/index.tsx +27 -16
  197. package/themes/original/src/components/SingleOrderCard/index.tsx +44 -20
  198. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  199. package/themes/original/src/components/SingleProductCard/index.tsx +13 -10
  200. package/themes/original/src/components/SingleProductCard/styles.tsx +8 -3
  201. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  202. package/themes/original/src/components/StripeCardsList/index.tsx +61 -5
  203. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  204. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  205. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  206. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  207. package/themes/original/src/components/UpsellingProducts/index.tsx +16 -205
  208. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  209. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  210. package/themes/original/src/components/UserFormDetails/index.tsx +100 -22
  211. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  212. package/themes/original/src/components/UserProfile/index.tsx +8 -26
  213. package/themes/original/src/components/UserProfileForm/index.tsx +30 -31
  214. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  215. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  216. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  217. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  218. package/themes/original/src/components/Wallets/index.tsx +48 -60
  219. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  220. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  221. package/themes/original/src/components/shared/OButton.tsx +3 -3
  222. package/themes/original/src/components/shared/OInput.tsx +4 -5
  223. package/themes/original/src/components/shared/OModal.tsx +15 -17
  224. package/themes/original/src/layouts/Container.tsx +5 -3
  225. package/themes/original/src/types/index.tsx +28 -6
  226. package/themes/original/src/utils/index.tsx +180 -13
  227. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  228. package/src/navigators/BottomNavigator.tsx +0 -117
  229. package/src/navigators/CheckoutNavigator.tsx +0 -66
  230. package/src/navigators/HomeNavigator.tsx +0 -202
  231. package/src/navigators/NavigationRef.tsx +0 -7
  232. package/src/navigators/RootNavigator.tsx +0 -269
  233. package/src/pages/Account.tsx +0 -34
  234. package/src/pages/AddressForm.tsx +0 -62
  235. package/src/pages/AddressList.tsx +0 -24
  236. package/src/pages/BusinessProductsList.tsx +0 -81
  237. package/src/pages/BusinessesListing.tsx +0 -43
  238. package/src/pages/CartList.tsx +0 -49
  239. package/src/pages/Checkout.tsx +0 -101
  240. package/src/pages/ForgotPassword.tsx +0 -24
  241. package/src/pages/Help.tsx +0 -23
  242. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  243. package/src/pages/HelpGuide.tsx +0 -23
  244. package/src/pages/HelpOrder.tsx +0 -23
  245. package/src/pages/Home.tsx +0 -36
  246. package/src/pages/IntroductoryTutorial.tsx +0 -170
  247. package/src/pages/Login.tsx +0 -47
  248. package/src/pages/MomentOption.tsx +0 -30
  249. package/src/pages/MultiCheckout.tsx +0 -31
  250. package/src/pages/MultiOrdersDetails.tsx +0 -27
  251. package/src/pages/MyOrders.tsx +0 -40
  252. package/src/pages/NetworkError.tsx +0 -24
  253. package/src/pages/NotFound.tsx +0 -22
  254. package/src/pages/OrderDetails.tsx +0 -25
  255. package/src/pages/ProductDetails.tsx +0 -55
  256. package/src/pages/Profile.tsx +0 -36
  257. package/src/pages/ReviewDriver.tsx +0 -30
  258. package/src/pages/ReviewOrder.tsx +0 -32
  259. package/src/pages/ReviewProducts.tsx +0 -30
  260. package/src/pages/Sessions.tsx +0 -22
  261. package/src/pages/Signup.tsx +0 -53
  262. package/src/pages/SpinnerLoader.tsx +0 -10
  263. package/src/pages/Splash.tsx +0 -21
@@ -96,9 +96,10 @@ import { LogoutButton } from './src/components/LogoutButton';
96
96
  import { UserFormDetailsUI } from './src/components/UserFormDetails';
97
97
  import { WalletTransactionItem } from './src/components/WalletTransactionItem';
98
98
  import { Promotions } from './src/components/Promotions'
99
- import { PageBanner } from './src/components/PageBanner'
100
99
  import { MultiCart } from './src/components/MultiCart'
100
+ import { PageBanner } from './src/components/PageBanner'
101
101
  import { USER_TYPE, ORDER_TYPES } from './src/config/constants'
102
+ import { DatePickerUI } from './src/components/DatePicker'
102
103
 
103
104
  import { OSBill, OSTable, OSCoupon, OSTotal, OSRow } from './src/components/OrderSummary/styles';
104
105
 
@@ -263,7 +264,7 @@ export {
263
264
  Promotions,
264
265
  PageBanner,
265
266
  MyOrders,
266
- MultiCart,
267
+ MultiCart,
267
268
  ORDER_TYPES,
268
269
  USER_TYPE,
269
270
 
@@ -340,5 +341,8 @@ export {
340
341
  _retrieveStoreData,
341
342
  _setStoreData,
342
343
  _removeStoreData,
343
- _clearStoreData
344
+ _clearStoreData,
345
+
346
+ // Date Picker
347
+ DatePickerUI
344
348
  }
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { TouchableOpacity, View } from 'react-native';
2
+ import FastImage from 'react-native-fast-image'
3
+ import { StyleSheet, TouchableOpacity, View } from 'react-native';
3
4
  import {
4
5
  AddressDetails as AddressDetailsController,
5
6
  useOrder,
@@ -21,6 +22,14 @@ const AddressDetailsUI = (props: any) => {
21
22
  const [, t] = useLanguage();
22
23
  const { width } = useWindowDimensions();
23
24
 
25
+ const styles = StyleSheet.create({
26
+ productStyle: {
27
+ width: width,
28
+ height: 151,
29
+ marginVertical: 10
30
+ }
31
+ })
32
+
24
33
  return (
25
34
  <ADContainer>
26
35
  <ADHeader>
@@ -34,10 +43,17 @@ const AddressDetailsUI = (props: any) => {
34
43
  </OText>
35
44
  )}
36
45
  </ADHeader>
37
- {!!apiKey && (
46
+ {!!apiKey && googleMapsUrl && (
38
47
  <ADMap
39
48
  style={{ marginStart: -40, marginEnd: -40, width: width, flex: 1 }}>
40
- <OIcon url={googleMapsUrl} height={151} width={width} />
49
+ <FastImage
50
+ style={styles.productStyle}
51
+ source={{
52
+ uri: googleMapsUrl,
53
+ priority: FastImage.priority.normal,
54
+ }}
55
+ resizeMode={FastImage.resizeMode.cover}
56
+ />
41
57
  </ADMap>
42
58
  )}
43
59
  <ADAddress>
@@ -16,6 +16,8 @@ import {
16
16
  useToast,
17
17
  ToastType
18
18
  } from 'ordering-components/native';
19
+ import { DeviceOrientationMethods } from '../../../../../src/hooks/DeviceOrientation'
20
+
19
21
  import { GooglePlacesAutocomplete } from 'react-native-google-places-autocomplete';
20
22
  import Spinner from 'react-native-loading-spinner-overlay';
21
23
  import { useForm, Controller } from 'react-hook-form';
@@ -38,6 +40,8 @@ import {
38
40
  import { GPSButton } from '../GPSButton';
39
41
  import { ScrollView } from 'react-native-gesture-handler';
40
42
 
43
+ const { useDeviceOrientation } = DeviceOrientationMethods
44
+
41
45
  const inputNames = [
42
46
  { name: 'address', code: 'Address' },
43
47
  { name: 'internal_number', code: 'Internal number' },
@@ -62,9 +66,12 @@ const AddressFormUI = (props: AddressFormParams) => {
62
66
  isFromProductsList,
63
67
  hasAddressDefault,
64
68
  afterSignup,
69
+ businessSlug
65
70
  } = props;
66
71
 
67
72
  const theme = useTheme();
73
+ const [orientationState] = useDeviceOrientation();
74
+
68
75
  const [autoCompleteInputFocused, setAutoCompleteInputFocused] = useState(false)
69
76
 
70
77
  const tagsName = [
@@ -74,6 +81,8 @@ const AddressFormUI = (props: AddressFormParams) => {
74
81
  { icon: theme.images.general.tag_plus, value: 'other' },
75
82
  ];
76
83
 
84
+ const HEIGHT_SCREEN = orientationState?.dimensions?.height
85
+
77
86
  const styles = StyleSheet.create({
78
87
  iconContainer: {
79
88
  display: 'flex',
@@ -113,8 +122,8 @@ const AddressFormUI = (props: AddressFormParams) => {
113
122
  width: 16
114
123
  },
115
124
  wrapperNavbar: Platform.OS === 'ios'
116
- ? { paddingVertical: 0, paddingHorizontal: 40 }
117
- : { paddingVertical: 20, paddingHorizontal: 40 }
125
+ ? { paddingVertical: 0, paddingLeft: 20, paddingRight: 20 }
126
+ : { paddingVertical: 10, paddingLeft: 20, paddingRight: 20 }
118
127
  });
119
128
 
120
129
  const [, t] = useLanguage();
@@ -162,12 +171,11 @@ const AddressFormUI = (props: AddressFormParams) => {
162
171
  const countryCode = configState?.configs?.country_autocomplete?.value
163
172
  const isHideMap = theme?.address?.components?.map?.hidden
164
173
  const isHideIcons = theme?.address?.components?.icons?.hidden
165
- const continueAsGuest = () => navigation.navigate('BusinessList', { isGuestUser: true });
174
+ const continueAsGuest = () => navigation.navigate(!!businessSlug ? 'Business' : 'BusinessList', { isGuestUser: true });
166
175
  const goToBack = () => navigation?.canGoBack() && navigation.goBack();
167
176
 
168
177
  const getAddressFormatted = (address: any) => {
169
178
  const data: any = { address: null, error: null };
170
- Geocoder.init(googleMapsApiKey);
171
179
  Geocoder.from(address)
172
180
  .then((json) => {
173
181
  if (json.results && json.results?.length > 0) {
@@ -343,6 +351,9 @@ const AddressFormUI = (props: AddressFormParams) => {
343
351
  map_data: { library: 'google', place_id: data.place_id },
344
352
  zip_code: data?.zip_code || null,
345
353
  };
354
+ if (googleInput?.current) {
355
+ googleInput?.current?.setAddressText(addressSelected.address);
356
+ }
346
357
  updateChanges(addressSelected);
347
358
  };
348
359
 
@@ -425,16 +436,16 @@ const AddressFormUI = (props: AddressFormParams) => {
425
436
  if (isEditing) {
426
437
  if (formState?.changes?.location) {
427
438
  const prevLocation = {
428
- lat: Math.trunc(locationChange.lat),
429
- lng: Math.trunc(locationChange.lng),
439
+ lat: locationChange?.lat?.toFixed(5),
440
+ lng: locationChange?.lng?.toFixed(5),
430
441
  };
431
442
  const newLocation = {
432
- lat: Math.trunc(formState?.changes?.location?.lat),
433
- lng: Math.trunc(formState?.changes?.location?.lng),
443
+ lat: formState?.changes?.location?.lat?.toFixed(5),
444
+ lng: formState?.changes?.location?.lng?.toFixed(5),
434
445
  };
435
446
  if (
436
- prevLocation.lat !== newLocation.lat &&
437
- prevLocation.lng !== newLocation.lng
447
+ prevLocation?.lat !== newLocation?.lat &&
448
+ prevLocation?.lng !== newLocation?.lng
438
449
  ) {
439
450
  setLocationChange(formState?.changes?.location);
440
451
  }
@@ -479,6 +490,10 @@ const AddressFormUI = (props: AddressFormParams) => {
479
490
  }
480
491
  }, []);
481
492
 
493
+ useEffect(() => {
494
+ Geocoder.init(googleMapsApiKey);
495
+ }, [googleMapsApiKey]);
496
+
482
497
  useEffect(() => {
483
498
  const keyboardDidShowListener = Keyboard.addListener(
484
499
  'keyboardDidShow',
@@ -516,14 +531,14 @@ const AddressFormUI = (props: AddressFormParams) => {
516
531
  titleAlign={'center'}
517
532
  onActionLeft={goToBack}
518
533
  showCall={false}
519
- btnStyle={{ paddingLeft: 0 }}
520
- style={{ marginTop: Platform.OS === 'ios' ? 0 : 30 }}
521
- titleWrapStyle={{ paddingHorizontal: 0 }}
522
- titleStyle={{ marginRight: 0, marginLeft: 0 }}
534
+ btnStyle={{ paddingLeft: 0, paddingRight: 5 }}
535
+ style={{ marginTop: Platform.OS === 'ios' ? 0 : 10 }}
536
+ titleWrapStyle={{ paddingHorizontal: 0, width: '100%' }}
537
+ titleStyle={{ marginRight: 0, marginLeft: 0, paddingRight: 5 }}
523
538
  />
524
539
  </View>
525
540
  <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
526
- <AddressFormContainer style={{ height: 600, overflow: 'scroll' }}>
541
+ <AddressFormContainer style={{ overflow: 'scroll' }}>
527
542
  <View>
528
543
  <FormInput>
529
544
  <AutocompleteInput>
@@ -628,6 +643,7 @@ const AddressFormUI = (props: AddressFormParams) => {
628
643
  }
629
644
  }}
630
645
  IconButton={<OIcon src={theme.images.general.pin} width={16} />}
646
+ isIntGeoCoder
631
647
  />
632
648
  </View>
633
649
  )}
@@ -649,6 +665,7 @@ const AddressFormUI = (props: AddressFormParams) => {
649
665
  saveLocation={saveMapLocation}
650
666
  setSaveLocation={setSaveMapLocation}
651
667
  handleToggleMap={handleToggleMap}
668
+ isIntGeoCoder
652
669
  />
653
670
  </GoogleMapContainer>
654
671
  </View>
@@ -859,6 +876,7 @@ const AddressFormUI = (props: AddressFormParams) => {
859
876
  saveLocation={saveMapLocation}
860
877
  setSaveLocation={setSaveMapLocation}
861
878
  handleToggleMap={handleToggleMap}
879
+ isIntGeoCoder
862
880
  />
863
881
  </GoogleMapContainer>
864
882
  )}
@@ -2,7 +2,7 @@ import styled from 'styled-components/native'
2
2
 
3
3
  export const AddressFormContainer = styled.View`
4
4
  flex: 1;
5
- padding: 0px 40px 20px;
5
+ padding: 0px 20px 20px;
6
6
  background-color: ${(props: any) => props.theme.colors.backgroundPage};
7
7
  justify-content: space-between;
8
8
  `
@@ -1,8 +1,8 @@
1
1
  import React, { useEffect } from 'react'
2
- import { AddressList as AddressListController, useLanguage, useOrder, useSession } from 'ordering-components/native'
2
+ import { AddressList as AddressListController, useLanguage, useOrder } from 'ordering-components/native'
3
3
  import { AddressItem, Container } from './styles'
4
4
  import { Platform, RefreshControl, StyleSheet, View } from 'react-native'
5
- import { OButton, OText, OAlert, OModal, OIcon } from '../shared'
5
+ import { OButton, OText, OAlert, OIcon } from '../shared'
6
6
  import { AddressListParams } from '../../types'
7
7
  import { NotFoundSource } from '../NotFoundSource'
8
8
  import NavBar from '../NavBar'
@@ -18,12 +18,10 @@ const AddressListUI = (props: AddressListParams) => {
18
18
  route,
19
19
  addressList,
20
20
  isFromProfile,
21
- nopadding,
22
21
  handleSetDefault,
23
22
  handleDelete,
24
23
  setAddressList,
25
24
  isGoBack,
26
- actionStatus,
27
25
  isFromBusinesses,
28
26
  isFromProductsList,
29
27
  afterSignup,
@@ -34,7 +32,6 @@ const AddressListUI = (props: AddressListParams) => {
34
32
 
35
33
  const [orderState] = useOrder()
36
34
  const [, t] = useLanguage()
37
- const [{ auth }] = useSession()
38
35
  const [refreshing] = useState(false);
39
36
 
40
37
  const [isProfile, setIsProfile] = useState(isFromProfile || route?.params?.isFromProfile);
@@ -296,8 +293,8 @@ const AddressListUI = (props: AddressListParams) => {
296
293
  <OButton
297
294
  text={t('ADD_NEW_ADDRESS', 'Add new Address')}
298
295
  imgRightSrc=''
299
- bgColor={theme.colors.white}
300
- textStyle={{ color: theme.colors.primary }}
296
+ bgColor={theme.colors.primary}
297
+ textStyle={{ color: theme.colors.white }}
301
298
  style={styles.button}
302
299
  borderColor={theme.colors.primary}
303
300
  onClick={() => !afterSignup ? onNavigationRedirect(
@@ -346,7 +343,7 @@ const styles = StyleSheet.create({
346
343
  },
347
344
  button: {
348
345
  marginTop: 30,
349
- marginBottom: 0,
346
+ marginBottom: 30,
350
347
  borderRadius: 7.6,
351
348
  borderWidth: 1,
352
349
  shadowOpacity: 0,
@@ -3,10 +3,10 @@ import styled from 'styled-components/native'
3
3
  export const Container = styled.ScrollView`
4
4
  position: relative;
5
5
  flex: 1;
6
- paddingLeft: 40px;
7
- paddingRight: 40px;
8
- margin-bottom: 40px;
9
- padding-top: 10px;
6
+ paddingLeft: 20px;
7
+ paddingRight: 20px;
8
+ margin-bottom: 40px;
9
+ padding-top: 10px;
10
10
  `
11
11
 
12
12
  export const AddressItem = styled.TouchableOpacity`
@@ -1,14 +1,49 @@
1
1
  import React, { useEffect, useState } from 'react';
2
- import { createClient, AnalyticsProvider } from '@segment/analytics-react-native';
3
- import { useEvent, useConfig } from 'ordering-components/native';
2
+ import {
3
+ createClient,
4
+ AnalyticsProvider
5
+ } from '@segment/analytics-react-native';
6
+ import { useEvent, useConfig, useLanguage } from 'ordering-components/native';
4
7
 
5
8
  export const AnalyticsSegment = (props: any) => {
6
9
  const { children } = props
7
10
 
8
11
  const [events] = useEvent()
9
12
  const [configState] = useConfig()
13
+ const [, t] = useLanguage()
10
14
  const [segmentClient, setSegmentClient] = useState<any>({})
11
15
 
16
+ const handleProductsSearched = (query: any) => {
17
+ segmentClient.track('Products Searched', {
18
+ query: query
19
+ })
20
+ }
21
+
22
+ const handleProductListViewed = (category: any) => {
23
+ segmentClient.track('Product List Viewed', {
24
+ business_id: category?.business_id,
25
+ category_id: category?.id,
26
+ category: category?.name,
27
+ products: category?.products
28
+ })
29
+ }
30
+
31
+ const handlePromotionViewed = (promotion: any) => {
32
+ segmentClient.track('Promotion Viewed', {
33
+ promotion_id: (promotion?.id || '').toString(),
34
+ name: promotion.name,
35
+ position: promotion.position
36
+ })
37
+ }
38
+
39
+ const handlePromotionClicked = (promotion: any) => {
40
+ segmentClient.track('Promotion Clicked', {
41
+ promotion_id: (promotion?.id || '').toString(),
42
+ name: promotion.name,
43
+ position: promotion.position
44
+ })
45
+ }
46
+
12
47
  const handleClickProduct = (product: any) => {
13
48
  segmentClient.track('Product Clicked', {
14
49
  id: product.id,
@@ -18,6 +53,15 @@ export const AnalyticsSegment = (props: any) => {
18
53
  })
19
54
  }
20
55
 
56
+ const handleProductViewed = (product: any) => {
57
+ segmentClient.track('Product Viewed', {
58
+ id: product.id,
59
+ name: product.name,
60
+ category: product.category_id,
61
+ price: product.price
62
+ })
63
+ }
64
+
21
65
  const handleProductAdded = (product: any) => {
22
66
  segmentClient.track('Product Added', {
23
67
  id: product.id,
@@ -38,6 +82,23 @@ export const AnalyticsSegment = (props: any) => {
38
82
  })
39
83
  }
40
84
 
85
+ const handleCartViewed = (cart: any) => {
86
+ segmentClient.track('Cart Viewed', {
87
+ id: cart.uuid,
88
+ products: cart?.products
89
+ })
90
+ }
91
+
92
+ const handleCheckoutStarted = (cart: any) => {
93
+ segmentClient.track('Checkout Started', {
94
+ cart_id: cart?.uuid,
95
+ affiliation: cart?.business?.name,
96
+ revenue: cart?.total,
97
+ tax: cart?.tax_total,
98
+ shipping: cart?.delivery_zone_price
99
+ })
100
+ }
101
+
41
102
  const handleOrderPlaced = (order: any) => {
42
103
  segmentClient.track('Order Placed', {
43
104
  id: order.id,
@@ -65,6 +126,35 @@ export const AnalyticsSegment = (props: any) => {
65
126
  tax: order.tax_total,
66
127
  shipping: order.delivery_zone_price
67
128
  })
129
+
130
+ if (order?.history?.length) {
131
+ const lasthistory = order.history[order.history.length - 1]
132
+ if (lasthistory?.data) {
133
+ lasthistory.data.forEach(item => {
134
+ if (item.attribute === 'status') {
135
+ if (item.new === 15) {
136
+ segmentClient.track('Order Completed', {
137
+ id: order.id,
138
+ affiliation: order.business?.name,
139
+ revenue: order.total,
140
+ tax: order.tax_total,
141
+ shipping: order.delivery_zone_price
142
+ })
143
+ }
144
+ const orderCancelled = [2, 5, 6, 10, 12, 16, 17]
145
+ if (orderCancelled.includes(item.new)) {
146
+ segmentClient.track('Order Cancelled', {
147
+ id: order.id,
148
+ affiliation: order.business?.name,
149
+ revenue: order.total,
150
+ tax: order.tax_total,
151
+ shipping: order.delivery_zone_price
152
+ })
153
+ }
154
+ }
155
+ })
156
+ }
157
+ }
68
158
  }
69
159
 
70
160
  const handleAddOrder = (order: any) => {
@@ -77,6 +167,51 @@ export const AnalyticsSegment = (props: any) => {
77
167
  })
78
168
  }
79
169
 
170
+ const handleCouponEntered = (cart: any) => {
171
+ segmentClient.track('Coupon Entered', {
172
+ cart_id: cart.uuid,
173
+ coupon: cart.coupon
174
+ })
175
+ }
176
+
177
+ const handleCouponApplied = (cart: any) => {
178
+ const coupon: any = cart?.offers?.find(offer => offer.type === 2)
179
+ if (coupon) {
180
+ segmentClient.track('Coupon Applied', {
181
+ cart_id: cart.uuid,
182
+ coupon_id: coupon.id,
183
+ coupon_name: coupon?.name,
184
+ discount: coupon?.summary?.discount
185
+ })
186
+ }
187
+ }
188
+
189
+ const handleCouponDenied = (coupon: any) => {
190
+ segmentClient.track('Coupon Denied', {
191
+ business_id: coupon.business_id,
192
+ coupon: coupon.coupon,
193
+ user_id: coupon?.user_id,
194
+ reason: typeof coupon.reason === 'string' ? t(coupon.reason) : t(coupon.reason[0])
195
+ })
196
+ }
197
+
198
+ const handleCouponRemoved = (coupon: any) => {
199
+ segmentClient.track('Coupon Removed', {
200
+ business_id: coupon.business_id,
201
+ coupon_id: coupon.offer_id,
202
+ })
203
+ }
204
+
205
+ const handleProductReviewed = (products: any) => {
206
+ products.forEach((product: any) => {
207
+ segmentClient.track('Product Reviewed', {
208
+ product_id: product.product_id,
209
+ review_body: product.comment,
210
+ rating: product.qualification
211
+ })
212
+ })
213
+ }
214
+
80
215
  const handleLogin = (data: any) => {
81
216
  segmentClient.identify(data.id, {
82
217
  email: data.email,
@@ -84,25 +219,74 @@ export const AnalyticsSegment = (props: any) => {
84
219
  })
85
220
  }
86
221
 
222
+ const handleProductAddedToWishlist = (product: any) => {
223
+ segmentClient.track('Product Added to Wishlist', product)
224
+ }
225
+
226
+ const handleProductRemovedFromWishlist = (product: any) => {
227
+ segmentClient.track('Product Removed from Wishlist', product)
228
+ }
229
+
230
+ const handleWishlistProductAddedToCart = (product: any, result: any) => {
231
+ segmentClient.track('Wishlist Product Added to Cart', {
232
+ cart_id: result.uuid,
233
+ product_id: product.id,
234
+ name: product.name,
235
+ category: product.categoryId,
236
+ price: product.price,
237
+ quantity: product.quantity
238
+ })
239
+ }
240
+
87
241
  useEffect(() => {
88
242
  if (segmentClient?.config?.writeKey) {
243
+ events.on('products_searched', handleProductsSearched)
244
+ events.on('product_list_viewed', handleProductListViewed)
245
+ events.on('promotion_viewed', handlePromotionViewed)
246
+ events.on('promotion_clicked', handlePromotionClicked)
89
247
  events.on('product_clicked', handleClickProduct)
90
- events.on('userLogin', handleLogin)
248
+ events.on('product_viewed', handleProductViewed)
91
249
  events.on('product_added', handleProductAdded)
92
- events.on('order_placed', handleOrderPlaced)
250
+ events.on('cart_product_removed', handleProductRemoved)
251
+ events.on('cart_viewed', handleCartViewed)
252
+ events.on('checkout_started', handleCheckoutStarted)
93
253
  events.on('order_updated', handleUpdateOrder)
254
+ events.on('coupon_entered', handleCouponEntered)
255
+ events.on('offer_applied', handleCouponApplied)
256
+ events.on('offer_denied', handleCouponDenied)
257
+ events.on('offer_removed', handleCouponRemoved)
258
+ events.on('product_reviewed', handleProductReviewed)
259
+ events.on('userLogin', handleLogin)
260
+ events.on('order_placed', handleOrderPlaced)
94
261
  events.on('order_added', handleAddOrder)
95
- events.on('cart_product_removed', handleProductRemoved)
262
+ events.on('product_added_to_wishlist', handleProductAddedToWishlist)
263
+ events.on('product_removed_from_wishlist', handleProductRemovedFromWishlist)
264
+ events.on('wishlist_product_added_to_cart', handleWishlistProductAddedToCart)
96
265
  }
97
266
  return () => {
98
267
  if (segmentClient?.config?.writeKey) {
268
+ events.off('products_searched', handleProductsSearched)
269
+ events.off('product_list_viewed', handleProductListViewed)
270
+ events.off('promotion_viewed', handlePromotionViewed)
271
+ events.off('promotion_clicked', handlePromotionClicked)
99
272
  events.off('product_clicked', handleClickProduct)
100
- events.off('userLogin', handleLogin)
273
+ events.off('product_viewed', handleProductViewed)
101
274
  events.off('product_added', handleProductAdded)
102
- events.off('order_placed', handleOrderPlaced)
275
+ events.off('cart_product_removed', handleProductRemoved)
276
+ events.off('cart_viewed', handleCartViewed)
277
+ events.off('checkout_started', handleCheckoutStarted)
103
278
  events.off('order_updated', handleUpdateOrder)
279
+ events.off('coupon_entered', handleCouponEntered)
280
+ events.off('offer_applied', handleCouponApplied)
281
+ events.off('offer_denied', handleCouponDenied)
282
+ events.off('offer_removed', handleCouponRemoved)
283
+ events.off('product_reviewed', handleProductReviewed)
284
+ events.off('userLogin', handleLogin)
285
+ events.off('order_placed', handleOrderPlaced)
104
286
  events.off('order_added', handleAddOrder)
105
- events.off('cart_product_removed', handleProductRemoved)
287
+ events.off('product_added_to_wishlist', handleProductAddedToWishlist)
288
+ events.off('product_removed_from_wishlist', handleProductRemovedFromWishlist)
289
+ events.off('wishlist_product_added_to_cart', handleWishlistProductAddedToCart)
106
290
  }
107
291
  }
108
292
  }, [segmentClient])
@@ -110,7 +294,7 @@ export const AnalyticsSegment = (props: any) => {
110
294
  useEffect(() => {
111
295
  if (configState?.configs?.segment_track_id?.value) {
112
296
  const _segmentClient: any = createClient({
113
- writeKey: configState?.configs?.segment_track_id?.value
297
+ writeKey: configState?.configs?.segment_track_id?.value,
114
298
  });
115
299
  setSegmentClient(_segmentClient)
116
300
  }
@@ -122,6 +306,5 @@ export const AnalyticsSegment = (props: any) => {
122
306
  {children}
123
307
  </AnalyticsProvider>
124
308
  </>
125
-
126
309
  )
127
310
  }
@@ -21,7 +21,7 @@ export const AppleLogin = (props: any) => {
21
21
  const [{ configs }] = useConfig();
22
22
  const [credentialStateForUser, updateCredentialStateForUser] = useState<any>(-1);
23
23
 
24
- let user : any= null
24
+ let user: any = null
25
25
 
26
26
  const buttonText = auth
27
27
  ? t('CONTINUE_WITH_APPLE', 'Logout with Apple')
@@ -53,7 +53,7 @@ export const AppleLogin = (props: any) => {
53
53
  }
54
54
  }
55
55
 
56
- const fetchAndUpdateCredentialState = async (updateCredentialStateForUser : any) => {
56
+ const fetchAndUpdateCredentialState = async (updateCredentialStateForUser: any) => {
57
57
  if (user === null) {
58
58
  updateCredentialStateForUser('N/A');
59
59
  } else {
@@ -66,7 +66,7 @@ export const AppleLogin = (props: any) => {
66
66
  }
67
67
  }
68
68
 
69
- const onIOSButtonPress = async (updateCredentialStateForUser : any) => {
69
+ const onIOSButtonPress = async (updateCredentialStateForUser: any) => {
70
70
  try {
71
71
  const appleAuthRequestResponse = await appleAuth.performRequest({
72
72
  requestedOperation: appleAuth.Operation.LOGIN,
@@ -79,7 +79,7 @@ export const AppleLogin = (props: any) => {
79
79
  identityToken,
80
80
  authorizationCode
81
81
  } = appleAuthRequestResponse;
82
-
82
+
83
83
  user = newUser;
84
84
 
85
85
  fetchAndUpdateCredentialState(updateCredentialStateForUser).catch(error =>
@@ -1,6 +1,8 @@
1
1
  import styled from 'styled-components/native'
2
2
 
3
- export const Container = styled.View``
3
+ export const Container = styled.View`
4
+ margin-bottom: 20px;
5
+ `
4
6
 
5
7
  export const AppleButton = styled.TouchableOpacity`
6
8
  background-color: #FFFFFF;