ordering-ui-react-native 0.15.32 → 0.15.33-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 +4 -2
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/BusinessController/index.tsx +8 -2
- package/src/components/BusinessTypeFilter/index.tsx +4 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +23 -3
- package/src/components/DriverTips/index.tsx +11 -6
- package/src/components/LanguageSelector/index.tsx +7 -2
- package/src/components/LoginForm/index.tsx +3 -1
- package/src/components/OrderDetails/index.tsx +2 -2
- package/src/components/PaymentOptions/index.tsx +9 -16
- package/src/components/PaymentOptionsWebView/index.tsx +123 -124
- package/src/components/SignupForm/index.tsx +3 -1
- package/src/components/SingleProductCard/index.tsx +16 -4
- package/src/components/StripeElementsForm/index.tsx +27 -48
- package/src/components/UpsellingProducts/index.tsx +1 -1
- package/src/components/UserProfileForm/index.tsx +63 -6
- package/src/components/UserProfileForm/styles.tsx +8 -0
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OModal.tsx +1 -1
- package/src/config.json +0 -2
- package/src/hooks/useCountdownTimer.tsx +26 -0
- package/src/navigators/HomeNavigator.tsx +6 -0
- package/src/pages/BusinessProductsList.tsx +1 -0
- package/src/pages/BusinessesListing.tsx +1 -1
- package/src/pages/Checkout.tsx +1 -1
- package/src/pages/Sessions.tsx +22 -0
- package/src/types/index.tsx +5 -11
- package/src/utils/index.tsx +68 -1
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +103 -15
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -0
- package/themes/business/src/components/Chat/index.tsx +38 -86
- package/themes/business/src/components/DriverMap/index.tsx +6 -5
- 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/LoginForm/index.tsx +89 -2
- package/themes/business/src/components/LoginForm/styles.tsx +6 -0
- package/themes/business/src/components/LogoutButton/index.tsx +1 -1
- package/themes/business/src/components/NewOrderNotification/index.tsx +79 -105
- package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
- package/themes/business/src/components/OrderDetails/Delivery.tsx +32 -15
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +157 -89
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +6 -0
- package/themes/business/src/components/OrderDetails/styles.tsx +7 -0
- package/themes/business/src/components/OrdersListManager/index.tsx +52 -49
- package/themes/business/src/components/OrdersOption/index.tsx +57 -50
- package/themes/business/src/components/PreviousOrders/index.tsx +50 -14
- package/themes/business/src/components/shared/OModal.tsx +1 -1
- package/themes/business/src/types/index.tsx +5 -1
- 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/Cart/index.tsx +98 -24
- package/themes/kiosk/src/components/Cart/styles.tsx +6 -0
- 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/Checkout/index.tsx +34 -22
- package/themes/kiosk/src/components/CustomerName/index.tsx +7 -8
- package/themes/kiosk/src/components/Intro/index.tsx +13 -13
- 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 +167 -67
- package/themes/kiosk/src/components/OrderDetails/styles.tsx +5 -0
- 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/PaymentOptions/index.tsx +1 -1
- package/themes/kiosk/src/components/ProductForm/index.tsx +174 -125
- 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/types/index.d.ts +2 -0
- package/themes/original/index.tsx +184 -1
- package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
- package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
- package/themes/original/src/components/AddressForm/index.tsx +15 -10
- package/themes/original/src/components/AddressList/index.tsx +56 -18
- package/themes/original/src/components/AppleLogin/index.tsx +117 -78
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +96 -45
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +28 -1
- package/themes/original/src/components/BusinessController/index.tsx +56 -16
- package/themes/original/src/components/BusinessController/styles.tsx +27 -0
- package/themes/original/src/components/BusinessFeaturedController/index.tsx +20 -1
- package/themes/original/src/components/BusinessFeaturedController/styles.tsx +23 -0
- package/themes/original/src/components/BusinessListingSearch/index.tsx +125 -7
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +14 -1
- package/themes/original/src/components/BusinessMenuList/index.tsx +11 -4
- package/themes/original/src/components/BusinessPreorder/index.tsx +142 -122
- package/themes/original/src/components/BusinessProductsCategories/index.tsx +9 -7
- package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
- package/themes/original/src/components/BusinessProductsList/index.tsx +139 -36
- package/themes/original/src/components/BusinessProductsList/styles.tsx +29 -2
- package/themes/original/src/components/BusinessProductsListing/index.tsx +111 -14
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +22 -0
- package/themes/original/src/components/BusinessReviews/index.tsx +4 -25
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +1 -2
- package/themes/original/src/components/BusinessesListing/index.tsx +85 -45
- package/themes/original/src/components/Cart/index.tsx +21 -17
- package/themes/original/src/components/CartContent/index.tsx +2 -2
- package/themes/original/src/components/Checkout/index.tsx +59 -48
- package/themes/original/src/components/DriverTips/index.tsx +17 -12
- package/themes/original/src/components/Favorite/index.tsx +91 -0
- package/themes/original/src/components/Favorite/styles.tsx +22 -0
- package/themes/original/src/components/FavoriteList/index.tsx +287 -0
- package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +84 -4
- package/themes/original/src/components/GPSButton/index.tsx +15 -8
- package/themes/original/src/components/GoogleMap/index.tsx +1 -0
- package/themes/original/src/components/Help/index.tsx +21 -4
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
- package/themes/original/src/components/Home/index.tsx +1 -1
- package/themes/original/src/components/LastOrders/index.tsx +12 -1
- package/themes/original/src/components/LoginForm/Otp/index.tsx +90 -0
- package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
- package/themes/original/src/components/LoginForm/index.tsx +394 -155
- package/themes/original/src/components/LoginForm/styles.tsx +7 -4
- package/themes/original/src/components/LogoutButton/index.tsx +7 -1
- package/themes/original/src/components/MessageListing/index.tsx +10 -1
- package/themes/original/src/components/Messages/index.tsx +6 -1
- 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 +56 -33
- package/themes/original/src/components/OrderDetails/styles.tsx +1 -2
- package/themes/original/src/components/OrderProgress/index.tsx +3 -3
- package/themes/original/src/components/OrderProgress/styles.tsx +1 -0
- package/themes/original/src/components/OrderSummary/index.tsx +3 -3
- package/themes/original/src/components/OrderTypeSelector/index.tsx +4 -2
- package/themes/original/src/components/OrdersOption/index.tsx +57 -56
- package/themes/original/src/components/OrdersOption/styles.tsx +0 -6
- package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +22 -24
- package/themes/original/src/components/PaymentOptionWallet/styles.tsx +1 -1
- package/themes/original/src/components/PaymentOptions/index.tsx +9 -21
- package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
- package/themes/original/src/components/PreviousOrders/index.tsx +18 -145
- package/themes/original/src/components/ProductForm/index.tsx +76 -61
- package/themes/original/src/components/ProductForm/styles.tsx +0 -1
- package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -12
- package/themes/original/src/components/Promotions/index.tsx +250 -0
- package/themes/original/src/components/Promotions/styles.tsx +60 -0
- package/themes/original/src/components/SearchBar/index.tsx +4 -1
- package/themes/original/src/components/Sessions/index.tsx +160 -0
- package/themes/original/src/components/Sessions/styles.tsx +15 -0
- package/themes/original/src/components/SignupForm/index.tsx +9 -4
- package/themes/original/src/components/SingleOrderCard/index.tsx +282 -0
- package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
- package/themes/original/src/components/SingleProductCard/index.tsx +82 -30
- package/themes/original/src/components/SingleProductCard/styles.tsx +28 -1
- package/themes/original/src/components/StripeElementsForm/index.tsx +55 -74
- package/themes/original/src/components/TaxInformation/index.tsx +10 -4
- package/themes/original/src/components/UpsellingProducts/index.tsx +86 -74
- package/themes/original/src/components/UserDetails/index.tsx +4 -95
- package/themes/original/src/components/UserFormDetails/index.tsx +34 -24
- package/themes/original/src/components/UserProfile/index.tsx +62 -8
- package/themes/original/src/components/UserProfileForm/index.tsx +20 -18
- package/themes/original/src/components/UserVerification/index.tsx +178 -192
- 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/Wallets/index.tsx +76 -9
- package/themes/original/src/components/Wallets/styles.tsx +21 -0
- package/themes/original/src/components/shared/HeaderTitle.tsx +21 -0
- package/themes/original/src/components/shared/OModal.tsx +4 -2
- 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 +107 -9
- package/themes/original/src/utils/index.tsx +28 -2
- package/themes/single-business/src/components/AddressList/index.tsx +1 -1
- package/themes/single-business/src/components/OrderTypeSelector/index.tsx +6 -6
- 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 -174
|
@@ -41,3 +41,24 @@ export const OTabs = styled.View`
|
|
|
41
41
|
export const OTab = styled.View`
|
|
42
42
|
padding-horizontal: 10px;
|
|
43
43
|
`;
|
|
44
|
+
|
|
45
|
+
export const LoyaltyContent = styled.View`
|
|
46
|
+
width: 100%;
|
|
47
|
+
margin-bottom: 20px;
|
|
48
|
+
`
|
|
49
|
+
|
|
50
|
+
export const LoyaltyWrapp = styled.View`
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
justify-content: center;
|
|
53
|
+
align-items: center;
|
|
54
|
+
`
|
|
55
|
+
|
|
56
|
+
export const LoyaltyImg = styled.ImageBackground`
|
|
57
|
+
position: relative;
|
|
58
|
+
height: 150px;
|
|
59
|
+
width: 100%;
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-direction: column;
|
|
62
|
+
justify-content: center;
|
|
63
|
+
align-items: center;
|
|
64
|
+
`
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
3
|
+
import OText from './OText';
|
|
4
|
+
|
|
5
|
+
const HeaderTitle = (props: any) => {
|
|
6
|
+
const { text, style } = props
|
|
7
|
+
return (
|
|
8
|
+
<OText
|
|
9
|
+
size={24}
|
|
10
|
+
style={style ?? {
|
|
11
|
+
marginTop: Platform.OS === 'android' ? 50 : 30,
|
|
12
|
+
paddingHorizontal: 40,
|
|
13
|
+
textTransform: 'capitalize'
|
|
14
|
+
}}
|
|
15
|
+
>
|
|
16
|
+
{text}
|
|
17
|
+
</OText>
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default HeaderTitle
|
|
@@ -21,6 +21,7 @@ interface Props {
|
|
|
21
21
|
isNotDecoration?: boolean;
|
|
22
22
|
styleCloseButton?: any,
|
|
23
23
|
isAvoidKeyBoardView?: boolean;
|
|
24
|
+
styleContainerCloseButton?: any;
|
|
24
25
|
}
|
|
25
26
|
const KeyboardView = styled.KeyboardAvoidingView`
|
|
26
27
|
flex-grow: 1;
|
|
@@ -45,6 +46,7 @@ const OModal = (props: Props): React.ReactElement => {
|
|
|
45
46
|
isNotDecoration,
|
|
46
47
|
style,
|
|
47
48
|
styleCloseButton,
|
|
49
|
+
styleContainerCloseButton,
|
|
48
50
|
isAvoidKeyBoardView
|
|
49
51
|
} = props
|
|
50
52
|
|
|
@@ -55,7 +57,7 @@ const OModal = (props: Props): React.ReactElement => {
|
|
|
55
57
|
{!entireModal ? (
|
|
56
58
|
<View style={styles.centeredView}>
|
|
57
59
|
<View style={titleSectionStyle ? titleSectionStyle : styles.titleSection}>
|
|
58
|
-
<TouchableOpacity style={styles.wrapperIcon} onPress={onClose}>
|
|
60
|
+
<TouchableOpacity style={{...styles.wrapperIcon, ...styleContainerCloseButton}} onPress={onClose}>
|
|
59
61
|
<OIcon
|
|
60
62
|
src={theme.images.general.close}
|
|
61
63
|
width={16}
|
|
@@ -91,7 +93,7 @@ const OModal = (props: Props): React.ReactElement => {
|
|
|
91
93
|
animationType="slide"
|
|
92
94
|
transparent={isTransparent}
|
|
93
95
|
visible={open}
|
|
94
|
-
onRequestClose={() => onClose()}
|
|
96
|
+
onRequestClose={() => onClose && onClose()}
|
|
95
97
|
style={{ height: '100%', flex: 1, position: 'absolute', ...style, zIndex: 9999 }}
|
|
96
98
|
>
|
|
97
99
|
{isAvoidKeyBoardView ? (
|
|
@@ -11,6 +11,7 @@ import OKeyButton from './OKeyButton'
|
|
|
11
11
|
import OModal from './OModal'
|
|
12
12
|
import OAlert from './OAlert'
|
|
13
13
|
import OBottomPopup from './OBottomPopup'
|
|
14
|
+
import HeaderTitle from './HeaderTitle'
|
|
14
15
|
|
|
15
16
|
export {
|
|
16
17
|
OText,
|
|
@@ -26,4 +27,5 @@ export {
|
|
|
26
27
|
OAlert,
|
|
27
28
|
OModal,
|
|
28
29
|
OBottomPopup,
|
|
30
|
+
HeaderTitle
|
|
29
31
|
}
|
|
@@ -8,26 +8,26 @@ export const ORDER_TYPES = [
|
|
|
8
8
|
{
|
|
9
9
|
value: 1,
|
|
10
10
|
content: 'DELIVERY',
|
|
11
|
-
description: '
|
|
11
|
+
description: 'ORDERTYPE_DESCRIPTION_DELIVERY'
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
value: 2,
|
|
15
15
|
content: 'PICKUP',
|
|
16
|
-
description: '
|
|
16
|
+
description: 'ORDERTYPE_DESCRIPTION_PICKUP',
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
value: 3,
|
|
20
20
|
content: 'EAT_IN',
|
|
21
|
-
description: '
|
|
21
|
+
description: 'ORDERTYPE_DESCRIPTION_EATIN',
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
value: 4,
|
|
25
25
|
content: 'CURBSIDE',
|
|
26
|
-
description: '
|
|
26
|
+
description: 'ORDERTYPE_DESCRIPTION_CURBSIDE',
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
value: 5,
|
|
30
30
|
content: 'DRIVE_THRU',
|
|
31
|
-
description: '
|
|
31
|
+
description: 'ORDERTYPE_DESCRIPTION_DRIVETHRU',
|
|
32
32
|
}
|
|
33
|
-
]
|
|
33
|
+
]
|
|
@@ -17,6 +17,14 @@ export interface LoginParams {
|
|
|
17
17
|
handleSendVerifyCode?: any;
|
|
18
18
|
handleCheckPhoneCode?: any;
|
|
19
19
|
notificationState?: any;
|
|
20
|
+
handleReCaptcha?: any;
|
|
21
|
+
enableReCaptcha?: any;
|
|
22
|
+
otpType?: string,
|
|
23
|
+
setOtpType: (type : string) => void,
|
|
24
|
+
generateOtpCode: (values ?: any) => void,
|
|
25
|
+
useLoginOtpEmail?: boolean,
|
|
26
|
+
useLoginOtpCellphone?: boolean,
|
|
27
|
+
useLoginOtp?: boolean
|
|
20
28
|
}
|
|
21
29
|
export interface ProfileParams {
|
|
22
30
|
navigation?: any;
|
|
@@ -37,6 +45,8 @@ export interface ProfileParams {
|
|
|
37
45
|
verifyPhoneState?: any;
|
|
38
46
|
setCheckPhoneCodeState?: any;
|
|
39
47
|
isVerifiedPhone?: any;
|
|
48
|
+
handleRemoveAccount?: any;
|
|
49
|
+
removeAccountState?: any;
|
|
40
50
|
}
|
|
41
51
|
|
|
42
52
|
export interface AddressListParams {
|
|
@@ -55,6 +65,7 @@ export interface AddressListParams {
|
|
|
55
65
|
isFromProductsList?: boolean;
|
|
56
66
|
afterSignup?: boolean;
|
|
57
67
|
isFromCheckout?: boolean
|
|
68
|
+
loadAddresses: () => void
|
|
58
69
|
}
|
|
59
70
|
|
|
60
71
|
export interface AddressFormParams {
|
|
@@ -100,6 +111,8 @@ export interface SignupParams {
|
|
|
100
111
|
handleCheckPhoneCode?: any;
|
|
101
112
|
notificationState?: any;
|
|
102
113
|
handleChangePromotions: () => void;
|
|
114
|
+
enableReCaptcha?: boolean;
|
|
115
|
+
handleReCaptcha?: () => void;
|
|
103
116
|
}
|
|
104
117
|
|
|
105
118
|
export interface PhoneInputParams {
|
|
@@ -116,6 +129,7 @@ export interface PhoneInputParams {
|
|
|
116
129
|
flagStyle?: any;
|
|
117
130
|
isDisabled?: any;
|
|
118
131
|
isStartValidation?: any;
|
|
132
|
+
changeCountry?: any;
|
|
119
133
|
}
|
|
120
134
|
|
|
121
135
|
export interface LanguageSelectorParams {
|
|
@@ -139,13 +153,18 @@ export interface BusinessesListingParams {
|
|
|
139
153
|
defaultBusinessType?: any;
|
|
140
154
|
franchiseId?: any;
|
|
141
155
|
businessId?: any;
|
|
156
|
+
isGuestUser?: any;
|
|
157
|
+
handleUpdateBusinessList?: any;
|
|
142
158
|
}
|
|
143
159
|
export interface HighestRatedBusinessesParams {
|
|
144
160
|
businessesList: { businesses: Array<any>, loading: boolean, error: null | string };
|
|
145
161
|
onBusinessClick?: void;
|
|
146
162
|
navigation?: any;
|
|
147
163
|
isLoading?: boolean;
|
|
148
|
-
getBusinesses: (newFetch: boolean) => void
|
|
164
|
+
getBusinesses: (newFetch: boolean) => void,
|
|
165
|
+
favoriteIds?: any,
|
|
166
|
+
setFavoriteIds?: any,
|
|
167
|
+
handleUpdateBusinessList?: any
|
|
149
168
|
}
|
|
150
169
|
export interface BusinessTypeFilterParams {
|
|
151
170
|
businessTypes?: Array<any>;
|
|
@@ -157,7 +176,7 @@ export interface BusinessTypeFilterParams {
|
|
|
157
176
|
setBusinessTypes?: any
|
|
158
177
|
}
|
|
159
178
|
export interface BusinessControllerParams {
|
|
160
|
-
key?: number;
|
|
179
|
+
key?: string | number;
|
|
161
180
|
business?: any;
|
|
162
181
|
handleCustomClick?: any;
|
|
163
182
|
orderType?: any;
|
|
@@ -174,7 +193,11 @@ export interface BusinessControllerParams {
|
|
|
174
193
|
businessDeliveryPrice?: number,
|
|
175
194
|
businessDeliveryTime?: string,
|
|
176
195
|
businessPickupTime?: string,
|
|
177
|
-
businessDistance?: number
|
|
196
|
+
businessDistance?: number,
|
|
197
|
+
favoriteIds?: number[],
|
|
198
|
+
handleFavoriteBusiness?: any,
|
|
199
|
+
setFavoriteIds?: any;
|
|
200
|
+
handleUpdateBusinessList?: any;
|
|
178
201
|
}
|
|
179
202
|
export interface BusinessProductsListingParams {
|
|
180
203
|
navigation?: any;
|
|
@@ -190,10 +213,14 @@ export interface BusinessProductsListingParams {
|
|
|
190
213
|
header?: any;
|
|
191
214
|
logo?: any;
|
|
192
215
|
productModal?: any;
|
|
216
|
+
alertState?: { open: boolean, content: any[] };
|
|
217
|
+
setAlertState?: any;
|
|
218
|
+
multiRemoveProducts?: (in1: any, in2: any) => {};
|
|
193
219
|
getNextProducts?: () => {};
|
|
194
220
|
handleChangeCategory: (value: any) => {};
|
|
195
221
|
setProductLogin?: () => {};
|
|
196
222
|
updateProductModal?: (value: any) => {};
|
|
223
|
+
handleUpdateProducts?: any;
|
|
197
224
|
}
|
|
198
225
|
export interface BusinessBasicInformationParams {
|
|
199
226
|
navigation?: any;
|
|
@@ -222,6 +249,7 @@ export interface BusinessProductsCategoriesParams {
|
|
|
222
249
|
}
|
|
223
250
|
export interface BusinessProductsListParams {
|
|
224
251
|
errors?: any;
|
|
252
|
+
isFiltMode?: any;
|
|
225
253
|
businessId?: number;
|
|
226
254
|
category?: any;
|
|
227
255
|
categories: Array<any>;
|
|
@@ -236,7 +264,12 @@ export interface BusinessProductsListParams {
|
|
|
236
264
|
handleCancelSearch?: () => void,
|
|
237
265
|
categoriesLayout?: any,
|
|
238
266
|
setCategoriesLayout?: any,
|
|
239
|
-
currentCart?: any
|
|
267
|
+
currentCart?: any,
|
|
268
|
+
setSubcategoriesSelected?: any,
|
|
269
|
+
subcategoriesSelected?: any,
|
|
270
|
+
onClickCategory?: any,
|
|
271
|
+
lazyLoadProductsRecommended?: boolean,
|
|
272
|
+
handleUpdateProducts?: any
|
|
240
273
|
}
|
|
241
274
|
export interface SingleProductCardParams {
|
|
242
275
|
businessId: any,
|
|
@@ -244,7 +277,10 @@ export interface SingleProductCardParams {
|
|
|
244
277
|
isSoldOut: boolean;
|
|
245
278
|
onProductClick: any;
|
|
246
279
|
productAddedToCartLength: number;
|
|
247
|
-
style?: ViewStyle
|
|
280
|
+
style?: ViewStyle,
|
|
281
|
+
categoryState?: any,
|
|
282
|
+
handleFavoriteProduct?: any,
|
|
283
|
+
handleUpdateProducts?: any
|
|
248
284
|
}
|
|
249
285
|
export interface BusinessInformationParams {
|
|
250
286
|
navigation?: any,
|
|
@@ -288,11 +324,16 @@ export interface OrdersOptionParams {
|
|
|
288
324
|
loadOrders?: any,
|
|
289
325
|
setOrderList?: any,
|
|
290
326
|
preOrders?: boolean,
|
|
327
|
+
reorderState?: any,
|
|
328
|
+
handleReorder?: (orderId: number) => {},
|
|
291
329
|
setOrdersLength?: ({ activeOrdersLength, previousOrdersLength }: { activeOrdersLength: number, previousOrdersLength: number }) => void,
|
|
292
330
|
ordersLength: { activeOrdersLength: number, previousOrdersLength: number },
|
|
293
331
|
setSelectedOrderId?: any,
|
|
294
332
|
setOpenMessges?: any,
|
|
295
|
-
loadMoreStatus?: boolean
|
|
333
|
+
loadMoreStatus?: boolean,
|
|
334
|
+
refreshOrders?: boolean,
|
|
335
|
+
setRefreshOrders?: (value : boolean) => void,
|
|
336
|
+
handleUpdateOrderList?: (orderId: number, changes: any) => {}
|
|
296
337
|
}
|
|
297
338
|
export interface ActiveOrdersParams {
|
|
298
339
|
orders?: any,
|
|
@@ -305,7 +346,8 @@ export interface ActiveOrdersParams {
|
|
|
305
346
|
loadMoreOrders?: () => {},
|
|
306
347
|
onNavigationRedirect?: (route: string, params?: any) => {},
|
|
307
348
|
isMessageView?: boolean,
|
|
308
|
-
handleClickOrder?: any
|
|
349
|
+
handleClickOrder?: any,
|
|
350
|
+
handleUpdateOrderList?: (orderId: number, changes: any) => {}
|
|
309
351
|
}
|
|
310
352
|
export interface PreviousOrdersParams {
|
|
311
353
|
orders?: any,
|
|
@@ -314,8 +356,9 @@ export interface PreviousOrdersParams {
|
|
|
314
356
|
orderID?: number
|
|
315
357
|
reorderLoading?: boolean,
|
|
316
358
|
loadMoreOrders?: () => {},
|
|
317
|
-
handleReorder
|
|
359
|
+
handleReorder?: (orderId: number) => {},
|
|
318
360
|
onNavigationRedirect?: (route: string, params?: any) => {}
|
|
361
|
+
handleUpdateOrderList?: (orderId: number, changes: any) => {}
|
|
319
362
|
}
|
|
320
363
|
export interface OrderDetailsParams {
|
|
321
364
|
navigation?: any,
|
|
@@ -478,6 +521,7 @@ export interface OrderTypeSelectParams {
|
|
|
478
521
|
defaultValue?: number;
|
|
479
522
|
configTypes?: Array<any>;
|
|
480
523
|
orderTypes: Array<any>;
|
|
524
|
+
setOrderTypeValue?: (value : number) => any
|
|
481
525
|
}
|
|
482
526
|
export interface UpsellingProductsParams {
|
|
483
527
|
isCustomMode?: boolean;
|
|
@@ -551,7 +595,10 @@ export interface BusinessSearchParams {
|
|
|
551
595
|
filters: any,
|
|
552
596
|
businessTypes: Array<number>,
|
|
553
597
|
setFilters: (filters: any) => void,
|
|
554
|
-
lazySearch?: boolean
|
|
598
|
+
lazySearch?: boolean,
|
|
599
|
+
brandList?: any;
|
|
600
|
+
handleUpdateProducts: any,
|
|
601
|
+
handleUpdateBusinessList?: any;
|
|
555
602
|
}
|
|
556
603
|
|
|
557
604
|
export interface NoNetworkParams {
|
|
@@ -566,3 +613,54 @@ export interface PlaceSpotParams {
|
|
|
566
613
|
getPlacesList?: any,
|
|
567
614
|
setOpenPlaceModal?: any
|
|
568
615
|
}
|
|
616
|
+
|
|
617
|
+
export interface PromotionParams {
|
|
618
|
+
navigation: any,
|
|
619
|
+
offersState: any,
|
|
620
|
+
handleSearchValue: any,
|
|
621
|
+
searchValue: string,
|
|
622
|
+
offerSelected: any,
|
|
623
|
+
setOfferSelected: any,
|
|
624
|
+
loadOffers: any
|
|
625
|
+
}
|
|
626
|
+
export interface SessionsParams {
|
|
627
|
+
navigation: any,
|
|
628
|
+
sessionsList: any,
|
|
629
|
+
actionState: any,
|
|
630
|
+
handleDeleteSession: any,
|
|
631
|
+
handleDeleteAllSessions: any
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
export interface otpParams {
|
|
635
|
+
willVerifyOtpState: boolean,
|
|
636
|
+
setWillVerifyOtpState: (val : boolean) => void,
|
|
637
|
+
onSubmit: () => void,
|
|
638
|
+
handleLoginOtp: (code : string) => void,
|
|
639
|
+
setAlertState: any
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
export interface FavoriteParams {
|
|
643
|
+
favoriteList: any,
|
|
644
|
+
handleUpdateFavoriteList: (id: number, changes: any) => {},
|
|
645
|
+
pagination: any,
|
|
646
|
+
getFavoriteList: (value: number) => {},
|
|
647
|
+
navigation?: any,
|
|
648
|
+
onNavigationRedirect?: (route: string, params?: any) => {},
|
|
649
|
+
reorderState?: any,
|
|
650
|
+
handleReorder?: (orderId: number) => {},
|
|
651
|
+
isOrder?: boolean,
|
|
652
|
+
isProduct?: boolean,
|
|
653
|
+
isBusiness?: boolean
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
export interface SingleOrderCardParams {
|
|
657
|
+
order: any,
|
|
658
|
+
reorderLoading: any,
|
|
659
|
+
handleReorder?: (value: any) => {},
|
|
660
|
+
getOrderStatus: any,
|
|
661
|
+
handleFavoriteOrder?: (value: boolean) => {},
|
|
662
|
+
onNavigationRedirect?: (route: string, params?: any) => {},
|
|
663
|
+
pastOrders: any,
|
|
664
|
+
isMessageView?: any,
|
|
665
|
+
handleClickOrder: (value: any) => {}
|
|
666
|
+
}
|
|
@@ -33,7 +33,8 @@ export const getTraduction = (key: string) => {
|
|
|
33
33
|
ERROR_PLACE_PAY_WITH_CARD1: 'An error occurred while trying to pay by card',
|
|
34
34
|
ERROR_PLACE_PAY_WITH_PAYPAL_CAPTURE: 'An error occurred while trying to pay by PayPal',
|
|
35
35
|
ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY: 'Error adding product, very far for delivery',
|
|
36
|
-
ERROR_PRODUCT_NOT_FOUND: 'Error with the product'
|
|
36
|
+
ERROR_PRODUCT_NOT_FOUND: 'Error with the product',
|
|
37
|
+
ERROR_INVALID_OFFER: 'The offer doesn\'t exist'
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
return keyList[key] ? t(key, keyList[key]) : t(key)
|
|
@@ -170,6 +171,15 @@ export const getTypesText = (value: number) => {
|
|
|
170
171
|
return ret?.content;
|
|
171
172
|
}
|
|
172
173
|
|
|
174
|
+
/**
|
|
175
|
+
* List shape for ribbon
|
|
176
|
+
*/
|
|
177
|
+
export const shape = {
|
|
178
|
+
rectangle: 'rectangle',
|
|
179
|
+
rectangleRound: 'rectangle_round',
|
|
180
|
+
capsuleShape: 'capsule_shape'
|
|
181
|
+
}
|
|
182
|
+
|
|
173
183
|
/**
|
|
174
184
|
* Function to transform degree to radian
|
|
175
185
|
* @param {number} value for transform
|
|
@@ -202,4 +212,20 @@ export const formatUrlVideo = (url : string) => {
|
|
|
202
212
|
const match = url.match(regExp)
|
|
203
213
|
const id = (match && match[7].length === 11) ? match[7] : false
|
|
204
214
|
return `https://www.youtube-nocookie.com/embed/${id}`
|
|
205
|
-
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export const formatSeconds = (seconds : number) => {
|
|
218
|
+
// Hours, minutes and seconds
|
|
219
|
+
var hrs = ~~(seconds / 3600)
|
|
220
|
+
var mins = ~~((seconds % 3600) / 60)
|
|
221
|
+
var secs = ~~seconds % 60
|
|
222
|
+
|
|
223
|
+
// Output like '1:01' or '4:03:59' or '123:03:59'
|
|
224
|
+
var ret = ''
|
|
225
|
+
if (hrs > 0) {
|
|
226
|
+
ret += '' + hrs + ':' + (mins < 10 ? '0' : '')
|
|
227
|
+
}
|
|
228
|
+
ret += '' + mins + ':' + (secs < 10 ? '0' : '')
|
|
229
|
+
ret += '' + secs
|
|
230
|
+
return ret
|
|
231
|
+
}
|
|
@@ -140,7 +140,7 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
140
140
|
<AddressListContainer>
|
|
141
141
|
{isProfile && (
|
|
142
142
|
<NavBar
|
|
143
|
-
title={t('
|
|
143
|
+
title={t('SAVED_PLACES', 'My saved places')}
|
|
144
144
|
titleAlign={'center'}
|
|
145
145
|
onActionLeft={() => goToBack()}
|
|
146
146
|
showCall={false}
|
|
@@ -58,7 +58,7 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
|
|
|
58
58
|
btnStyle={{ paddingLeft: 0 }}
|
|
59
59
|
paddingTop={0}
|
|
60
60
|
style={{ paddingBottom: 0 }}
|
|
61
|
-
title={t('
|
|
61
|
+
title={t('HOW_WILL_YOU_DELIVERY_TYPE', 'How will your order type?')}
|
|
62
62
|
titleAlign={'center'}
|
|
63
63
|
titleStyle={{ fontSize: 14 }}
|
|
64
64
|
/>
|
|
@@ -97,27 +97,27 @@ export const OrderTypeSelector = (props: any) => {
|
|
|
97
97
|
{
|
|
98
98
|
value: 1,
|
|
99
99
|
content: t('DELIVERY', 'Delivery'),
|
|
100
|
-
description: t('ORDERTYPE_DESCRIPTION_DELIVERY', '
|
|
100
|
+
description: t('ORDERTYPE_DESCRIPTION_DELIVERY', 'Delivery description')
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
value: 2,
|
|
104
104
|
content: t('PICKUP', 'Pickup'),
|
|
105
|
-
description: t('ORDERTYPE_DESCRIPTION_PICKUP', '
|
|
105
|
+
description: t('ORDERTYPE_DESCRIPTION_PICKUP', 'Pickup description')
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
value: 3,
|
|
109
109
|
content: t('EAT_IN', 'Eat in'),
|
|
110
|
-
description: t('ORDERTYPE_DESCRIPTION_EATIN', '
|
|
110
|
+
description: t('ORDERTYPE_DESCRIPTION_EATIN', 'Eat in description')
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
value: 4,
|
|
114
114
|
content: t('CURBSIDE', 'Curbside'),
|
|
115
|
-
description: t('ORDERTYPE_DESCRIPTION_CURBSIDE', '
|
|
115
|
+
description: t('ORDERTYPE_DESCRIPTION_CURBSIDE', 'Curbside description')
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
value: 5,
|
|
119
119
|
content: t('DRIVE_THRU', 'Drive thru'),
|
|
120
|
-
description: t('ORDERTYPE_DESCRIPTION_DRIVETHRU', '
|
|
120
|
+
description: t('ORDERTYPE_DESCRIPTION_DRIVETHRU', 'Drive Thru description')
|
|
121
121
|
}
|
|
122
122
|
]
|
|
123
123
|
}
|
|
@@ -154,7 +154,7 @@ const ProfileListUI = (props: ProfileParams) => {
|
|
|
154
154
|
<Actions>
|
|
155
155
|
<ListItem onPress={() => onRedirect('AddressList', { isFromProfile: true, isGoBack: true })} activeOpacity={0.7}>
|
|
156
156
|
<OIcon src={theme.images.general.pin} width={16} color={theme.colors.textNormal} style={{ marginEnd: 14 }} />
|
|
157
|
-
<OText size={14} lineHeight={24} weight={'400'} color={theme.colors.textNormal}>{t('
|
|
157
|
+
<OText size={14} lineHeight={24} weight={'400'} color={theme.colors.textNormal}>{t('SAVED_PLACES', 'My saved places')}</OText>
|
|
158
158
|
</ListItem>
|
|
159
159
|
<ListItem onPress={() => navigation.navigate('Help', {})} activeOpacity={0.7}>
|
|
160
160
|
<OIcon src={theme.images.general.help} width={16} color={theme.colors.textNormal} style={{ marginEnd: 14 }} />
|
|
@@ -144,7 +144,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
144
144
|
{isFarAway && (
|
|
145
145
|
<FarAwayMessage style={styles.farAwayMsg}>
|
|
146
146
|
<Ionicons name='md-warning-outline' style={styles.iconStyle} />
|
|
147
|
-
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', '
|
|
147
|
+
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
|
|
148
148
|
</FarAwayMessage>
|
|
149
149
|
)}
|
|
150
150
|
<View style={styles.wrapperOrderOptions}>
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import React, { useState, useEffect } from 'react'
|
|
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';
|
|
6
|
-
import { StripeMethodFormParams } from '../../types';
|
|
7
|
-
import Spinner from 'react-native-loading-spinner-overlay';
|
|
8
|
-
import { android_app_id } from '../../config.json'
|
|
9
|
-
export const StripeMethodForm = (props: StripeMethodFormParams) => {
|
|
10
|
-
const {
|
|
11
|
-
cart,
|
|
12
|
-
handleSource,
|
|
13
|
-
onCancel,
|
|
14
|
-
setErrors,
|
|
15
|
-
paymethod,
|
|
16
|
-
devMode
|
|
17
|
-
} = props
|
|
18
|
-
const { initGooglePay, createGooglePayPaymentMethod, loading } = useGooglePay();
|
|
19
|
-
const { presentApplePay, isApplePaySupported } = useApplePay();
|
|
20
|
-
const [initialized, setInitialized] = useState(false);
|
|
21
|
-
const [loadingGooglePayment, setLoadingGooglePayment] = useState(false)
|
|
22
|
-
const [, t] = useLanguage()
|
|
23
|
-
const [configs] = useConfig()
|
|
24
|
-
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (paymethod !== 'google_pay' || !initGooglePay) return
|
|
27
|
-
if (Platform.OS === 'ios') {
|
|
28
|
-
setErrors(t('GOOGLE_PAY_NOT_SUPPORTED', 'Google pay not supported'))
|
|
29
|
-
return
|
|
30
|
-
}
|
|
31
|
-
const initialize = async () => {
|
|
32
|
-
try {
|
|
33
|
-
const { error } = await initGooglePay({
|
|
34
|
-
testEnv: devMode,
|
|
35
|
-
merchantName: android_app_id,
|
|
36
|
-
countryCode: 'US',
|
|
37
|
-
billingAddressConfig: {
|
|
38
|
-
format: 'FULL',
|
|
39
|
-
isPhoneNumberRequired: true,
|
|
40
|
-
isRequired: false,
|
|
41
|
-
},
|
|
42
|
-
existingPaymentMethodRequired: false,
|
|
43
|
-
isEmailRequired: true,
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
if (error) {
|
|
47
|
-
setErrors(error.code + ' - ' + error.message);
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
setInitialized(true);
|
|
51
|
-
} catch (err: any) {
|
|
52
|
-
setErrors('Catch ' + err?.message)
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
initialize();
|
|
56
|
-
}, [initGooglePay]);
|
|
57
|
-
|
|
58
|
-
useEffect(() => {
|
|
59
|
-
if (paymethod !== 'apple_pay') return
|
|
60
|
-
if (Platform.OS === 'android') {
|
|
61
|
-
setErrors(t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported'))
|
|
62
|
-
return
|
|
63
|
-
}
|
|
64
|
-
}, [])
|
|
65
|
-
|
|
66
|
-
const createPaymentMethod = async () => {
|
|
67
|
-
setLoadingGooglePayment(true)
|
|
68
|
-
const { error, paymentMethod } = await createGooglePayPaymentMethod({
|
|
69
|
-
amount: cart?.balance ?? cart?.total,
|
|
70
|
-
currencyCode: configs?.stripe_currency?.value ?? 'USD',
|
|
71
|
-
});
|
|
72
|
-
if (error) {
|
|
73
|
-
setErrors(error.code + ' - ' + error.message);
|
|
74
|
-
setLoadingGooglePayment(false)
|
|
75
|
-
return;
|
|
76
|
-
} else if (paymentMethod) {
|
|
77
|
-
handleSource({
|
|
78
|
-
...paymentMethod?.Card,
|
|
79
|
-
id: paymentMethod.id,
|
|
80
|
-
type: paymentMethod.type,
|
|
81
|
-
source_id: paymentMethod?.id,
|
|
82
|
-
card: {
|
|
83
|
-
brand: paymentMethod.Card.brand,
|
|
84
|
-
last4: paymentMethod.Card.last4
|
|
85
|
-
}
|
|
86
|
-
})
|
|
87
|
-
onCancel()
|
|
88
|
-
setLoadingGooglePayment(false)
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
const pay = async () => {
|
|
93
|
-
if (!isApplePaySupported) {
|
|
94
|
-
setErrors(t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported'))
|
|
95
|
-
return
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const { error, paymentMethod } = await presentApplePay({
|
|
99
|
-
cartItems: cart?.products?.map((product: any) => ({ label: product?.name, amount: product?.price?.toString?.() })),
|
|
100
|
-
country: 'US',
|
|
101
|
-
currency: configs?.stripe_currency?.value ?? 'USD',
|
|
102
|
-
shippingMethods: [
|
|
103
|
-
{
|
|
104
|
-
amount: cart?.balance?.toString() ?? cart?.total?.toString?.(),
|
|
105
|
-
identifier: 'DPS',
|
|
106
|
-
label: 'Courier',
|
|
107
|
-
detail: 'Delivery',
|
|
108
|
-
type: 'final',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
|
|
112
|
-
requiredShippingAddressFields: ['emailAddress', 'phoneNumber'],
|
|
113
|
-
requiredBillingContactFields: ['phoneNumber', 'name'],
|
|
114
|
-
});
|
|
115
|
-
if (error) {
|
|
116
|
-
setErrors(error.code + ' - ' + error.message);
|
|
117
|
-
} else if (paymentMethod) {
|
|
118
|
-
handleSource({
|
|
119
|
-
...paymentMethod?.Card,
|
|
120
|
-
id: paymentMethod.id,
|
|
121
|
-
type: paymentMethod.type,
|
|
122
|
-
source_id: paymentMethod?.id,
|
|
123
|
-
card: {
|
|
124
|
-
brand: paymentMethod.Card.brand,
|
|
125
|
-
last4: paymentMethod.Card.last4
|
|
126
|
-
}
|
|
127
|
-
})
|
|
128
|
-
onCancel()
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return (
|
|
133
|
-
<>
|
|
134
|
-
{paymethod === 'google_pay' ? (
|
|
135
|
-
<View>
|
|
136
|
-
<OButton
|
|
137
|
-
textStyle={{
|
|
138
|
-
color: '#fff'
|
|
139
|
-
}}
|
|
140
|
-
imgRightSrc={null}
|
|
141
|
-
onClick={createPaymentMethod}
|
|
142
|
-
isDisabled={loading || !initialized}
|
|
143
|
-
text={t('PAY_WITH_GOOGLE_PAY', 'Pay with Google Pay')}
|
|
144
|
-
isLoading={loading || !initialized}
|
|
145
|
-
style={{ marginTop: 20 }}
|
|
146
|
-
/>
|
|
147
|
-
</View>
|
|
148
|
-
) : (
|
|
149
|
-
<View>
|
|
150
|
-
{isApplePaySupported ? (
|
|
151
|
-
<>
|
|
152
|
-
<OText>{t('APPLE_PAY_PAYMENT', 'Apple pay payment')}</OText>
|
|
153
|
-
<ApplePayButton
|
|
154
|
-
onPress={pay}
|
|
155
|
-
type="plain"
|
|
156
|
-
buttonStyle="black"
|
|
157
|
-
borderRadius={4}
|
|
158
|
-
style={{
|
|
159
|
-
width: '100%',
|
|
160
|
-
height: 50,
|
|
161
|
-
}}
|
|
162
|
-
/>
|
|
163
|
-
</>
|
|
164
|
-
) : (
|
|
165
|
-
<OText>{t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported')}</OText>
|
|
166
|
-
)}
|
|
167
|
-
</View>
|
|
168
|
-
)}
|
|
169
|
-
<Spinner
|
|
170
|
-
visible={loadingGooglePayment}
|
|
171
|
-
/>
|
|
172
|
-
</>
|
|
173
|
-
)
|
|
174
|
-
}
|