ordering-ui-react-native 0.15.72 → 0.15.73-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 (218) 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 +6 -2
  14. package/src/components/LoginForm/index.tsx +120 -30
  15. package/src/components/LoginForm/styles.tsx +6 -0
  16. package/src/components/NotificationSetting/index.tsx +85 -0
  17. package/src/components/OrderDetails/index.tsx +7 -21
  18. package/src/components/PaymentOptions/index.tsx +335 -365
  19. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  20. package/src/components/ReviewDriver/index.tsx +1 -1
  21. package/src/components/ReviewOrder/index.tsx +2 -1
  22. package/src/components/ReviewProducts/index.tsx +11 -0
  23. package/src/components/SignupForm/index.tsx +145 -61
  24. package/src/components/SingleProductCard/index.tsx +16 -4
  25. package/src/components/SingleProductReview/index.tsx +1 -1
  26. package/src/components/StripeElementsForm/index.tsx +25 -16
  27. package/src/components/StripeMethodForm/index.tsx +22 -24
  28. package/src/components/UpsellingProducts/index.tsx +1 -1
  29. package/src/components/UserProfileForm/index.tsx +63 -6
  30. package/src/components/UserProfileForm/styles.tsx +8 -0
  31. package/src/components/VerifyPhone/styles.tsx +1 -2
  32. package/src/components/shared/OBottomPopup.tsx +6 -2
  33. package/src/components/shared/OModal.tsx +1 -1
  34. package/src/hooks/useCountdownTimer.tsx +26 -0
  35. package/src/index.tsx +2 -0
  36. package/src/navigators/CheckoutNavigator.tsx +6 -0
  37. package/src/navigators/HomeNavigator.tsx +12 -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/pages/Sessions.tsx +22 -0
  45. package/src/theme.json +0 -1
  46. package/src/types/index.tsx +18 -11
  47. package/src/utils/index.tsx +68 -2
  48. package/themes/business/index.tsx +4 -0
  49. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +103 -15
  50. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -0
  51. package/themes/business/src/components/Chat/index.tsx +51 -91
  52. package/themes/business/src/components/DriverMap/index.tsx +6 -5
  53. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  54. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  55. package/themes/business/src/components/LoginForm/index.tsx +89 -2
  56. package/themes/business/src/components/LoginForm/styles.tsx +6 -0
  57. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  58. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -13
  59. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  60. package/themes/business/src/components/OrderDetails/Delivery.tsx +28 -11
  61. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +14 -7
  62. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +6 -0
  63. package/themes/business/src/components/OrdersListManager/index.tsx +11 -4
  64. package/themes/business/src/components/OrdersOption/index.tsx +16 -4
  65. package/themes/business/src/components/PreviousOrders/index.tsx +7 -7
  66. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  67. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  68. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  69. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  70. package/themes/business/src/components/shared/OModal.tsx +41 -38
  71. package/themes/business/src/types/index.tsx +14 -7
  72. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  73. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  74. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  75. package/themes/kiosk/src/components/BusinessMenu/index.tsx +39 -28
  76. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -3
  77. package/themes/kiosk/src/components/Cart/index.tsx +11 -12
  78. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
  79. package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
  80. package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
  81. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +107 -62
  82. package/themes/kiosk/src/components/Checkout/index.tsx +40 -22
  83. package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
  84. package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
  85. package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
  86. package/themes/kiosk/src/components/NavBar/index.tsx +29 -20
  87. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  88. package/themes/kiosk/src/components/OrderDetails/index.tsx +32 -27
  89. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +9 -11
  90. package/themes/kiosk/src/components/PaymentOptions/index.tsx +56 -54
  91. package/themes/kiosk/src/components/ProductForm/index.tsx +7 -8
  92. package/themes/kiosk/src/components/ProductItemAccordion/index.tsx +2 -2
  93. package/themes/kiosk/src/components/ProductOption/index.tsx +1 -1
  94. package/themes/kiosk/src/components/ProductOptionSubOption/index.tsx +3 -1
  95. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
  96. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  97. package/themes/kiosk/src/types/index.d.ts +1 -0
  98. package/themes/original/index.tsx +24 -0
  99. package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
  100. package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
  101. package/themes/original/src/components/AddressForm/index.tsx +7 -6
  102. package/themes/original/src/components/AddressList/index.tsx +2 -2
  103. package/themes/original/src/components/AppleLogin/index.tsx +6 -8
  104. package/themes/original/src/components/BusinessBasicInformation/index.tsx +287 -150
  105. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  106. package/themes/original/src/components/BusinessController/index.tsx +201 -96
  107. package/themes/original/src/components/BusinessController/styles.tsx +5 -0
  108. package/themes/original/src/components/BusinessItemAccordion/index.tsx +8 -5
  109. package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
  110. package/themes/original/src/components/BusinessListingSearch/index.tsx +232 -64
  111. package/themes/original/src/components/BusinessListingSearch/styles.tsx +22 -2
  112. package/themes/original/src/components/BusinessPreorder/index.tsx +1 -1
  113. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
  114. package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
  115. package/themes/original/src/components/BusinessProductsList/index.tsx +54 -33
  116. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  117. package/themes/original/src/components/BusinessProductsListing/index.tsx +319 -178
  118. package/themes/original/src/components/BusinessProductsListing/styles.tsx +11 -0
  119. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  120. package/themes/original/src/components/BusinessTypeFilter/index.tsx +106 -38
  121. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  122. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +560 -0
  123. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -2
  124. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +661 -0
  125. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  126. package/themes/original/src/components/BusinessesListing/index.tsx +103 -462
  127. package/themes/original/src/components/Cart/index.tsx +83 -39
  128. package/themes/original/src/components/Cart/styles.tsx +4 -0
  129. package/themes/original/src/components/Checkout/index.tsx +89 -38
  130. package/themes/original/src/components/DriverTips/index.tsx +17 -12
  131. package/themes/original/src/components/Favorite/index.tsx +92 -0
  132. package/themes/original/src/components/Favorite/styles.tsx +22 -0
  133. package/themes/original/src/components/FavoriteList/index.tsx +298 -0
  134. package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
  135. package/themes/original/src/components/ForgotPasswordForm/index.tsx +84 -4
  136. package/themes/original/src/components/GPSButton/index.tsx +15 -8
  137. package/themes/original/src/components/GoogleMap/index.tsx +11 -11
  138. package/themes/original/src/components/Help/index.tsx +21 -4
  139. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
  140. package/themes/original/src/components/LastOrders/index.tsx +12 -1
  141. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -0
  142. package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
  143. package/themes/original/src/components/LoginForm/index.tsx +332 -164
  144. package/themes/original/src/components/LoginForm/styles.tsx +1 -3
  145. package/themes/original/src/components/Messages/index.tsx +1 -1
  146. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  147. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  148. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
  149. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
  150. package/themes/original/src/components/MultiCheckout/index.tsx +298 -0
  151. package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
  152. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
  153. package/themes/original/src/components/MultiOrdersDetails/index.tsx +258 -0
  154. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
  155. package/themes/original/src/components/MyOrders/index.tsx +132 -27
  156. package/themes/original/src/components/MyOrders/styles.tsx +8 -1
  157. package/themes/original/src/components/NavBar/index.tsx +4 -4
  158. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  159. package/themes/original/src/components/OrderDetails/index.tsx +148 -63
  160. package/themes/original/src/components/OrderDetails/styles.tsx +1 -2
  161. package/themes/original/src/components/OrderItAgain/index.tsx +72 -0
  162. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  163. package/themes/original/src/components/OrderSummary/index.tsx +5 -5
  164. package/themes/original/src/components/OrderTypeSelector/index.tsx +77 -35
  165. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  166. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +153 -0
  167. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
  168. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +53 -0
  169. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
  170. package/themes/original/src/components/OrdersOption/index.tsx +139 -46
  171. package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
  172. package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
  173. package/themes/original/src/components/PaymentOptionWallet/index.tsx +15 -22
  174. package/themes/original/src/components/PaymentOptions/index.tsx +57 -37
  175. package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
  176. package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
  177. package/themes/original/src/components/ProductForm/index.tsx +712 -673
  178. package/themes/original/src/components/ProductForm/styles.tsx +9 -7
  179. package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
  180. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  181. package/themes/original/src/components/ProductOptionSubOption/index.tsx +13 -9
  182. package/themes/original/src/components/ProfessionalFilter/index.tsx +128 -0
  183. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  184. package/themes/original/src/components/ProfessionalProfile/index.tsx +298 -0
  185. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  186. package/themes/original/src/components/Promotions/index.tsx +151 -133
  187. package/themes/original/src/components/Promotions/styles.tsx +2 -1
  188. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  189. package/themes/original/src/components/ReviewOrder/index.tsx +1 -1
  190. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  191. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  192. package/themes/original/src/components/SearchBar/index.tsx +13 -5
  193. package/themes/original/src/components/ServiceForm/index.tsx +579 -0
  194. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  195. package/themes/original/src/components/Sessions/index.tsx +160 -0
  196. package/themes/original/src/components/Sessions/styles.tsx +15 -0
  197. package/themes/original/src/components/SignupForm/index.tsx +237 -126
  198. package/themes/original/src/components/SingleOrderCard/index.tsx +316 -0
  199. package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
  200. package/themes/original/src/components/SingleProductCard/index.tsx +216 -92
  201. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
  202. package/themes/original/src/components/StripeElementsForm/index.tsx +25 -9
  203. package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
  204. package/themes/original/src/components/UpsellingProducts/index.tsx +2 -6
  205. package/themes/original/src/components/UserDetails/index.tsx +32 -18
  206. package/themes/original/src/components/UserFormDetails/index.tsx +108 -74
  207. package/themes/original/src/components/UserProfile/index.tsx +10 -1
  208. package/themes/original/src/components/UserProfileForm/index.tsx +14 -9
  209. package/themes/original/src/components/UserVerification/index.tsx +178 -192
  210. package/themes/original/src/components/Wallets/index.tsx +8 -8
  211. package/themes/original/src/components/shared/OBottomPopup.tsx +44 -13
  212. package/themes/original/src/components/shared/OButton.tsx +2 -0
  213. package/themes/original/src/components/shared/OInput.tsx +3 -2
  214. package/themes/original/src/components/shared/OModal.tsx +4 -2
  215. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  216. package/themes/original/src/types/index.tsx +199 -36
  217. package/themes/original/src/utils/index.tsx +94 -1
  218. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ordering-ui-react-native",
