ordering-ui-react-native 0.15.5 → 0.15.6-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.
- package/package.json +5 -3
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/BusinessTypeFilter/index.tsx +12 -2
- package/src/components/BusinessTypeFilter/styles.tsx +1 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +0 -1
- package/src/components/Home/index.tsx +3 -5
- package/src/components/LanguageSelector/index.tsx +66 -97
- package/src/components/LanguageSelector/styles.tsx +4 -17
- package/src/components/Messages/index.tsx +38 -30
- package/src/components/MomentOption/index.tsx +3 -1
- package/src/components/OrderDetails/index.tsx +25 -4
- package/src/components/PaymentOptions/index.tsx +9 -16
- package/src/components/PaymentOptionsWebView/index.tsx +123 -124
- package/src/components/ProductForm/index.tsx +1 -1
- package/src/components/ProductForm/styles.tsx +1 -0
- package/src/components/StripeElementsForm/index.tsx +27 -48
- package/src/components/UserProfileForm/index.tsx +35 -1
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/config.json +0 -2
- package/src/pages/Checkout.tsx +1 -1
- package/src/types/index.tsx +2 -9
- package/src/utils/index.tsx +2 -1
- package/themes/business/index.tsx +2 -0
- package/themes/business/src/components/Chat/index.tsx +32 -31
- package/themes/business/src/components/Home/index.tsx +128 -55
- package/themes/business/src/components/Home/styles.tsx +8 -1
- package/themes/business/src/components/NewOrderNotification/index.tsx +59 -98
- package/themes/business/src/components/OrderDetails/Business.tsx +1 -0
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +27 -0
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +85 -17
- package/themes/business/src/components/OrdersListManager/index.tsx +874 -0
- package/themes/business/src/components/OrdersListManager/styles.tsx +123 -0
- package/themes/business/src/components/OrdersListManager/utils.tsx +216 -0
- package/themes/business/src/components/OrdersOption/index.tsx +70 -116
- package/themes/business/src/components/OrdersOption/styles.tsx +2 -5
- package/themes/business/src/components/PreviousOrders/index.tsx +82 -23
- package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
- package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/kiosk/src/components/BusinessController/index.tsx +27 -6
- package/themes/kiosk/src/components/BusinessController/styles.tsx +1 -1
- package/themes/kiosk/src/components/BusinessProductsListing/index.tsx +51 -24
- package/themes/kiosk/src/components/Cart/index.tsx +1 -1
- package/themes/kiosk/src/components/CartBottomSheet/index.tsx +1 -1
- package/themes/kiosk/src/components/CartBottomSheet/styles.tsx +1 -1
- package/themes/kiosk/src/components/CartContent/index.tsx +13 -3
- package/themes/kiosk/src/components/CartItem/index.tsx +20 -8
- package/themes/kiosk/src/components/CategoriesMenu/index.tsx +7 -5
- package/themes/kiosk/src/components/CustomerName/index.tsx +89 -88
- package/themes/kiosk/src/components/Intro/index.tsx +13 -13
- package/themes/kiosk/src/components/LanguageSelector/index.tsx +12 -8
- package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
- package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderDetails/index.tsx +2 -2
- package/themes/kiosk/src/components/OrderSummary/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +10 -12
- package/themes/kiosk/src/components/ProductForm/index.tsx +172 -124
- package/themes/kiosk/src/components/ProductForm/styles.tsx +1 -1
- package/themes/kiosk/src/components/ProductOption/index.tsx +1 -0
- package/themes/kiosk/src/components/ProductOption/styles.tsx +1 -0
- package/themes/kiosk/src/components/UpsellingProducts/index.tsx +48 -34
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/kiosk/src/components/shared/OCard.tsx +112 -78
- package/themes/original/index.tsx +177 -0
- package/themes/original/src/components/AddressForm/index.tsx +15 -10
- package/themes/original/src/components/AddressList/index.tsx +28 -2
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +100 -45
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +28 -1
- package/themes/original/src/components/BusinessController/index.tsx +32 -21
- package/themes/original/src/components/BusinessListingSearch/index.tsx +7 -3
- package/themes/original/src/components/BusinessMenuList/index.tsx +11 -4
- package/themes/original/src/components/BusinessPreorder/index.tsx +141 -121
- package/themes/original/src/components/BusinessProductsCategories/index.tsx +7 -5
- package/themes/original/src/components/BusinessProductsList/index.tsx +6 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +23 -30
- package/themes/original/src/components/BusinessReviews/index.tsx +4 -25
- package/themes/original/src/components/BusinessesListing/index.tsx +40 -53
- package/themes/original/src/components/Cart/index.tsx +40 -9
- package/themes/original/src/components/CartContent/index.tsx +2 -2
- package/themes/original/src/components/Checkout/index.tsx +58 -33
- package/themes/original/src/components/Checkout/styles.tsx +7 -0
- package/themes/original/src/components/CouponControl/index.tsx +1 -0
- package/themes/original/src/components/DriverTips/index.tsx +1 -1
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +8 -12
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +97 -89
- package/themes/original/src/components/Home/index.tsx +1 -1
- package/themes/original/src/components/LoginForm/index.tsx +156 -70
- package/themes/original/src/components/LoginForm/styles.tsx +6 -1
- package/themes/original/src/components/Messages/index.tsx +52 -45
- package/themes/original/src/components/Messages/styles.tsx +1 -3
- package/themes/original/src/components/MomentOption/index.tsx +10 -1
- package/themes/original/src/components/MomentOption/styles.tsx +1 -1
- package/themes/original/src/components/OrderDetails/index.tsx +104 -126
- package/themes/original/src/components/OrderDetails/styles.tsx +3 -1
- package/themes/original/src/components/OrderProgress/index.tsx +4 -4
- package/themes/original/src/components/OrderProgress/styles.tsx +1 -0
- package/themes/original/src/components/OrderSummary/index.tsx +34 -1
- package/themes/original/src/components/OrdersOption/index.tsx +15 -46
- package/themes/original/src/components/OrdersOption/styles.tsx +0 -6
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +6 -2
- package/themes/original/src/components/PaymentOptions/index.tsx +24 -25
- package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -8
- package/themes/original/src/components/PlaceSpot/index.tsx +114 -0
- package/themes/original/src/components/PlaceSpot/styles.tsx +11 -0
- package/themes/original/src/components/PreviousOrders/index.tsx +19 -13
- package/themes/original/src/components/ProductForm/index.tsx +35 -16
- package/themes/original/src/components/ProductForm/styles.tsx +2 -2
- package/themes/original/src/components/ReviewOrder/index.tsx +10 -9
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
- package/themes/original/src/components/SignupForm/index.tsx +173 -154
- package/themes/original/src/components/StripeElementsForm/index.tsx +55 -72
- package/themes/original/src/components/TaxInformation/index.tsx +17 -7
- package/themes/original/src/components/UpsellingProducts/index.tsx +6 -6
- package/themes/original/src/components/UserDetails/index.tsx +4 -95
- package/themes/original/src/components/UserFormDetails/index.tsx +2 -14
- package/themes/original/src/components/UserProfile/index.tsx +16 -16
- package/themes/original/src/components/UserProfileForm/index.tsx +8 -6
- package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
- package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
- package/themes/original/src/components/shared/HeaderTitle.tsx +21 -0
- package/themes/original/src/components/shared/index.tsx +2 -0
- package/themes/original/src/config/constants.tsx +6 -6
- package/themes/original/src/types/index.tsx +63 -23
- package/themes/single-business/src/components/AddressList/index.tsx +1 -1
- package/themes/single-business/src/components/OrderTypeSelector/index.tsx +5 -5
- package/themes/single-business/src/components/UserProfile/index.tsx +1 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
- 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'
|
|
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
|
|
126
|
-
|
|
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
|
|
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={
|
|
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
|
|
298
|
+
publicKey={isOpenMethod?.paymethod?.credentials?.publishable}
|
|
306
299
|
handleSource={handlePaymethodDataChange}
|
|
307
|
-
onCancel={() => handlePaymethodClick(
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
if (payment === 'api error') {
|
|
63
|
+
setShowGateway({ closedByUser: true, open: false })
|
|
64
|
+
setProg(true);
|
|
65
|
+
}
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
76
|
-
setShowGateway({ closedByUser: false, open: false })
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
79
|
+
}
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
return (
|
|
82
82
|
<View style={{ zIndex: 9999, height: '100%', width: '100%', position: 'absolute', backgroundColor: 'white' }}>
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
+
)}
|
|
@@ -7,11 +7,10 @@ import {
|
|
|
7
7
|
useConfirmSetupIntent,
|
|
8
8
|
createPaymentMethod
|
|
9
9
|
} from '@stripe/stripe-react-native';
|
|
10
|
-
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
|
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
|
|
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
package/src/pages/Checkout.tsx
CHANGED
|
@@ -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'
|
|
10
|
+
const stripePaymentOptions = ['stripe', 'stripe_direct', 'stripe_connect'];
|
|
11
11
|
|
|
12
12
|
const KeyboardView = styled.KeyboardAvoidingView`
|
|
13
13
|
flex: 1;
|
package/src/types/index.tsx
CHANGED
|
@@ -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
|
-
}
|
package/src/utils/index.tsx
CHANGED
|
@@ -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,
|