ordering-ui-react-native 0.17.36 → 0.17.37-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 (215) hide show
  1. package/package.json +8 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessesListing/index.tsx +1 -1
  4. package/src/components/OrderCreating/index.tsx +1 -21
  5. package/src/components/PaymentOptionsWebView/index.tsx +29 -8
  6. package/src/components/StripeMethodForm/index.tsx +108 -79
  7. package/src/components/VerifyPhone/styles.tsx +1 -2
  8. package/src/components/shared/OToast.tsx +4 -4
  9. package/src/types/index.tsx +5 -0
  10. package/src/utils/index.tsx +7 -1
  11. package/themes/business/index.tsx +2 -0
  12. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +265 -240
  13. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  14. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  15. package/themes/business/src/components/Chat/index.tsx +118 -107
  16. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  17. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  18. package/themes/business/src/components/LoginForm/Otp/index.tsx +120 -0
  19. package/themes/business/src/components/LoginForm/Otp/styles.tsx +7 -0
  20. package/themes/business/src/components/LoginForm/index.tsx +238 -80
  21. package/themes/business/src/components/LoginForm/styles.tsx +10 -0
  22. package/themes/business/src/components/MapView/index.tsx +10 -10
  23. package/themes/business/src/components/NewOrderNotification/index.tsx +43 -50
  24. package/themes/business/src/components/OrderDetails/Delivery.tsx +4 -3
  25. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +90 -47
  26. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +59 -62
  27. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  28. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  29. package/themes/business/src/components/OrderMessage/index.tsx +18 -17
  30. package/themes/business/src/components/OrderSummary/index.tsx +113 -121
  31. package/themes/business/src/components/OrdersOption/index.tsx +32 -75
  32. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
  33. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  34. package/themes/business/src/components/PreviousOrders/index.tsx +445 -243
  35. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  36. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  37. package/themes/business/src/components/ReviewCustomer/index.tsx +41 -24
  38. package/themes/business/src/components/StoresList/index.tsx +2 -2
  39. package/themes/business/src/components/shared/OLink.tsx +33 -13
  40. package/themes/business/src/components/shared/OModal.tsx +16 -9
  41. package/themes/business/src/components/shared/OText.tsx +8 -2
  42. package/themes/business/src/types/index.tsx +32 -2
  43. package/themes/business/src/utils/index.tsx +44 -1
  44. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  45. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  46. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  47. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  48. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  49. package/themes/kiosk/src/components/LoginForm/Otp/index.tsx +92 -0
  50. package/themes/kiosk/src/components/LoginForm/Otp/styles.tsx +7 -0
  51. package/themes/kiosk/src/components/LoginForm/index.tsx +473 -151
  52. package/themes/kiosk/src/components/LoginForm/styles.tsx +14 -1
  53. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  54. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  55. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  56. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +3 -2
  57. package/themes/kiosk/src/components/PhoneInputNumber/styles.tsx +1 -3
  58. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  59. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  60. package/themes/kiosk/src/components/shared/OModal.tsx +14 -11
  61. package/themes/kiosk/src/layouts/Container.tsx +7 -1
  62. package/themes/kiosk/src/types/index.d.ts +13 -0
  63. package/themes/kiosk/src/utils/index.tsx +15 -0
  64. package/themes/original/index.tsx +6 -0
  65. package/themes/original/src/components/AddressDetails/index.tsx +29 -11
  66. package/themes/original/src/components/AddressForm/index.tsx +85 -49
  67. package/themes/original/src/components/AddressList/index.tsx +26 -21
  68. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  69. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  70. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  71. package/themes/original/src/components/BusinessBasicInformation/index.tsx +159 -90
  72. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +9 -7
  73. package/themes/original/src/components/BusinessController/index.tsx +154 -68
  74. package/themes/original/src/components/BusinessController/styles.tsx +22 -9
  75. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  76. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  77. package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
  78. package/themes/original/src/components/BusinessItemAccordion/index.tsx +23 -22
  79. package/themes/original/src/components/BusinessListingSearch/index.tsx +351 -326
  80. package/themes/original/src/components/BusinessPreorder/index.tsx +97 -16
  81. package/themes/original/src/components/BusinessProductsList/index.tsx +20 -11
  82. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  83. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  84. package/themes/original/src/components/BusinessProductsListing/index.tsx +684 -524
  85. package/themes/original/src/components/BusinessProductsListing/styles.tsx +4 -6
  86. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  87. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  88. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +106 -79
  89. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
  90. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  91. package/themes/original/src/components/Cart/index.tsx +102 -69
  92. package/themes/original/src/components/CartContent/index.tsx +115 -19
  93. package/themes/original/src/components/CartContent/styles.tsx +17 -7
  94. package/themes/original/src/components/Checkout/index.tsx +375 -179
  95. package/themes/original/src/components/Checkout/styles.tsx +4 -2
  96. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  97. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  98. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  99. package/themes/original/src/components/DriverTips/index.tsx +52 -34
  100. package/themes/original/src/components/Favorite/index.tsx +7 -4
  101. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  102. package/themes/original/src/components/FavoriteList/index.tsx +51 -80
  103. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  104. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  105. package/themes/original/src/components/GPSButton/index.tsx +6 -4
  106. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  107. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
  108. package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
  109. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
  110. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
  111. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +191 -0
  112. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
  113. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
  114. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
  115. package/themes/original/src/components/GoogleMap/index.tsx +15 -4
  116. package/themes/original/src/components/Help/index.tsx +8 -8
  117. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +11 -22
  118. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
  119. package/themes/original/src/components/HelpGuide/index.tsx +12 -16
  120. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  121. package/themes/original/src/components/HelpOrder/index.tsx +12 -25
  122. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  123. package/themes/original/src/components/Home/index.tsx +13 -4
  124. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  125. package/themes/original/src/components/LoginForm/Otp/index.tsx +139 -75
  126. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  127. package/themes/original/src/components/LoginForm/index.tsx +71 -28
  128. package/themes/original/src/components/LottieAnimation/index.tsx +103 -0
  129. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  130. package/themes/original/src/components/Messages/index.tsx +32 -10
  131. package/themes/original/src/components/MomentOption/index.tsx +195 -88
  132. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  133. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +219 -117
  134. package/themes/original/src/components/MultiCheckout/index.tsx +298 -88
  135. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  136. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  137. package/themes/original/src/components/MultiOrdersDetails/index.tsx +68 -21
  138. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  139. package/themes/original/src/components/MyOrders/index.tsx +53 -51
  140. package/themes/original/src/components/NavBar/index.tsx +18 -18
  141. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  142. package/themes/original/src/components/Notifications/index.tsx +46 -50
  143. package/themes/original/src/components/Notifications/styles.tsx +6 -3
  144. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  145. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +15 -3
  146. package/themes/original/src/components/OrderDetails/index.tsx +199 -359
  147. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  148. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  149. package/themes/original/src/components/OrderProgress/index.tsx +93 -114
  150. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  151. package/themes/original/src/components/OrderSummary/index.tsx +87 -59
  152. package/themes/original/src/components/OrderTypeSelector/index.tsx +1 -1
  153. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +24 -19
  154. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
  155. package/themes/original/src/components/OrdersOption/index.tsx +70 -65
  156. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  157. package/themes/original/src/components/PageBanner/index.tsx +171 -0
  158. package/themes/original/src/components/PageBanner/styles.tsx +11 -0
  159. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  160. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  161. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  162. package/themes/original/src/components/PaymentOptions/index.tsx +64 -7
  163. package/themes/original/src/components/PhoneInputNumber/index.tsx +3 -3
  164. package/themes/original/src/components/PlaceSpot/index.tsx +12 -6
  165. package/themes/original/src/components/ProductForm/index.tsx +223 -232
  166. package/themes/original/src/components/ProductForm/styles.tsx +5 -8
  167. package/themes/original/src/components/ProductItemAccordion/index.tsx +59 -29
  168. package/themes/original/src/components/ProductOptionSubOption/index.tsx +19 -11
  169. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +1 -2
  170. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  171. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
  172. package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
  173. package/themes/original/src/components/Promotions/index.tsx +234 -220
  174. package/themes/original/src/components/Promotions/styles.tsx +10 -3
  175. package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
  176. package/themes/original/src/components/ReviewOrder/index.tsx +26 -9
  177. package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
  178. package/themes/original/src/components/ReviewProducts/index.tsx +23 -11
  179. package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
  180. package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
  181. package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
  182. package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
  183. package/themes/original/src/components/ServiceForm/index.tsx +74 -19
  184. package/themes/original/src/components/Sessions/index.tsx +11 -8
  185. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  186. package/themes/original/src/components/SignupForm/index.tsx +42 -19
  187. package/themes/original/src/components/SingleOrderCard/index.tsx +156 -65
  188. package/themes/original/src/components/SingleOrderCard/styles.tsx +11 -9
  189. package/themes/original/src/components/SingleProductCard/index.tsx +100 -56
  190. package/themes/original/src/components/SingleProductCard/styles.tsx +22 -13
  191. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  192. package/themes/original/src/components/StripeCardsList/index.tsx +13 -3
  193. package/themes/original/src/components/StripeElementsForm/index.tsx +28 -15
  194. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -224
  195. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  196. package/themes/original/src/components/UserDetails/index.tsx +8 -4
  197. package/themes/original/src/components/UserFormDetails/index.tsx +47 -7
  198. package/themes/original/src/components/UserProfile/index.tsx +5 -7
  199. package/themes/original/src/components/UserProfileForm/index.tsx +25 -28
  200. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  201. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  202. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  203. package/themes/original/src/components/Wallets/index.tsx +79 -36
  204. package/themes/original/src/components/Wallets/styles.tsx +5 -4
  205. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  206. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  207. package/themes/original/src/components/shared/OBottomPopup.tsx +1 -1
  208. package/themes/original/src/components/shared/OButton.tsx +6 -2
  209. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  210. package/themes/original/src/components/shared/OInput.tsx +16 -2
  211. package/themes/original/src/components/shared/OModal.tsx +3 -3
  212. package/themes/original/src/layouts/Container.tsx +13 -9
  213. package/themes/original/src/types/index.tsx +38 -9
  214. package/themes/original/src/utils/index.tsx +364 -58
  215. 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.17.36",