3
- "version": "0.15.72",
3
+ "version": "0.15.73-release",
4
4
  "description": "Reusable components made in react native",
5
5
  "main": "src/index.tsx",
6
6
  "author": "ordering.inc",
@@ -57,7 +57,7 @@
57
57
  "@types/styled-components": "^5.1.3",
58
58
  "axios": "^0.21.0",
59
59
  "moment": "^2.29.1",
60
- "ordering-components": "github:Ordering-Inc/ordering-components#development",
60
+ "ordering-components": "github:Ordering-Inc/ordering-components#release",
61
61
  "patch-package": "^6.4.7",
62
62
  "postinstall-postinstall": "^2.1.0",
63
63
  "prop-types": "^15.7.2",
@@ -86,6 +86,7 @@
86
86
  "react-native-google-places-autocomplete": "^2.1.3",
87
87
  "react-native-html-to-pdf": "^0.10.0",
88
88
  "react-native-image-picker": "^4.0.6",
89
+ "react-native-intersection-observer": "^0.0.9",
89
90
  "react-native-lightbox": "^0.8.1",
90
91
  "react-native-linear-gradient": "^2.5.6",
91
92
  "react-native-loading-spinner-overlay": "^2.0.0",
@@ -109,6 +110,7 @@
109
110
  "react-native-sound": "^0.11.1",
