ordering-ui-react-native 0.15.3 → 0.15.5-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 (131) hide show
  1. package/package.json +7 -3
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessTypeFilter/index.tsx +12 -2
  4. package/src/components/BusinessTypeFilter/styles.tsx +1 -1
  5. package/src/components/BusinessesListing/index.tsx +1 -1
  6. package/src/components/Checkout/index.tsx +0 -1
  7. package/src/components/Home/index.tsx +3 -5
  8. package/src/components/LanguageSelector/index.tsx +66 -97
  9. package/src/components/LanguageSelector/styles.tsx +4 -17
  10. package/src/components/Messages/index.tsx +38 -30
  11. package/src/components/MomentOption/index.tsx +3 -1
  12. package/src/components/OrderDetails/index.tsx +25 -4
  13. package/src/components/PaymentOptions/index.tsx +9 -16
  14. package/src/components/PaymentOptionsWebView/index.tsx +123 -124
  15. package/src/components/ProductForm/index.tsx +1 -1
  16. package/src/components/ProductForm/styles.tsx +1 -0
  17. package/src/components/StripeElementsForm/index.tsx +27 -48
  18. package/src/components/UserProfileForm/index.tsx +35 -1
  19. package/src/components/VerifyPhone/styles.tsx +1 -2
  20. package/src/config.json +0 -2
  21. package/src/pages/Checkout.tsx +1 -1
  22. package/src/types/index.tsx +2 -9
  23. package/src/utils/index.tsx +2 -1
  24. package/themes/business/index.tsx +2 -0
  25. package/themes/business/src/components/Chat/index.tsx +32 -31
  26. package/themes/business/src/components/Home/index.tsx +128 -55
  27. package/themes/business/src/components/Home/styles.tsx +8 -1
  28. package/themes/business/src/components/NewOrderNotification/index.tsx +59 -98
  29. package/themes/business/src/components/OrderDetails/Business.tsx +1 -0
  30. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +27 -0
  31. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +85 -17
  32. package/themes/business/src/components/OrdersListManager/index.tsx +874 -0
  33. package/themes/business/src/components/OrdersListManager/styles.tsx +123 -0
  34. package/themes/business/src/components/OrdersListManager/utils.tsx +216 -0
  35. package/themes/business/src/components/OrdersOption/index.tsx +70 -116
  36. package/themes/business/src/components/OrdersOption/styles.tsx +2 -5
  37. package/themes/business/src/components/PreviousOrders/index.tsx +82 -23
  38. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  39. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  40. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  41. package/themes/kiosk/src/components/BusinessController/index.tsx +27 -6
  42. package/themes/kiosk/src/components/BusinessController/styles.tsx +1 -1
  43. package/themes/kiosk/src/components/BusinessProductsListing/index.tsx +51 -24
  44. package/themes/kiosk/src/components/Cart/index.tsx +1 -1
  45. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +1 -1
  46. package/themes/kiosk/src/components/CartBottomSheet/styles.tsx +1 -1
  47. package/themes/kiosk/src/components/CartContent/index.tsx +13 -3
  48. package/themes/kiosk/src/components/CartItem/index.tsx +20 -8
  49. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +7 -5
  50. package/themes/kiosk/src/components/CustomerName/index.tsx +89 -88
  51. package/themes/kiosk/src/components/Intro/index.tsx +13 -13
  52. package/themes/kiosk/src/components/LanguageSelector/index.tsx +12 -8
  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/OrderDetails/index.tsx +2 -2
  56. package/themes/kiosk/src/components/OrderSummary/index.tsx +1 -1
  57. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +10 -12
  58. package/themes/kiosk/src/components/ProductForm/index.tsx +172 -124
  59. package/themes/kiosk/src/components/ProductForm/styles.tsx +1 -1
  60. package/themes/kiosk/src/components/ProductOption/index.tsx +1 -0
  61. package/themes/kiosk/src/components/ProductOption/styles.tsx +1 -0
  62. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +48 -34
  63. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  64. package/themes/kiosk/src/components/shared/OCard.tsx +112 -78
  65. package/themes/original/index.tsx +179 -0
  66. package/themes/original/src/components/AddressForm/index.tsx +15 -10
  67. package/themes/original/src/components/AddressList/index.tsx +28 -2
  68. package/themes/original/src/components/AnalyticsSegment/index.tsx +127 -0
  69. package/themes/original/src/components/BusinessBasicInformation/index.tsx +100 -45
  70. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +28 -1
  71. package/themes/original/src/components/BusinessController/index.tsx +32 -21
  72. package/themes/original/src/components/BusinessListingSearch/index.tsx +7 -3
  73. package/themes/original/src/components/BusinessMenuList/index.tsx +11 -4
  74. package/themes/original/src/components/BusinessPreorder/index.tsx +141 -121
  75. package/themes/original/src/components/BusinessProductsCategories/index.tsx +7 -5
  76. package/themes/original/src/components/BusinessProductsList/index.tsx +6 -3
  77. package/themes/original/src/components/BusinessProductsListing/index.tsx +23 -30
  78. package/themes/original/src/components/BusinessReviews/index.tsx +4 -25
  79. package/themes/original/src/components/BusinessesListing/index.tsx +40 -53
  80. package/themes/original/src/components/Cart/index.tsx +40 -9
  81. package/themes/original/src/components/CartContent/index.tsx +2 -2
  82. package/themes/original/src/components/Checkout/index.tsx +58 -33
  83. package/themes/original/src/components/Checkout/styles.tsx +7 -0
  84. package/themes/original/src/components/CouponControl/index.tsx +1 -0
  85. package/themes/original/src/components/DriverTips/index.tsx +1 -1
  86. package/themes/original/src/components/ForgotPasswordForm/index.tsx +8 -12
  87. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +97 -89
  88. package/themes/original/src/components/Home/index.tsx +1 -1
  89. package/themes/original/src/components/LoginForm/index.tsx +156 -70
  90. package/themes/original/src/components/LoginForm/styles.tsx +6 -1
  91. package/themes/original/src/components/Messages/index.tsx +52 -45
  92. package/themes/original/src/components/Messages/styles.tsx +1 -3
  93. package/themes/original/src/components/MomentOption/index.tsx +10 -1
  94. package/themes/original/src/components/MomentOption/styles.tsx +1 -1
  95. package/themes/original/src/components/OrderDetails/index.tsx +104 -126
  96. package/themes/original/src/components/OrderDetails/styles.tsx +3 -1
  97. package/themes/original/src/components/OrderProgress/index.tsx +4 -4
  98. package/themes/original/src/components/OrderProgress/styles.tsx +1 -0
  99. package/themes/original/src/components/OrderSummary/index.tsx +34 -1
  100. package/themes/original/src/components/OrdersOption/index.tsx +15 -46
  101. package/themes/original/src/components/OrdersOption/styles.tsx +0 -6
  102. package/themes/original/src/components/PaymentOptionWallet/index.tsx +6 -2
  103. package/themes/original/src/components/PaymentOptions/index.tsx +24 -25
  104. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -8
  105. package/themes/original/src/components/PlaceSpot/index.tsx +114 -0
  106. package/themes/original/src/components/PlaceSpot/styles.tsx +11 -0
  107. package/themes/original/src/components/PreviousOrders/index.tsx +19 -13
  108. package/themes/original/src/components/ProductForm/index.tsx +157 -108
  109. package/themes/original/src/components/ProductForm/styles.tsx +5 -3
  110. package/themes/original/src/components/ProductOptionSubOption/index.tsx +6 -1
  111. package/themes/original/src/components/ReviewOrder/index.tsx +10 -9
  112. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  113. package/themes/original/src/components/SignupForm/index.tsx +173 -154
  114. package/themes/original/src/components/StripeElementsForm/index.tsx +55 -72
  115. package/themes/original/src/components/TaxInformation/index.tsx +17 -7
  116. package/themes/original/src/components/UpsellingProducts/index.tsx +6 -6
  117. package/themes/original/src/components/UserDetails/index.tsx +4 -95
  118. package/themes/original/src/components/UserFormDetails/index.tsx +2 -14
  119. package/themes/original/src/components/UserProfile/index.tsx +16 -16
  120. package/themes/original/src/components/UserProfileForm/index.tsx +8 -6
  121. package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
  122. package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
  123. package/themes/original/src/components/shared/HeaderTitle.tsx +21 -0
  124. package/themes/original/src/components/shared/index.tsx +2 -0
  125. package/themes/original/src/config/constants.tsx +6 -6
  126. package/themes/original/src/types/index.tsx +63 -23
  127. package/themes/single-business/src/components/AddressList/index.tsx +1 -1
  128. package/themes/single-business/src/components/OrderTypeSelector/index.tsx +5 -5
  129. package/themes/single-business/src/components/UserProfile/index.tsx +1 -1
  130. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  131. package/src/components/StripeMethodForm/index.tsx +0 -168