3
+ "version": "0.17.37-release",
4
4
  "description": "Reusable components made in react native",
5
5
  "main": "src/index.tsx",
6
6
  "author": "ordering.inc",
@@ -49,8 +49,8 @@
49
49
  "@react-navigation/material-bottom-tabs": "^5.3.14",
50
50
  "@react-navigation/native": "^5.7.6",
51
51
  "@react-navigation/stack": "^5.9.3",
52
- "@segment/analytics-react-native": "^2.1.11",
53
- "@segment/sovran-react-native": "^0.2.6",
52
+ "@segment/analytics-react-native": "2.1.11",
53
+ "@segment/sovran-react-native": "0.2.6",
54
54
  "@sentry/react-native": "^2.6.0",
55
55
  "@stripe/stripe-react-native": "^0.2.0",
56
56
  "@types/react-native-loading-spinner-overlay": "^0.5.2",
@@ -58,7 +58,7 @@
58
58
  "@types/styled-components": "^5.1.3",
59
59
  "axios": "^0.21.0",
60
60
  "moment": "^2.29.1",
61
- "ordering-components": "github:Ordering-Inc/ordering-components#development",
61
+ "ordering-components": "github:Ordering-Inc/ordering-components#release",
62
62
  "patch-package": "^6.4.7",