110
111
  "react-native-swipe-gestures": "^1.0.5",
111
112
  "react-native-swiper": "^1.6.0",
113
+ "react-native-tracking-transparency": "^0.1.1",
112
114
  "react-native-uuid": "^2.0.1",
113
115
  "react-native-vector-icons": "^7.1.0",
114
116
  "react-native-webview": "^11.6.4",
@@ -123,8 +125,10 @@
123
125
  "@babel/core": "^7.11.6",
124
126
  "@babel/runtime": "^7.11.2",
125
127
  "@react-native-community/eslint-config": "^2.0.0",
126
- "@types/react": "^16.9.51",
128
+ "@types/react": "^18.0.15",
129
+ "@types/react-dom": "^18.0.6",
127
130
  "@types/react-native": "^0.63.25",
131
+ "@types/react-native-calendar-picker": "^7.0.2",
128
132
  "babel-jest": "^26.3.0",
129
133
  "eslint": "^7.10.0",
130
134
  "jest": "^26.4.2",
@@ -7,7 +7,8 @@
7
7
  */
8
8
 
9
9
  import * as React from 'react';
10
- import { LogBox } from 'react-native';
10
+ import { LogBox, Platform } from 'react-native';
11
+ import * as Sentry from "@sentry/react-native";
11
12
  import { OrderingProvider } from 'ordering-components/native';
12
13
  import RNBootSplash from "react-native-bootsplash";
13
14
 
@@ -22,6 +23,47 @@ import theme from './theme.json';
22
23
  import AppContainer from './AppContainer';
23
24
  import { FacebookPixel } from './components/FacebookPixel';
24
25
 