@@ -1,5 +1,5 @@
1
- import React, { useState, useEffect } from 'react'
2
- import { View, StyleSheet, BackHandler, TouchableOpacity, I18nManager } from 'react-native'
1
+ import React, { useState, useEffect, useRef } from 'react'
2
+ import { View, StyleSheet, BackHandler, TouchableOpacity, I18nManager, AppState } from 'react-native'
3
3
  import LinearGradient from 'react-native-linear-gradient'
4
4
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
5
5
  import MaterialCommunityIcon from 'react-native-vector-icons/MaterialCommunityIcons'
@@ -64,7 +64,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
64
64
  isFromRoot,
65
65
  driverLocation,
66
66
  goToBusinessList,
67
- onNavigationRedirect
67
+ onNavigationRedirect,
68
+ getOrder
68
69
  } = props
69
70
 
70
71
  const theme = useTheme()
@@ -108,6 +109,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
108
109
  const [isReviewed, setIsReviewed] = useState(false)
109
110
  const [openOrderCreating, setOpenOrderCreating] = useState(false)
110
111
  const [openTaxModal, setOpenTaxModal] = useState<any>({ open: false, tax: null, type: '' })
112
+ const appState = useRef(AppState.currentState)
113
+
111
114
  const { order, loading, businessData, error } = props.order