63
63
  "postinstall-postinstall": "^2.1.0",
64
64
  "prop-types": "^15.7.2",
@@ -83,6 +83,7 @@
83
83
  "react-native-fbsdk-next": "^7.0.1",
84
84
  "react-native-geocoding": "^0.5.0",
85
85
  "react-native-gesture-handler": "^1.8.0",
86
+ "react-native-get-random-values": "1.8.0",
86
87
  "react-native-gifted-chat": "^0.16.3",
87
88
  "react-native-google-places-autocomplete": "^2.1.3",
88
89
  "react-native-html-to-pdf": "^0.10.0",
@@ -114,7 +115,7 @@
114
115
  "react-native-tracking-transparency": "^0.1.1",
115
116
  "react-native-uuid": "^2.0.1",
116
117
  "react-native-vector-icons": "^7.1.0",
117
- "react-native-webview": "^11.22.7",
118
+ "react-native-webview": "^11.6.4",
118
119
  "react-native-youtube-iframe": "^2.2.2",
119
120
  "rn-placeholder": "^3.0.3",
120
121
  "styled-components": "^5.1.1",
@@ -126,8 +127,8 @@
126
127
  "@babel/core": "^7.11.6",
127
128
  "@babel/runtime": "^7.11.2",
128
129
  "@react-native-community/eslint-config": "^2.0.0",