26
+ Sentry.init({
27
+ environment: Platform.OS === 'ios' ? 'ios' : 'android',
28
+ dsn: 'https://e5e1115dc93b49109f4ab65f2098bef9@o460529.ingest.sentry.io/5722123',
29
+ release: 'ordering-ui-native@' + process.env.npm_package_version,
30
+ ignoreErrors: [
31
+ 'is not defined',
32
+ 'is not a function',
33
+ 'can\'t find variable',
34
+ 'objects are not valid',
35
+ 'element type is invalid',
36
+ 'requiring module',
37
+ 'has not been registered',
38
+ 'failed to connect to debugger!',
39
+ 'rendered more hooks than',
40
+ 'rendered fewer hooks than',
41
+ 'should have a queue',
42
+ 'the OS most likely terminated',
43
+ 'Connection timed out',
44
+ 'java.io.EOFException',
45
+ 'Abort',
46
+ 'Segfault',
47
+ 'Failed to allocate a',
48
+ 'Application Not Responding',
49
+ 'connection no longer valid',
50
+ 'IllegalInstruction',
51
+ 'React.Children.only expected to receive a single React element child.',
52
+ 'unrecognized selector sent to instance'
53
+ ],
54
+ tracesSampleRate: 0.2,
55
+ // Release health
56
+ enableAutoSessionTracking: true,
57
+ // Sessions close after app is 10 seconds in the background.
58
+ sessionTrackingIntervalMillis: 10000,
59
+
60
+ integrations: [
61
+ new Sentry.ReactNativeTracing({
62
+ routingInstrumentation: reactNavigationV5Instrumentation,
63
+ })
64
+ ]
65
+ });
66
+
25
67
  LogBox.ignoreLogs([
26
68
  'Sending \`onAnimatedValueUpdate` with no listeners registered.',
27
69
  'Non-serializable values were found in the navigation state.',
@@ -48,75 +48,73 @@ export const ActiveOrders = (props: ActiveOrdersParams) => {
48
48
  }, [orders.length])
49
49
 
50
50
  const Order = ({ order }: { order: any }) => (
51
- <React.Fragment>
52
- <Card
53
- isMiniCard={configs?.google_maps_api_key?.value}
54
- onPress={() => handleClickCard(order?.uuid)}
55
- >
56
- {!!(configs?.google_maps_api_key?.value) && (
57
- <Map>
51
+ <Card
52
+ isMiniCard={configs?.google_maps_api_key?.value}
53
+ onPress={() => handleClickCard(order?.uuid)}
54
+ >
55
+ {!!(configs?.google_maps_api_key?.value) && (
56
+ <Map>
57
+ <OIcon
58
+ url={getGoogleMapImage(order?.business?.location, configs?.google_maps_api_key?.value)}
59
+ height={100}
60
+ width={320}
61
+ style={{resizeMode: 'cover', borderTopRightRadius: 24, borderTopLeftRadius: 24}}
62
+ />
63
+ </Map>
64
+ )}
65
+ <Information>
66
+ {!!order.business?.logo && (
67
+ <Logo>
58
68
  <OIcon
59
- url={getGoogleMapImage(order?.business?.location, configs?.google_maps_api_key?.value)}
60
- height={100}
61
- width={320}
62
- style={{resizeMode: 'cover', borderTopRightRadius: 24, borderTopLeftRadius: 24}}
69
+ url={optimizeImage(order.business?.logo, 'h_300,c_limit')}
70
+ style={styles.logo}
63
71
  />
64
- </Map>
72
+ </Logo>
65
73
  )}
66
- <Information>
67
- {!!order.business?.logo && (
68
- <Logo>
69
- <OIcon
70
- url={optimizeImage(order.business?.logo, 'h_300,c_limit')}
71
- style={styles.logo}
72
- />
73
- </Logo>
74
- )}
75
- <OrderInformation>
76
- <BusinessInformation style={{ width: '60%' }}>
77
- <GestureHandlerScrollView
78
- showsVerticalScrollIndicator={false}
79
- showsHorizontalScrollIndicator={false}
80
- horizontal
81
- >
82
- <TouchableWithoutFeedback>
83
- <View>
84
- <OText
85
- size={16}
86
- numberOfLines={1}
87
- ellipsizeMode='tail'
88
- >
89
- {order.business?.name}
90
- </OText>
91
- </View>
92
- </TouchableWithoutFeedback>
93
- </GestureHandlerScrollView>
94
- <GestureHandlerScrollView
74
+ <OrderInformation>
75
+ <BusinessInformation style={{ width: '60%' }}>
76
+ <GestureHandlerScrollView
95
77
  showsVerticalScrollIndicator={false}
96
78
  showsHorizontalScrollIndicator={false}
97
79
  horizontal
98
- >
99
- <TouchableWithoutFeedback>
100
- <View style={styles.orderNumber}>
101
- <OText size={12} space color={theme.colors.textSecondary}>{t('ORDER_NUMBER', 'Order No.')}</OText>
102
- <OText size={12} color={theme.colors.textSecondary}>{order.id}</OText>
103
- </View>
104
- </TouchableWithoutFeedback>
105
- </GestureHandlerScrollView>
106
- <OText size={12} color={theme.colors.textSecondary}>{order?.delivery_datetime_utc
107
- ? parseDate(order?.delivery_datetime_utc)
108
- : parseDate(order?.delivery_datetime, { utc: false })}</OText>
109
- </BusinessInformation>
110
- <Price>
111
- <OText size={16}>{parsePrice(order?.summary?.total || order?.total)}</OText>
112
- {order?.status !== 0 && (
113
- <OText color={theme.colors.primary} size={12} numberOfLines={2}>{getOrderStatus(order.status)?.value}</OText>
114
- )}
115
- </Price>
116
- </OrderInformation>
117
- </Information>
118
- </Card>
119
- </React.Fragment>
80
+ >
81
+ <TouchableWithoutFeedback>
82
+ <View>
83
+ <OText
84
+ size={16}
85
+ numberOfLines={1}
86
+ ellipsizeMode='tail'
87
+ >
88
+ {order.business?.name}
89
+ </OText>
90
+ </View>
91
+ </TouchableWithoutFeedback>
92
+ </GestureHandlerScrollView>
93
+ <GestureHandlerScrollView
94
+ showsVerticalScrollIndicator={false}
95
+ showsHorizontalScrollIndicator={false}
96
+ horizontal
97
+ >
98
+ <TouchableWithoutFeedback>
99
+ <View style={styles.orderNumber}>
100
+ <OText size={12} space color={theme.colors.textSecondary}>{t('ORDER_NUMBER', 'Order No.')}</OText>
101
+ <OText size={12} color={theme.colors.textSecondary}>{order.id}</OText>
102
+ </View>
103
+ </TouchableWithoutFeedback>
104
+ </GestureHandlerScrollView>
105
+ <OText size={12} color={theme.colors.textSecondary}>{order?.delivery_datetime_utc
106
+ ? parseDate(order?.delivery_datetime_utc)
107
+ : parseDate(order?.delivery_datetime, { utc: false })}</OText>
108
+ </BusinessInformation>
109
+ <Price>
110
+ <OText size={16}>{parsePrice(order?.summary?.total || order?.total)}</OText>
111
+ {order?.status !== 0 && (
112
+ <OText color={theme.colors.primary} size={12} numberOfLines={2}>{getOrderStatus(order.status)?.value}</OText>
113
+ )}
114
+ </Price>
115
+ </OrderInformation>
116
+ </Information>
117
+ </Card>
120
118
  )
121
119
 
122
120
  return (
@@ -2,7 +2,7 @@ import styled from 'styled-components/native'
2
2
 
3
3
  export const ActiveOrdersContainer = styled.ScrollView`
4
4
  margin-bottom: 20px;
5
- height: ${({ isMiniCards }: { isMiniCards: boolean }) => !isMiniCards ? '150px' : '220px'};
5
+ height: ${({ isMiniCards }: { isMiniCards: boolean }) => !isMiniCards ? '150px' : '450px'};
6
6
  max-height: ${({ isMiniCards }: { isMiniCards: boolean }) => !isMiniCards ? '150px' : '220px'};
7
7
  `
8
8
 
@@ -210,9 +210,25 @@ const AddressFormUI = (props: AddressFormParams) => {
210
210
  }
211
211
  if ( addressType === 'postal_code') {
212
212
  postalCode = component.short_name
213
+ if (isObjet) {
214
+ setValue('zipcode', postalCode)
215
+ handleChangeInput({ target: { name: 'zipcode', value: postalCode } })
216
+ }
213
217
  }
214
218
  }
215
219
  isObjet ? address = addressValue.join(', ') : address
220
+
221
+ if (isObjet) {
222
+ setValue('address', address)
223
+ googleInput?.current?.setAddressText(address)
224
+ setLoadingLocation(false)
225
+ updateChanges({
226
+ address: address,
227
+ location: json.results[0].geometry.location
228
+ })
229
+ return
230
+ }
231
+
216
232
  data.address = {
217
233
  address,
218
234
  location: json.results[0].geometry.location,
@@ -597,7 +613,7 @@ const AddressFormUI = (props: AddressFormParams) => {
597
613
  name='zipcode'
598
614
  rules={{ required: isRequiredField && isRequiredField('zipcode') ? t(`VALIDATION_ERROR_ZIP_CODE_REQUIRED`, `The field Zip Code is required`) : null }}
599
615
  defaultValue={address?.zipcode || formState.changes?.zipcode || addressState.address.zipcode || ''}
600
- render={() => (
616
+ render={({ value }) => (
601
617
  <OInput
602
618
  name='zipcode'
603
619
  placeholder={t('ZIP_CODE', 'Zip code')}
@@ -605,7 +621,7 @@ const AddressFormUI = (props: AddressFormParams) => {
605
621
  handleChangeInput(text)
606
622
  setValue('zipcode', text)
607
623
  }}
608
- value={address?.zipcode || formState.changes?.zipcode || addressState.address.zipcode || ''}
624
+ value={value || address?.zipcode || formState.changes?.zipcode || addressState.address.zipcode || ''}
609
625
  style={styles.inputsStyle}
610
626
  forwardRef={zipCodeRef}
611
627
  returnKeyType='next'
@@ -56,22 +56,14 @@ export const BusinessBasicInformation = (props: BusinessBasicInformationParams)
56
56
  }
57
57
  source={{ uri: header || optimizeImage(businessState?.business?.header, 'h_400,c_limit') }}
58
58
  >
59
- <BusinessLogo>
60
- {loading ? (
61
- <View style={{ marginLeft: 20 }}>
62
- <Placeholder Animation={Fade}>
63
- <PlaceholderLine height={50} width={20} />
64
- </Placeholder>
65
- </View>
66
- ) : (
67
- !isBusinessInfoShow && (
68
- <OIcon
69
- url={logo || optimizeImage(businessState?.business?.logo, 'h_300,c_limit')}
70
- style={styles.businessLogo}
71
- />
72
- )
73
- )}
74
- </BusinessLogo>
59
+ {!isBusinessInfoShow && (
60
+ <BusinessLogo>
61
+ <OIcon
62
+ url={logo || optimizeImage(businessState?.business?.logo, 'h_300,c_limit')}
63
+ style={styles.businessLogo}
64
+ />
65
+ </BusinessLogo>
66
+ )}
75
67
  </BusinessHeader>
76
68
  <BusinessInfo
77
69
  style={styles.businessInfo}
@@ -117,7 +109,7 @@ export const BusinessBasicInformation = (props: BusinessBasicInformationParams)
117
109
  <PlaceholderLine width={10} />
118
110
  </Placeholder>
119
111
  ) : (
120
- <View style={{width: '75%'}}>
112
+ <View style={{ width: '75%' }}>
121
113
  <OText color={theme.colors.textSecondary}>{getBusinessType()}</OText>
122
114
  </View>
123
115
  )}
@@ -187,7 +179,7 @@ export const BusinessBasicInformation = (props: BusinessBasicInformationParams)
187
179
  titleSectionStyle={styles.modalTitleSectionStyle}
188
180
  open={openBusinessInformation}
189
181
  onClose={() => setOpenBusinessInformation(false)}
190
- styleCloseButton={{color: theme.colors.white, backgroundColor: 'rgba(0,0,0,0.3)'}}
182
+ styleCloseButton={{ color: theme.colors.white, backgroundColor: 'rgba(0,0,0,0.3)' }}
191
183
  isNotDecoration
192
184
  >
193
185
  <BusinessInformation
@@ -199,7 +191,7 @@ export const BusinessBasicInformation = (props: BusinessBasicInformationParams)
199
191
  titleSectionStyle={styles.modalTitleSectionStyle}
200
192
  open={openBusinessReviews}
201
193
  onClose={() => setOpenBusinessReviews(false)}
202
- styleCloseButton={{color: theme.colors.white, backgroundColor: 'rgba(0,0,0,0.3)'}}
194
+ styleCloseButton={{ color: theme.colors.white, backgroundColor: 'rgba(0,0,0,0.3)' }}
203
195
  isNotDecoration
204
196
  >
205
197
  <BusinessReviews
@@ -32,6 +32,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
32
32
  business,
33
33
  handleClick,
34
34
  isBusinessOpen,
35
+ getBusinessOffer,
35
36
  businessWillCloseSoonMinutes,
36
37
  isBusinessClose
37
38
  } = props;
@@ -145,11 +146,18 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
145
146
  />
146
147
  </BusinessLogo>
147
148
  <BusinessState>
148
- {!isBusinessOpen && (
149
+ {(!isBusinessOpen || !!getBusinessOffer(business?.offers)) && (
149
150
  <View style={styles.businessStateView}>
150
- <OText color={theme.colors.white} size={20} style={styles.businessStateText}>
151
- {t('PREORDER', 'PREORDER')}
152
- </OText>
151
+ {getBusinessOffer(business?.offers) && (
152
+ <OText color={theme.colors.white} size={18} style={styles.businessStateText}>
153
+ {getBusinessOffer(business?.offers) || parsePrice(0)}
154
+ </OText>
155
+ )}
156
+ {!isBusinessOpen && (
157
+ <OText color={theme.colors.white} size={18} style={styles.businessStateText}>
158
+ {t('PREORDER', 'PREORDER')}
159
+ </OText>
160
+ )}
153
161
  </View>
154
162
  )}
155
163
  </BusinessState>
@@ -158,10 +166,10 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
158
166
  <BusinessInfo>
159
167
  <View style={{ width: '70%', alignItems: 'flex-start' }}>
160
168
  <OText
161
- size={20}
162
- numberOfLines={1}
163
- ellipsizeMode='tail'
164
- >
169
+ size={20}
170
+ numberOfLines={1}
171
+ ellipsizeMode='tail'
172
+ >
165
173
  {business?.name}
166
174
  </OText>
167
175
  </View>
@@ -48,6 +48,20 @@ const BusinessInformationUI = (props: BusinessInformationParams) => {
48
48
  />
49
49
  <WrapMainContent>
50
50
  <InnerContent>
51
+ {(!!businessState?.business?.email || !!businessState?.business?.cellphone) && (
52
+ <>
53
+ <GrayBackground>
54
+ <OText size={16} weight='bold'>{t('BUSINESS_DETAILS', 'Business Details')}</OText>
55
+ </GrayBackground>
56
+ {!!businessState?.business?.email && (
57
+ <OText size={14} mBottom={5} mLeft={15} style={{ marginTop: 10 }}>{t('EMAIL', 'Email')}: <OText color={theme.colors.textSecondary}>{businessState?.business?.email}</OText></OText>
58
+ )}
59
+ {!!businessState?.business?.cellphone && (
60
+ <OText size={14} mBottom={20} mLeft={15}>{t('CELLPHONE', 'Cellphone')}: <OText color={theme.colors.textSecondary}>{businessState?.business?.cellphone}</OText></OText>
61
+ )}
62
+ </>
63
+ )}
64
+
51
65
  <GrayBackground>
52
66
  <OText size={16} weight='bold'>{t('BUSINESS_LOCATION', 'Business Location')}</OText>
53
67
  </GrayBackground>
@@ -1,5 +1,5 @@
1
1
  import React, { useState } from 'react'
2
- import { StyleSheet, View, ScrollView, Dimensions, Platform, PlatformIOSStatic, Pressable } from 'react-native'
2
+ import { StyleSheet, View, ScrollView, Dimensions, Platform, PlatformIOSStatic, TouchableOpacity } from 'react-native'
3
3
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder'
4
4
  import { BusinessTypeFilter as BusinessTypeFilterController, useLanguage } from 'ordering-components/native'
5
5
 
@@ -9,7 +9,6 @@ import { BusinessTypeFilterParams } from '../../types'
9
9
  import { useTheme } from 'styled-components/native'
10
10
  import MaterialIcon from 'react-native-vector-icons/MaterialCommunityIcons';
11
11
  import DeviceInfo from 'react-native-device-info';
12
- import { TouchableOpacity } from 'react-native-gesture-handler'
13
12
 
14
13
  const windowWidth = Dimensions.get('window').width;
15
14
 
@@ -191,7 +191,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
191
191
  {isFarAway && (
192
192
  <FarAwayMessage style={styles.farAwayMsg}>
193
193
  <Ionicons name='md-warning-outline' style={styles.iconStyle} />
194
- <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'You are far from this address')}</OText>
194
+ <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
195
195
  </FarAwayMessage>
196
196
  )}
197
197
  </OrderControlContainer>
@@ -93,7 +93,7 @@ const CheckoutUI = (props: any) => {
93
93
  deliveryOptionSelected,
94
94
  instructionsOptions,
95
95
  handleChangeDeliveryOption,
96
-
96
+ merchantId
97
97
  } = props
98
98
 
99
99
  const theme = useTheme();
@@ -530,6 +530,7 @@ const CheckoutUI = (props: any) => {
530
530
  handlePaymentMethodClickCustom={handlePaymentMethodClick}
531
531
  setCardData={setCardData}
532
532
  handlePlaceOrder={handlePlaceOrder}
533
+ merchantId={merchantId}
533
534
  />
534
535
  </ChPaymethods>
535
536
  </ChSection>
@@ -592,6 +593,19 @@ const CheckoutUI = (props: any) => {
592
593
  {t('WARNING_INVALID_PRODUCTS', 'Some products are invalid, please check them.')}
593
594
  </OText>
594
595
  )}
596
+
597
+ {options.type === 1 &&
598
+ validationFields?.fields?.checkout?.driver_tip?.enabled &&
599
+ validationFields?.fields?.checkout?.driver_tip?.required &&
600
+ (Number(cart?.driver_tip) <= 0) && (
601
+ <OText
602
+ style={{ textAlign: 'center' }}
603
+ color={theme.colors.error}
604
+ size={14}
605
+ >
606
+ {t('WARNING_INVALID_DRIVER_TIP', 'Driver Tip is required.')}
607
+ </OText>
608
+ )}
595
609
  </ChErrors>
596
610
  </ChSection>
597
611
  )}
@@ -602,8 +616,16 @@ const CheckoutUI = (props: any) => {
602
616
  <>
603
617
  <FloatingButton
604
618
  handleClick={() => handlePlaceOrder()}
605
- isSecondaryBtn={loading || !cart?.valid || !paymethodSelected || placing || errorCash || cart?.subtotal_to_calculate < cart?.minimum || paymethodSelected?.gateway === 'paypal'}
606
- disabled={loading || !cart?.valid || !paymethodSelected || placing || errorCash || cart?.subtotal_to_calculate < cart?.minimum || paymethodSelected?.gateway === 'paypal'}
619
+ isSecondaryBtn={loading || !cart?.valid || !paymethodSelected || placing || errorCash || cart?.subtotal_to_calculate < cart?.minimum || paymethodSelected?.gateway === 'paypal' ||
620
+ (options.type === 1 &&
621
+ validationFields?.fields?.checkout?.driver_tip?.enabled &&
622
+ validationFields?.fields?.checkout?.driver_tip?.required &&
623
+ (Number(cart?.driver_tip) <= 0))}
624
+ disabled={loading || !cart?.valid || !paymethodSelected || placing || errorCash || cart?.subtotal_to_calculate < cart?.minimum || paymethodSelected?.gateway === 'paypal' ||
625
+ (options.type === 1 &&
626
+ validationFields?.fields?.checkout?.driver_tip?.enabled &&
627
+ validationFields?.fields?.checkout?.driver_tip?.required &&
628
+ (Number(cart?.driver_tip) <= 0))}
607
629
  btnText={cart?.subtotal_to_calculate >= cart?.minimum
608
630
  ? (
609
631
  placing
@@ -49,7 +49,7 @@ const DriverTipsUI = (props: any) => {
49
49
  const [{ configs }] = useConfig();
50
50
  const [{loading}] = useOrder()
51
51
 
52
- const [value, setvalue] = useState(0);
52
+ const [value, setvalue] = useState('');
53
53
  const [valueOption,setValueOption] = useState(0)
54
54
 
55
55
  const placeholderCurrency = (configs?.currency_position?.value || 'left') === 'left'
@@ -57,9 +57,12 @@ const DriverTipsUI = (props: any) => {
57
57
  : `0${configs?.format_number_currency?.value}`
58
58
 
59
59
  const handleChangeDriverTip = (val: any) => {
60
- let tip = parseFloat(val)
61
- tip = isNaN(tip) ? 0 : tip
62
- setvalue(tip)
60
+ const tip = Number(val)
61
+ if ((isNaN(tip) || tip < 0)) {
62
+ setvalue(value)
63
+ return
64
+ }
65
+ setvalue(val)
63
66
  }
64
67
 
65
68
  const handleChangeOptionCustom = (val : any) => {
@@ -110,6 +113,8 @@ const DriverTipsUI = (props: any) => {
110
113
  <OInput
111
114
  placeholder={placeholderCurrency}
112
115
  style={style.inputStyle}
116
+ value={value}
117
+ type={'numeric'}
113
118
  onChange={handleChangeDriverTip}
114
119
  autoCapitalize='none'
115
120
  autoCorrect={false}
@@ -121,10 +126,10 @@ const DriverTipsUI = (props: any) => {
121
126
  textStyle={{ color: 'white', fontSize: 18, maxWidth: 110, minWidth: 60 }}
122
127
  imgRightSrc={null}
123
128
  textProps={{numberOfLines: 1}}
124
- isDisabled={!(value > 0 && value !== driverTip) || !value}
129
+ isDisabled={parseFloat(value || '0') < 0 || parseFloat(value || '0') === driverTip || value === ''}
125
130
  onClick={() => {
126
131
  handlerChangeOption(value)
127
- setvalue(0)
132
+ setvalue('')
128
133
  }}
129
134
  />
130
135
  </DTWrapperInput>
@@ -1,4 +1,4 @@
1
- import React, { useState } from 'react'
1
+ import React, { useEffect, useState } from 'react'
2
2
  import { LanguageSelector as LanguageSelectorController, useOrder } from 'ordering-components/native'
3
3
  import { useTheme } from 'styled-components/native';
4
4
  import { I18nManager, Platform, StyleSheet, View } from 'react-native'
@@ -87,7 +87,11 @@ const LanguageSelectorUI = (props: LanguageSelectorParams) => {
87
87
  changeDirection(Platform.OS === 'ios' ? language : langCode)
88
88
  handleChangeLanguage(Platform.OS === 'ios' ? language : langCode)
89
89
  }
90
-
90
+
91
+ useEffect(() => {
92
+ changeDirection(currentLanguage)
93
+ }, [])
94
+
91
95
  return (
92
96
  <Container>
93
97
  {languagesState?.languages ? (