112
115
 
113
116
  const getOrderStatus = (s: string) => {
@@ -256,6 +259,24 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
256
259
  })
257
260
  }, [])
258
261
 
262
+ useEffect(() => {
263
+ const onFocusApp = (nextAppState: any) => {
264
+ if (
265
+ appState.current.match(/inactive|background/) &&
266
+ nextAppState === "active"
267
+ ) {
268
+ getOrder && getOrder()
269
+ }
270
+ appState.current = nextAppState;
271
+ }
272
+
273
+ AppState.addEventListener("change", onFocusApp);
274
+ return () => {
275
+ AppState.removeEventListener('change', onFocusApp);
276
+ };
277
+ }, [])
278
+
279
+
259
280
  return (
260
281
  <OrderDetailsContainer keyboardShouldPersistTaps='handled'>
261
282
  {order && order?.id && !error && !loading && (
@@ -387,7 +408,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
387
408
  <OText style={{ textAlign: 'left' }}>{order?.delivery_option?.name}</OText>
388
409
  </View>
389
410
  )}
390
- {order?.comment && (
411
+ {!!order?.comment && (
391
412
  <View>
392
413
  <OText size={18} style={{ textAlign: 'left' }} >{t('COMMENT', 'Comment')}</OText>
393
414
  <OText style={{ textAlign: 'left' }}>{order?.comment}</OText>
@@ -61,13 +61,12 @@ const PaymentOptionsUI = (props: any) => {
61
61
  handlePaymethodDataChange,
62
62
  handlePaymentMethodClickCustom,
63
63
  isOpenMethod,
64
- setCardData,
65
- handlePlaceOrder
64
+ setCardData
66
65
  } = props
67
66
 
68
67
  const theme = useTheme();
69
68
  const [, t] = useLanguage();
70
- const methodsPay = ['google_pay', 'apple_pay']
69
+ const methodsPay = ['google_pay']
71
70
  const stripeDirectMethods = ['stripe_direct', ...methodsPay]
72
71
 
73
72
  const [addCardOpen, setAddCardOpen] = useState({ stripe: false, stripeConnect: false });
@@ -122,11 +121,8 @@ const PaymentOptionsUI = (props: any) => {
122
121
  }, [props.paySelected])
123
122
 
124
123
  useEffect(() => {
125
- setCardData && setCardData(paymethodData)
126
- if (methodsPay.includes(paymethodSelected?.gateway) && paymethodData?.id && paymethodSelected?.data?.card) {
127
- handlePlaceOrder()
128
- }
129
- }, [paymethodData, paymethodSelected])
124
+ setCardData(paymethodData)
125
+ }, [paymethodData])
130
126
 
131
127
  const renderPaymethods = ({ item }: any) => {
132
128
  return (
@@ -156,7 +152,7 @@ const PaymentOptionsUI = (props: any) => {
156
152
  )
157
153
  }
158
154
 
159
- const excludeGateway: any = ['stripe_connect', 'stripe_redirect']; //exclude connect & redirect
155
+ const excludeGateway: any = ['stripe_connect', 'stripe_redirect', 'apple_pay']; //exclude connect & redirect & apple pay
160
156
 
161
157
  return (
162
158
  <PMContainer>
@@ -285,11 +281,11 @@ const PaymentOptionsUI = (props: any) => {
285
281
  </KeyboardAvoidingView>
286
282
  </OModal>
287
283
 
288
- {/* Stripe direct, Google pay, Apple pay */}
284
+ {/* Stripe direct */}
289
285
  <OModal
290
286
  entireModal
291
287
  title={t('ADD_CREDIT_OR_DEBIT_CARD', 'Add credit or debit card')}
292
- open={stripeDirectMethods?.includes(isOpenMethod?.paymethod?.gateway) && !paymethodData.id}
288
+ open={isOpenMethod?.paymethod?.gateway === 'stripe_direct' && !paymethodData?.id}
293
289
  onClose={() => handlePaymethodClick(null)}
294
290
  >
295
291
  <KeyboardAvoidingView
@@ -298,13 +294,10 @@ const PaymentOptionsUI = (props: any) => {
298
294
  enabled={Platform.OS === 'ios' ? true : false}
299
295
  >
300
296
  <StripeElementsForm
301
- cart={cart}
302
- paymethod={isOpenMethod?.paymethod?.gateway}
303
- methodsPay={methodsPay}
304
297
  businessId={props.businessId}
305
- publicKey={isOpenMethod?.paymethod?.credentials?.publishable || isOpenMethod?.paymethod?.credentials?.publishable_key}
298
+ publicKey={isOpenMethod?.paymethod?.credentials?.publishable}
306
299
  handleSource={handlePaymethodDataChange}
307
- onCancel={() => handlePaymethodClick(null)}
300
+ onCancel={() => handlePaymethodClick(false)}
308
301
  />
309
302
  </KeyboardAvoidingView>
310
303
  </OModal>
@@ -5,147 +5,146 @@ import WebView from 'react-native-webview';
5
5
  import { ActivityIndicator } from 'react-native-paper';
6
6
 
7
7
  import {
8
- ToastType,
9
- useToast,
10
- useApi,
11
- useLanguage,
12
- useConfig
8
+ ToastType,
9
+ useToast,
10
+ useApi,
11
+ useLanguage,
12
+ useConfig
13
13
  } from 'ordering-components/native';
14
14
 
15
15
  import { OText } from '../shared';
16
16
 
17
17
  interface PaymentOptionsWebViewParams {
18
- onNavigationRedirect?: Function,
19
- uri?: any,
20
- user?: any,
21
- token?: any,
22
- cart?: any,
23
- currency?: any,
24
- webviewPaymethod?: any,
25
- setShowGateway?: any,
26
- setOpenOrderCreating?: any,
27
- locationId?: any
18
+ onNavigationRedirect?: Function,
19
+ uri?: any,
20
+ user?: any,
21
+ token?: any,
22
+ cart?: any,
23
+ currency?: any,
24
+ webviewPaymethod?: any,
25
+ setShowGateway?: any,
26
+ setOpenOrderCreating?: any,
27
+ locationId?: any
28
28
  }
29
29
  export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
30
- const {
31
- onNavigationRedirect,
32
- uri,
33
- user,
34
- token,
35
- cart,
36
- currency,
37
- webviewPaymethod,
38
- setShowGateway,
39
- setOpenOrderCreating,
40
- locationId
41
- } = props
30
+ const {
31
+ onNavigationRedirect,
32
+ uri,
33
+ user,
34
+ token,
35
+ cart,
36
+ currency,
37
+ webviewPaymethod,
38
+ setShowGateway,
39
+ setOpenOrderCreating,
40
+ locationId
41
+ } = props
42
42
 
43
- const webviewRef = useRef<any>(null)
44
- const [, { showToast }] = useToast();
45
- const [ordering] = useApi()
46
- const [{ configs }] = useConfig();
47
- const [, t] = useLanguage();
43
+ const webviewRef = useRef<any>(null)
44
+ const [, { showToast }] = useToast();
45
+ const [ordering] = useApi()
46
+ const [{ configs }] = useConfig();
47
+ const [, t] = useLanguage();
48
48
 
49
+
50
+ const [progClr, setProgClr] = useState('#424242');
51
+ const [prog, setProg] = useState(true);
49
52
 
50
- const [progClr, setProgClr] = useState('#424242');
51
- const [prog, setProg] = useState(true);
52
-
53
- const handleCloseWebview = () => {
53
+ const handleCloseWebview = () => {
54
54
  setProg(true);
55
55
  setShowGateway({ open: false, closedByUser: true })
56
56
  }
57
57
 
58
- const onMessage = (e: any) => {
59
- if (e?.nativeEvent?.data && e?.nativeEvent?.data !== 'undefined') {
60
- let payment = JSON.parse(e.nativeEvent.data);
58
+ const onMessage = (e: any) => {
59
+ if (e?.nativeEvent?.data && e?.nativeEvent?.data !== 'undefined') {
60
+ let payment = JSON.parse(e.nativeEvent.data);
61
61
 
62
- if (payment === 'api error') {
63
- setShowGateway({ closedByUser: true, open: false })
64
- setProg(true);
65
- }
62
+ if (payment === 'api error') {
63
+ setShowGateway({ closedByUser: true, open: false })
64
+ setProg(true);
65
+ }
66
66
 
67
- if (payment) {
68
- if (payment.error) {
69
- showToast(ToastType.Error, payment.result)
70
- setOpenOrderCreating && setOpenOrderCreating(false)
71
- } else if (payment?.result?.order?.uuid) {
72
- showToast(ToastType.Success, t('ORDER_PLACED_SUCCESSfULLY', 'The order was placed successfully'))
73
- onNavigationRedirect && onNavigationRedirect('OrderDetails', { orderId: payment?.result?.order?.uuid, isFromCheckout: true })
67
+ if (payment) {
68
+ if (payment.error) {
69
+ showToast(ToastType.Error, payment.result)
70
+ setOpenOrderCreating && setOpenOrderCreating(false)
71
+ } else if (payment?.result?.order?.uuid) {
72
+ showToast(ToastType.Success, t('ORDER_PLACED_SUCCESSfULLY', 'The order was placed successfully'))
73
+ onNavigationRedirect && onNavigationRedirect('OrderDetails', { orderId: payment?.result?.order?.uuid, isFromCheckout: true})
74
+ }
75
+ setProg(true);
76
+ setShowGateway({ closedByUser: false, open: false })
77
+ }
74
78
  }
75
- setProg(true);
76
- setShowGateway({ closedByUser: false, open: false })
77
- }
78
- }
79
- }
79
+ }
80
80
 
81
- return (
81
+ return (
82
82
  <View style={{ zIndex: 9999, height: '100%', width: '100%', position: 'absolute', backgroundColor: 'white' }}>
83
- <Icon
84
- name="x"
85
- size={35}
86
- style={{ backgroundColor: 'white', paddingTop: 30, paddingLeft: 10 }}
87
- onPress={handleCloseWebview}
88
- />
89
- <OText
90
- style={{
91
- textAlign: 'center',
92
- fontSize: 16,
93
- fontWeight: 'bold',
94
- color: '#00457C',
95
- marginBottom: 5,
96
- marginTop: 10
97
- }}>
98
- {webviewPaymethod?.gateway === 'paypal' ? (t('PAYPAL_GATEWAY', 'PayPal GateWay')) : (t('SQUARE_PAYMENT', 'Square payment'))}
99
- </OText>
100
- <View style={{ padding: 20, opacity: prog ? 1 : 0, backgroundColor: 'white' }}>
101
- <ActivityIndicator size={24} color={progClr} />
102
- </View>
103
- <WebView
104
- source={{ uri: uri }}
105
- onMessage={onMessage}
106
- ref={webviewRef}
107
- javaScriptEnabled={true}
108
- javaScriptEnabledAndroid={true}
109
- cacheEnabled={false}
110
- cacheMode='LOAD_NO_CACHE'
111
- style={{ flex: 1 }}
112
- onShouldStartLoadWithRequest={() => true}
113
- onLoadStart={() => {
114
- setProg(true);
115
- setProgClr('#424242');
116
- }}
117
- onLoadProgress={() => {
118
- setProg(true);
119
- setProgClr('#00457C');
120
- }}
121
- onLoad={() => {
122
- setProg(true);
123
- setProgClr('#00457C');
124
- }}
125
- onLoadEnd={(e) => {
126
- const messageParams = locationId ? { locationId, clientId: webviewPaymethod?.credentials?.application_id } : {}
127
- const message = {
128
- action: 'init',
129
- data: {
130
- urlPlace: `${ordering.root}/carts/${cart?.uuid}/place`,
131
- urlConfirm: `${ordering.root}/carts/${cart?.uuid}/confirm`,
132
- payData: {
133
- paymethod_id: webviewPaymethod?.id,
134
- amount: cart?.balance ?? cart?.total,
135
- delivery_zone_id: cart?.delivery_zone_id,
136
- user_id: user?.id,
137
- user_name: user?.name
138
- },
139
- currency: configs?.stripe_currency?.value || currency,
140
- userToken: token,
141
- clientId: webviewPaymethod?.credentials?.client_id,
142
- ...messageParams
143
- }
144
- }
145
- setProg(false);
146
- webviewRef?.current?.postMessage?.(JSON.stringify(message))
147
- }}
148
- />
83
+ <Icon
84
+ name="x"
85
+ size={35}
86
+ style={{ backgroundColor: 'white', paddingTop: 30, paddingLeft: 10 }}
87
+ onPress={handleCloseWebview}
88
+ />
89
+ <OText
90
+ style={{
91
+ textAlign: 'center',
92
+ fontSize: 16,
93
+ fontWeight: 'bold',
94
+ color: '#00457C',
95
+ marginBottom: 5,
96
+ marginTop: 10
97
+ }}>
98
+ {webviewPaymethod?.gateway === 'paypal' ? (t('PAYPAL_GATEWAY', 'PayPal GateWay')) : (t('SQUARE_PAYMENT', 'Square payment'))}
99
+ </OText>
100
+ <View style={{ padding: 20, opacity: prog ? 1 : 0, backgroundColor: 'white' }}>
101
+ <ActivityIndicator size={24} color={progClr} />
102
+ </View>
103
+ <WebView
104
+ source={{ uri: uri }}
105
+ onMessage={onMessage}
106
+ ref={webviewRef}
107
+ javaScriptEnabled={true}
108
+ javaScriptEnabledAndroid={true}
109
+ cacheEnabled={false}
110
+ cacheMode='LOAD_NO_CACHE'
111
+ style={{ flex: 1 }}
112
+ onShouldStartLoadWithRequest={() => true}
113
+ onLoadStart={() => {
114
+ setProg(true);
115
+ setProgClr('#424242');
116
+ }}
117
+ onLoadProgress={() => {
118
+ setProg(true);
119
+ setProgClr('#00457C');
120
+ }}
121
+ onLoad={() => {
122
+ setProg(true);
123
+ setProgClr('#00457C');
124
+ }}
125
+ onLoadEnd={(e) => {
126
+ const messageParams = locationId ? { locationId } : {}
127
+ const message = {
128
+ action: 'init',
129
+ data: {
130
+ urlPlace: `${ordering.root}/carts/${cart?.uuid}/place`,
131
+ urlConfirm: `${ordering.root}/carts/${cart?.uuid}/confirm`,
132
+ payData: {
133
+ paymethod_id: webviewPaymethod?.id,
134
+ amount: cart?.balance ?? cart?.total,
135
+ delivery_zone_id: cart?.delivery_zone_id,
136
+ user_id: user?.id,
137
+ user_name: user?.name
138
+ },
139
+ currency: configs?.stripe_currency?.value || currency,
140
+ userToken: token,
141
+ clientId: webviewPaymethod?.credentials?.client_id,
142
+ ...messageParams
143
+ }
144
+ }
145
+ setProg(false);
146
+ webviewRef?.current?.postMessage?.(JSON.stringify(message))
147
+ }}
148
+ />
149
149
  </View>
150
- )
151
- }
150
+ )}
@@ -378,7 +378,7 @@ const styles = StyleSheet.create({
378
378
  borderBottomLeftRadius: 10,
379
379
  borderBottomRightRadius: 10,
380
380
  borderColor: '#DBDCDB',
381
- height: 100,
381
+ height: 160,
382
382
  alignItems: 'flex-start',
383
383
  },
384
384
  quantityControl: {
@@ -66,6 +66,7 @@ export const WrapperSubOption = styled.View`
66
66
  `
67
67
 
68
68
  export const ProductComment = styled.View`
69
+ height: 160px;
69
70
  `
70
71
 
71
72
  export const ProductActions = styled.View`
@@ -7,11 +7,10 @@ import {
7
7
  useConfirmSetupIntent,
8
8
  createPaymentMethod
9
9
  } from '@stripe/stripe-react-native';
10
- import configs from '../../config.json'
10
+
11
11
  import { ErrorMessage } from './styles';
12
12
 
13
13
  import { StripeElementsForm as StripeFormController } from './naked';
14
- import { StripeMethodForm } from '../StripeMethodForm';
15
14
  import { OButton, OText } from '../shared';
16
15
  import { useTheme } from 'styled-components/native';
17
16
 
@@ -23,10 +22,6 @@ const StripeElementsFormUI = (props: any) => {
23
22
  businessId,
24
23
  requirements,
25
24
  stripeTokenHandler,
26
- methodsPay,
27
- paymethod,
28
- onCancel,
29
- cart
30
25
  } = props;
31
26
 
32
27
  const theme = useTheme();
@@ -126,49 +121,33 @@ const StripeElementsFormUI = (props: any) => {
126
121
  <View style={styles.container}>
127
122
  {publicKey ? (
128
123
  <View style={{ flex: 1 }}>
129
- <StripeProvider
130
- publishableKey={publicKey}
131
- merchantIdentifier={`merchant.${configs.apple_app_id}`}
132
- >
133
- {methodsPay?.includes(paymethod) ? (
134
- <StripeMethodForm
135
- handleSource={handleSource}
136
- onCancel={onCancel}
137
- cart={cart}
138
- setErrors={setErrors}
139
- paymethod={paymethod}
140
- devMode={publicKey?.includes('test')}
141
- />
142
- ) : (
143
- <CardField
144
- postalCodeEnabled={true}
145
- cardStyle={{
146
- backgroundColor: '#FFFFFF',
147
- textColor: '#000000',
148
- }}
149
- style={{
150
- width: '100%',
151
- height: 50,
152
- marginVertical: 30,
153
- zIndex: 9999,
154
- }}
155
- onCardChange={(cardDetails: any) => setCard(cardDetails)}
156
- />
157
- )}
158
- </StripeProvider>
159
- {!methodsPay?.includes(paymethod) && (
160
- <OButton
161
- text={t('SAVE_CARD', 'Save card')}
162
- bgColor={isCompleted ? theme.colors.primary : theme.colors.backgroundGray}
163
- borderColor={isCompleted ? theme.colors.primary :theme.colors.backgroundGray}
164
- style={styles.btnAddStyle}
165
- textStyle={{color: 'white'}}
166
- imgRightSrc={null}
167
- onClick={() => handleSaveCard()}
168
- isDisabled={!isCompleted}
169
- isLoading={confirmSetupLoading || values.loadingAdd || createPmLoading}
124
+ <StripeProvider publishableKey={publicKey}>
125
+ <CardField
126
+ postalCodeEnabled={true}
127
+ cardStyle={{
128
+ backgroundColor: '#FFFFFF',
129
+ textColor: '#000000',
130
+ }}
131
+ style={{
132
+ width: '100%',
133
+ height: 50,
134
+ marginVertical: 30,
135
+ zIndex: 9999,
136
+ }}
137
+ onCardChange={(cardDetails: any) => setCard(cardDetails)}
170
138
  />
171
- )}
139
+ </StripeProvider>
140
+ <OButton
141
+ text={t('SAVE_CARD', 'Save card')}
142
+ bgColor={isCompleted ? theme.colors.primary : theme.colors.backgroundGray}
143
+ borderColor={isCompleted ? theme.colors.primary :theme.colors.backgroundGray}
144
+ style={styles.btnAddStyle}
145
+ textStyle={{color: 'white'}}
146
+ imgRightSrc={null}
147
+ onClick={() => handleSaveCard()}
148
+ isDisabled={!isCompleted}
149
+ isLoading={confirmSetupLoading || values.loadingAdd || createPmLoading}
150
+ />
172
151
  {!!errors && (
173
152
  <ErrorMessage>
174
153
  <OText
@@ -47,6 +47,40 @@ export const UserProfileForm = (props: ProfileParams) => {
47
47
  }
48
48
  });
49
49
 
50
+ const _pickerStyle = StyleSheet.create({
51
+ inputAndroid: {
52
+ color: '#000',
53
+ borderWidth: 1,
54
+ borderColor: theme.colors.clear,
55
+ padding: 10,
56
+ height: 40,
57
+ backgroundColor: theme.colors.disabled,
58
+ borderRadius: 8
59
+ },
60
+ inputIOS: {
61
+ color: '#000',
62
+ padding: 10,
63
+ height: 40,
64
+ borderWidth: 1,
65
+ borderColor: theme.colors.clear,
66
+ backgroundColor: theme.colors.clear,
67
+ },
68
+ icon: {
69
+ width: 10,
70
+ marginTop: 9,
71
+ marginEnd: 10
72
+ },
73
+ placeholder: {
74
+ color: theme.colors.secundaryContrast
75
+ },
76
+ chevronDown: {
77
+ display: 'none'
78
+ },
79
+ chevronUp: {
80
+ display: 'none'
81
+ }
82
+ })
83
+
50
84
  const onRedirect = (route: string, params?: any) => {
51
85
  navigation.navigate(route, params)
52
86
  }
@@ -97,7 +131,7 @@ export const UserProfileForm = (props: ProfileParams) => {
97
131
  <View>
98
132
  <LanguageContainer>
99
133
  <Ionicons name='globe-outline' style={styles.iconStyle} />
100
- <LanguageSelector isFromProfile />
134
+ <LanguageSelector pickerStyle={_pickerStyle} />
101
135
  </LanguageContainer>
102
136
  <LogoutButton />
103
137
  </View>
@@ -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`
package/src/config.json CHANGED
@@ -3,8 +3,6 @@
3
3
  "notification_app": "orderingapp",
4
4
  "app_name": "Ordering",
5
5
  "project": "reactdemo",
6
- "apple_app_id": "com.delivery",
7
- "android_app_id": "com.delivery",
8
6
  "api": {
9
7
  "url": "https://apiv4.ordering.co",
10
8
  "language": "en",
@@ -7,7 +7,7 @@ import styled from 'styled-components/native';
7
7
 
8
8
  import { useOrder, useLanguage, ToastType, useToast } from 'ordering-components/native';
9
9
 
10
- const stripePaymentOptions = ['stripe', 'stripe_direct', 'stripe_connect', 'google_pay', 'apple_pay'];
10
+ const stripePaymentOptions = ['stripe', 'stripe_direct', 'stripe_connect'];
11
11
 
12
12
  const KeyboardView = styled.KeyboardAvoidingView`
13
13
  flex: 1;
@@ -113,6 +113,7 @@ export interface LanguageSelectorParams {
113
113
  currentLanguage?: string;
114
114
  handleChangeLanguage?: any;
115
115
  isFromProfile?: boolean,
116
+ pickerStyle?: any
116
117
  }
117
118
  export interface BusinessesListingParams {
118
119
  navigation?: any;
@@ -286,6 +287,7 @@ export interface OrderDetailsParams {
286
287
  isFromRoot?: any;
287
288
  goToBusinessList?: any;
288
289
  onNavigationRedirect?: any;
290
+ getOrder?: () => {}
289
291
  }
290
292
  export interface ProductItemAccordionParams {
291
293
  key?: any;
@@ -473,12 +475,3 @@ export interface HelpGuideParams {
473
475
  export interface HelpAccountAndPaymentParams {
474
476
  navigation: any;
475
477
  }
476
-
477
- export interface StripeMethodFormParams {
478
- cart: any;
479
- handleSource: ({id, card} : {id : string, card : any}) => void;
480
- onCancel: () => void;
481
- setErrors: (error: string) => void;
482
- paymethod: string;
483
- devMode?: boolean;
484
- }
@@ -32,7 +32,8 @@ export const getTraduction = (key: string, t: any) => {
32
32
  ERROR_PLACE_PAY_WITH_CARD1: 'An error occurred while trying to pay by card',
33
33
  ERROR_PLACE_PAY_WITH_PAYPAL_CAPTURE: 'An error occurred while trying to pay by PayPal',
34
34
  ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY: 'Error adding product, very far for delivery',
35
- ERROR_PRODUCT_NOT_FOUND: 'Error with the product'
35
+ ERROR_PRODUCT_NOT_FOUND: 'Error with the product',
36
+ ERROR_ADD_BUSINESS_INVALID: 'An error occurred with the business',
36
37
  }
37
38
 
38
39
  return keyList[key] ? t(key, keyList[key]) : t(key)
@@ -16,6 +16,7 @@ import { OrderMessage } from './src/components/OrderMessage';
16
16
  import { OrderDetailsBusiness } from './src/components/OrderDetails/Business';
17
17
  import { OrderDetailsDelivery } from './src/components/OrderDetails/Delivery';
18
18
  import { OrdersOption } from './src/components/OrdersOption';
19
+ import { OrdersListManager } from './src/components/OrdersListManager';
19
20
  import { OrdersOptionStatus } from './src/components/OrdersOptionStatus';
20
21
  import { OrdersOptionBusiness } from './src/components/OrdersOptionBusiness';
21
22
  import { OrdersOptionCity } from './src/components/OrdersOptionCity';
@@ -84,6 +85,7 @@ export {
84
85
  OrderDetailsDelivery,
85
86
  OrderMessage,
86
87
  OrdersOption,
88
+ OrdersListManager,
87
89
  OrdersOptionStatus,
88
90
  OrdersOptionBusiness,
89
91
  OrdersOptionCity,