129
- "@types/react": "^18.0.14",
130
- "@types/react-dom": "^18.0.5",
130
+ "@types/react": "^18.0.15",
131
+ "@types/react-dom": "^18.0.6",
131
132
  "@types/react-native": "^0.63.25",
132
133
  "@types/react-native-calendar-picker": "^7.0.2",
133
134
  "babel-jest": "^26.3.0",
@@ -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.',
@@ -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>
@@ -131,26 +131,6 @@ export const OrderCreating = (props: any) => {
131
131
  <OText size={14}>{address}</OText>
132
132
  </LocationWrapper>
133
133
  )}
134
- {cart && (
135
- <DeliveryWrapper>
136
- <DeliveryContentWrapper>
137
- <SimpleIcon
138
- name='clock'
139
- size={20}
140
- color={theme.colors.primary}
141
- style={{ marginRight: 10 }}
142
- />
143
- <OText size={14}>
144
- {orderState?.options?.type === 1
145
- ? t('DELIVERY_TIME', 'Delivery Time')
146
- : t('PICK_UP', 'Pick Time')}
147
- </OText>
148
- </DeliveryContentWrapper>
149
- <View>
150
- <OText size={14} weight='700'>{parseDeliveryTime()}</OText>
151
- </View>
152
- </DeliveryWrapper>
153
- )}
154
134
  {cardData?.card?.brand && (
155
135
  <View style={{ flexDirection: 'row', marginBottom: 27 }}>
156
136
  {getIconCard(cardData?.card?.brand, 20)}
@@ -175,4 +155,4 @@ export const OrderCreating = (props: any) => {
175
155
  )}
176
156
  </OrderCreatingContainer>
177
157
  )
178
- }
158
+ }
@@ -9,7 +9,8 @@ import {
9
9
  useToast,
10
10
  useApi,
11
11
  useLanguage,
12
- useConfig
12
+ useConfig,
13
+ useOrder
13
14
  } from 'ordering-components/native';
14
15
 
15
16
  import { OText } from '../shared';
@@ -24,7 +25,9 @@ interface PaymentOptionsWebViewParams {
24
25
  webviewPaymethod?: any,
25
26
  setShowGateway?: any,
26
27
  setOpenOrderCreating?: any,
27
- locationId?: any
28
+ locationId?: any,
29
+ additionalParams?: any
30
+ title?: string
28
31
  }
29
32
  export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
30
33
  const {
@@ -37,7 +40,9 @@ export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
37
40
  webviewPaymethod,
38
41
  setShowGateway,
39
42
  setOpenOrderCreating,
40
- locationId
43
+ locationId,
44
+ title,
45
+ additionalParams = {}
41
46
  } = props
42
47
 
43
48
  const webviewRef = useRef<any>(null)
@@ -45,7 +50,7 @@ export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
45
50
  const [ordering] = useApi()
46
51
  const [{ configs }] = useConfig();
47
52
  const [, t] = useLanguage();
48
-
53
+ const [, { confirmCart }] = useOrder()
49
54
 
50
55
  const [progClr, setProgClr] = useState('#424242');
51
56
  const [prog, setProg] = useState(true);
@@ -55,9 +60,23 @@ export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
55
60
  setShowGateway({ open: false, closedByUser: true })
56
61
  }
57
62
 
58
- const onMessage = (e: any) => {
63
+ const onMessage = async (e: any) => {
59
64
  if (e?.nativeEvent?.data && e?.nativeEvent?.data !== 'undefined') {
60
65
  let payment = JSON.parse(e.nativeEvent.data);
66
+ if (payment?.response && payment?.responsetext && payment.orderid) {
67
+ const credomaticData = {
68
+ credomatic: {
69
+ ...payment
70
+ }
71
+ }
72
+ const confirmCartRes = await confirmCart(payment.orderid, credomaticData)
73
+ if (confirmCartRes.error) {
74
+ showToast(ToastType.Error, confirmCartRes.error.message)
75
+ }
76
+ if (confirmCartRes.result.order?.uuid) {
77
+ onNavigationRedirect?.('OrderDetails', { orderId: confirmCartRes.result.order.uuid, isFromCheckout: true })
78
+ }
79
+ }
61
80
 
62
81
  if (payment === 'api error' || payment === 'Cancelled by user') {
63
82
  setShowGateway({ closedByUser: true, open: false })
@@ -95,7 +114,7 @@ export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
95
114
  marginBottom: 5,
96
115
  marginTop: 10
97
116
  }}>
98
- {webviewPaymethod?.gateway === 'paypal' ? (t('PAYPAL_GATEWAY', 'PayPal GateWay')) : (t('SQUARE_PAYMENT', 'Square payment'))}
117
+ {title || (webviewPaymethod?.gateway === 'paypal' ? (t('PAYPAL_GATEWAY', 'PayPal GateWay')) : (t('SQUARE_PAYMENT', 'Square payment')))}
99
118
  </OText>
100
119
  <View style={{ padding: 20, opacity: prog ? 1 : 0, backgroundColor: 'white' }}>
101
120
  <ActivityIndicator size={24} color={progClr} />
@@ -110,6 +129,7 @@ export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
110
129
  cacheMode='LOAD_NO_CACHE'
111
130
  style={{ flex: 1 }}
112
131
  onShouldStartLoadWithRequest={() => true}
132
+ originWhitelist={["*"]}
113
133
  onLoadStart={() => {
114
134
  setProg(true);
115
135
  setProgClr('#424242');
@@ -139,7 +159,8 @@ export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
139
159
  currency: configs?.stripe_currency?.value || currency,
140
160
  userToken: token,
141
161
  clientId: webviewPaymethod?.credentials?.client_id,
142
- ...messageParams
162
+ ...messageParams,
163
+ ...additionalParams
143
164
  }
144
165
  }
145
166
  setProg(false);
@@ -148,4 +169,4 @@ export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
148
169
  />
149
170
  </View>
150
171
  )
151
- }
172
+ }
@@ -1,11 +1,10 @@
1
- import React, { useState, useEffect } from 'react'
1
+ import React, { useEffect } from 'react'
2
2
  import { useLanguage, useConfig } from 'ordering-components/native'
3
- import { useGooglePay, ApplePayButton, useApplePay } from '@stripe/stripe-react-native'
4
- import { OButton, OText } from '../shared';
5
- import { Platform, View } from 'react-native';
3
+ import { useGooglePay, useApplePay } from '@stripe/stripe-react-native'
4
+ import { Platform } from 'react-native';
6
5
  import { StripeMethodFormParams } from '../../types';
7
- import Spinner from 'react-native-loading-spinner-overlay';
8
6
  import { android_app_id } from '../../config.json'
7
+
9
8
  export const StripeMethodForm = (props: StripeMethodFormParams) => {
10
9
  const {
11
10
  cart,
@@ -13,23 +12,35 @@ export const StripeMethodForm = (props: StripeMethodFormParams) => {
13
12
  onCancel,
14
13
  setErrors,
15
14
  paymethod,
16
- devMode
15
+ devMode,
16
+ setMethodPaySupported,
17
+ placeByMethodPay,
18
+ methodPaySupported,
19
+ setPlaceByMethodPay,
20
+ cartTotal
17
21
  } = props
18
22
  const { initGooglePay, createGooglePayPaymentMethod, loading } = useGooglePay();
19
23
  const { presentApplePay, isApplePaySupported } = useApplePay();
20
- const [initialized, setInitialized] = useState(false);
21
- const [loadingGooglePayment, setLoadingGooglePayment] = useState(false)
22
24
  const [, t] = useLanguage()
23
- const [configs] = useConfig()
25
+ const [{ configs }] = useConfig()
26
+ const applePay = ['global_apple_pay', 'apple_pay']
27
+ const googlePay = ['global_google_pay', 'google_pay']
24
28
 
25
29
  useEffect(() => {
26
- if (paymethod !== 'google_pay' || !initGooglePay) return
27
30
  if (Platform.OS === 'ios') {
28
- setErrors(t('GOOGLE_PAY_NOT_SUPPORTED', 'Google pay not supported'))
31
+ setMethodPaySupported({
32
+ enabled: false,
33
+ loading: false
34
+ })
35
+ setPlaceByMethodPay(false)
29
36
  return
30
37
  }
31
38
  const initialize = async () => {
32
39
  try {
40
+ setMethodPaySupported({
41
+ ...methodPaySupported,
42
+ loading: true
43
+ })
33
44
  const { error } = await initGooglePay({
34
45
  testEnv: devMode,
35
46
  merchantName: android_app_id,
@@ -45,36 +56,66 @@ export const StripeMethodForm = (props: StripeMethodFormParams) => {
45
56
 
46
57
  if (error) {
47
58
  setErrors(error.code + ' - ' + error.message);
59
+ setMethodPaySupported({
60
+ enabled: false,
61
+ loading: false
62
+ })
63
+ setPlaceByMethodPay(false)
48
64
  return;
49
65
  }
50
- setInitialized(true);
66
+ setMethodPaySupported({
67
+ enabled: true,
68
+ loading: false
69
+ })
70
+ setPlaceByMethodPay(false)
71
+ setErrors('')
51
72
  } catch (err: any) {
52
73
  setErrors('Catch ' + err?.message)
74
+ setMethodPaySupported({
75
+ enabled: false,
76
+ loading: false
77
+ })
78
+ setPlaceByMethodPay(false)
53
79
  }
54
80
  }
55
- initialize();
56
- }, [initGooglePay]);
81
+ if (googlePay.includes(paymethod) && !methodPaySupported?.enabled) {
82
+ initialize();
83
+ }
84
+ }, [initGooglePay, paymethod]);
57
85
 
58
86
  useEffect(() => {
59
- if (paymethod !== 'apple_pay') return
87
+ if (applePay.includes(paymethod) && !paymethod) return
60
88
  if (Platform.OS === 'android') {
61
- setErrors(t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported'))
89
+ setPlaceByMethodPay(false)
90
+ setMethodPaySupported({
91
+ ...methodPaySupported,
92
+ loading: false
93
+ })
62
94
  return
63
95
  }
64
- }, [])
96
+ }, [paymethod])
65
97
 
66
98
  const createPaymentMethod = async () => {
67
- setLoadingGooglePayment(true)
99
+ setMethodPaySupported({
100
+ ...methodPaySupported,
101
+ loading: true
102
+ })
68
103
  const { error, paymentMethod } = await createGooglePayPaymentMethod({
69
- amount: cart?.balance ?? cart?.total,
104
+ amount: cartTotal ?? cart?.balance ?? cart?.total,
70
105
  currencyCode: configs?.stripe_currency?.value ?? 'USD',
71
106
  });
72
107
  if (error) {
73
108
  setErrors(error.code + ' - ' + error.message);
74
- setLoadingGooglePayment(false)
75
- return;
109
+ setMethodPaySupported({
110
+ enabled: true,
111
+ loading: false
112
+ })
76
113
  } else if (paymentMethod) {
77
- handleSource({
114
+ setMethodPaySupported({
115
+ enabled: true,
116
+ loading: false
117
+ })
118
+ const source = {
78
119
  ...paymentMethod?.Card,
79
120
  id: paymentMethod.id,
80
121
  type: paymentMethod.type,
@@ -83,39 +124,48 @@ export const StripeMethodForm = (props: StripeMethodFormParams) => {
83
124
  brand: paymentMethod.Card.brand,
84
125
  last4: paymentMethod.Card.last4
85
126
  }
86
- })
127
+ }
128
+ handleSource(cartTotal ? JSON.stringify(source) : source)
87
129
  onCancel()
88
- setLoadingGooglePayment(false)
89
130
  }
131
+ setPlaceByMethodPay(false)
90
132
  };
91
133
 
92
134
  const pay = async () => {
135
+ setMethodPaySupported({
136
+ ...methodPaySupported,
137
+ loading: true
138
+ })
93
139
  if (!isApplePaySupported) {
94
140
  setErrors(t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported'))
141
+ setMethodPaySupported({
142
+ enabled: false,
143
+ loading: false
144
+ })
145
+ setPlaceByMethodPay(false)
95
146
  return
96
147
  }
97
148
 
98
149
  const { error, paymentMethod } = await presentApplePay({
99
- cartItems: cart?.products?.map((product: any) => ({ label: product?.name, amount: product?.price?.toString?.() })),
150
+ cartItems: [{
151
+ label: t('CART', 'Cart'),
152
+ amount: cartTotal?.toString?.() ?? cart?.balance?.toString() ?? cart?.total?.toString?.()
153
+ }],
100
154
  country: 'US',
101
155
  currency: configs?.stripe_currency?.value ?? 'USD',
102
- shippingMethods: [
103
- {
104
- amount: cart?.balance?.toString() ?? cart?.total?.toString?.(),
105
- identifier: 'standard',
106
- label: 'Courier',
107
- detail: 'Delivery',
108
- type: 'final',
109
- },
110
- ],
111
-
112
- requiredShippingAddressFields: ['emailAddress', 'phoneNumber'],
113
- requiredBillingContactFields: ['phoneNumber', 'name'],
114
156
  });
115
157
  if (error) {
116
158
  setErrors(error.code + ' - ' + error.message);
159
+ setMethodPaySupported({
160
+ enabled: true,
161
+ loading: false
162
+ })
117
163
  } else if (paymentMethod) {
118
- handleSource({
164
+ setMethodPaySupported({
165
+ enabled: true,
166
+ loading: false
167
+ })
168
+ const source = {
119
169
  ...paymentMethod?.Card,
120
170
  id: paymentMethod.id,
121
171
  type: paymentMethod.type,
@@ -124,50 +174,29 @@ export const StripeMethodForm = (props: StripeMethodFormParams) => {
124
174
  brand: paymentMethod.Card.brand,
125
175
  last4: paymentMethod.Card.last4
126
176
  }
127
- })
177
+ }
178
+ handleSource(cartTotal ? JSON.stringify(source) : source)
128
179
  }
180
+ setPlaceByMethodPay(false)
129
181
  }
130
182
 
183
+ useEffect(() => {
184
+ if (isApplePaySupported && applePay.includes(paymethod)) {
185
+ setMethodPaySupported({
186
+ enabled: true,
187
+ loading: false
188
+ })
189
+ setErrors('')
190
+ }
191
+ }, [isApplePaySupported, paymethod])
192
+
193
+ useEffect(() => {
194
+ if (placeByMethodPay) {
195
+ applePay.includes(paymethod) ? pay() : createPaymentMethod()
196
+ }
197
+ }, [placeByMethodPay])
198
+
131
199
  return (
132
- <>
133
- {paymethod === 'google_pay' ? (
134
- <View>
135
- <OButton
136
- textStyle={{
137
- color: '#fff'
138
- }}
139
- imgRightSrc={null}
140
- onClick={createPaymentMethod}
141
- isDisabled={loading || !initialized}
142
- text={t('PAY_WITH_GOOGLE_PAY', 'Pay with Google Pay')}
143
- isLoading={loading || !initialized}
144
- style={{ marginTop: 20 }}
145
- />
146
- </View>
147
- ) : (
148
- <View>
149
- {isApplePaySupported ? (
150
- <>
151
- <OText>{t('APPLE_PAY_PAYMENT', 'Apple pay payment')}</OText>
152
- <ApplePayButton
153
- onPress={pay}
154
- type="plain"
155
- buttonStyle="black"
156
- borderRadius={4}
157
- style={{
158
- width: '100%',
159
- height: 50,
160
- }}
161
- />
162
- </>
163
- ) : (
164
- <OText>{t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported')}</OText>
165
- )}
166
- </View>
167
- )}
168
- <Spinner
169
- visible={loadingGooglePayment}
170
- />
171
- </>
200
+ <></>
172
201
  )
173
202
  }
@@ -2,7 +2,7 @@ import styled from 'styled-components/native';
2
2
 
3
3
  export const Container = styled.View`
4
4
  width: 100%;
5
- padding: 0 43px;
5
+ padding: 0 30px;
6
6
  `
7
7
 
8
8
  export const CountDownContainer = styled.View`
@@ -20,7 +20,6 @@ export const ResendSection = styled.View`
20
20
  display: flex;
21
21
  flex-direction: row;
22
22
  justify-content: center;
23
- flex-wrap: wrap;
24
23
  `
25
24
 
26
25
  export const WrappCountdown = styled.View`
@@ -1,11 +1,11 @@
1
1
  import * as React from "react";
2
- import { Animated, StyleSheet, Text, View } from "react-native";
2
+ import { Animated, StyleSheet, Text, View, Platform } from "react-native";
3
3
  import { ToastType, useToast, useLanguage } from "ordering-components/native";
4
4
  import { useTheme } from 'styled-components/native';
5
5
  import { getTraduction } from '../../utils'
6
6
 
7
7
  const fadeDuration = 300;
8
- const bottomPosition = 20;
8
+ const topPosition = Platform.OS === 'ios' ? 40 : 20
9
9
 
10
10
  export const Toast = (props: any) => {
11
11
  const [toastConfig, { hideToast }] = useToast();
@@ -54,7 +54,7 @@ export const Toast = (props: any) => {
54
54
  backgroundColor = theme.colors.toastInfo || '#6BA4FF';
55
55
  break;
56
56
  case ToastType.Error:
57
- backgroundColor = theme.colors.toastError || '#D83520' ;
57
+ backgroundColor = theme.colors.toastError || '#D83520';
58
58
  break;
59
59
  case ToastType.Success:
60
60
  backgroundColor = theme.colors.toastSuccess || '#90C68E';
@@ -65,7 +65,7 @@ export const Toast = (props: any) => {
65
65
  <Animated.View
66
66
  style={[
67
67
  styles.container,
68
- { bottom: bottomPosition, opacity },
68
+ { top: topPosition, opacity },
69
69
  ]}
70
70
  >
71
71
  <View style={[styles.toast, { backgroundColor }]}>
@@ -490,4 +490,9 @@ export interface StripeMethodFormParams {
490
490
  setErrors: (error: string) => void;
491
491
  paymethod: string;
492
492
  devMode?: boolean;
493
+ setMethodPaySupported?: any
494
+ placeByMethodPay?: any
495
+ methodPaySupported?: any,
496
+ setPlaceByMethodPay?: any,
497
+ cartTotal?: number
493
498
  }
@@ -34,7 +34,8 @@ export const getTraduction = (key: string, t: any) => {
34
34
  ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY: 'Error adding product, very far for delivery',
35
35
  ERROR_PRODUCT_NOT_FOUND: 'Error with the product',
36
36
  ERROR_ADD_BUSINESS_INVALID: 'An error occurred with the business',
37
- ERROR_INVALID_OFFER: 'The offer doesn\'t exist'
37
+ ERROR_INVALID_OFFER: 'The offer doesn\'t exist',
38
+ ERROR_ADD_PRODUCT_BEFORE_ADDRESS: 'You must have an address'
38
39
  }
39
40
 
40
41
  return keyList[key] ? t(key, keyList[key]) : t(key)
@@ -153,6 +154,11 @@ export const transformCountryCode = (countryCode : number) => {
153
154
  return code?.countryCode
154
155
  }
155
156
 
157
+ export const verifyCountryCode = (countryCode : string) => {
158
+ const code = CODES.find((code : any) => code.countryCode === (countryCode || '').toUpperCase())
159
+ return code?.countryCode
160
+ }
161
+
156
162
  /**
157
163
  * Function to check if a number is decimal or not
158
164
  * @param {*} value number to check if decimal or not
@@ -41,6 +41,7 @@ import { MapViewUI as MapView } from './src/components/MapView'
41
41
  import { NewOrderNotification } from './src/components/NewOrderNotification';
42
42
  import { DriverSchedule } from './src/components/DriverSchedule';
43
43
  import { ScheduleBlocked } from './src/components/ScheduleBlocked';
44
+ import { OrderDetailsLogistic } from './src/components/OrderDetailsLogistic'
44
45
  //OComponents
45
46
  import {
46
47
  OText,
@@ -110,6 +111,7 @@ export {
110
111
  VerifyPhone,
111
112
  DriverSchedule,
112
113
  ScheduleBlocked,
114
+ OrderDetailsLogistic,
113
115
  //OComponents
114
116
  OAlert,
115
117
  OButton,