ordering-ui-react-native 0.15.31 → 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 +77 -29
- 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 +140 -37
- package/themes/original/src/components/BusinessProductsList/styles.tsx +29 -2
- package/themes/original/src/components/BusinessProductsListing/index.tsx +112 -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 +98 -72
- 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 +115 -90
- 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 +34 -25
- 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 +4 -4
- 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 +59 -58
- 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 +2 -2
- 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/ReviewOrder/index.tsx +10 -9
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
- 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 +66 -14
- 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 +115 -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;
|
|
@@ -166,7 +185,19 @@ export interface BusinessControllerParams {
|
|
|
166
185
|
businessWillCloseSoonMinutes?: number
|
|
167
186
|
isBusinessClose?: number,
|
|
168
187
|
navigation?: any,
|
|
169
|
-
style?: ViewStyle
|
|
188
|
+
style?: ViewStyle,
|
|
189
|
+
businessHeader?: string,
|
|
190
|
+
businessFeatured?: boolean,
|
|
191
|
+
businessLogo?: string,
|
|
192
|
+
businessReviews?: any,
|
|
193
|
+
businessDeliveryPrice?: number,
|
|
194
|
+
businessDeliveryTime?: string,
|
|
195
|
+
businessPickupTime?: string,
|
|
196
|
+
businessDistance?: number,
|
|
197
|
+
favoriteIds?: number[],
|
|
198
|
+
handleFavoriteBusiness?: any,
|
|
199
|
+
setFavoriteIds?: any;
|
|
200
|
+
handleUpdateBusinessList?: any;
|
|
170
201
|
}
|
|
171
202
|
export interface BusinessProductsListingParams {
|
|
172
203
|
navigation?: any;
|
|
@@ -182,10 +213,14 @@ export interface BusinessProductsListingParams {
|
|
|
182
213
|
header?: any;
|
|
183
214
|
logo?: any;
|
|
184
215
|
productModal?: any;
|
|
216
|
+
alertState?: { open: boolean, content: any[] };
|
|
217
|
+
setAlertState?: any;
|
|
218
|
+
multiRemoveProducts?: (in1: any, in2: any) => {};
|
|
185
219
|
getNextProducts?: () => {};
|
|
186
220
|
handleChangeCategory: (value: any) => {};
|
|
187
221
|
setProductLogin?: () => {};
|
|
188
222
|
updateProductModal?: (value: any) => {};
|
|
223
|
+
handleUpdateProducts?: any;
|
|
189
224
|
}
|
|
190
225
|
export interface BusinessBasicInformationParams {
|
|
191
226
|
navigation?: any;
|
|
@@ -214,6 +249,7 @@ export interface BusinessProductsCategoriesParams {
|
|
|
214
249
|
}
|
|
215
250
|
export interface BusinessProductsListParams {
|
|
216
251
|
errors?: any;
|
|
252
|
+
isFiltMode?: any;
|
|
217
253
|
businessId?: number;
|
|
218
254
|
category?: any;
|
|
219
255
|
categories: Array<any>;
|
|
@@ -228,7 +264,12 @@ export interface BusinessProductsListParams {
|
|
|
228
264
|
handleCancelSearch?: () => void,
|
|
229
265
|
categoriesLayout?: any,
|
|
230
266
|
setCategoriesLayout?: any,
|
|
231
|
-
currentCart?: any
|
|
267
|
+
currentCart?: any,
|
|
268
|
+
setSubcategoriesSelected?: any,
|
|
269
|
+
subcategoriesSelected?: any,
|
|
270
|
+
onClickCategory?: any,
|
|
271
|
+
lazyLoadProductsRecommended?: boolean,
|
|
272
|
+
handleUpdateProducts?: any
|
|
232
273
|
}
|
|
233
274
|
export interface SingleProductCardParams {
|
|
234
275
|
businessId: any,
|
|
@@ -236,7 +277,10 @@ export interface SingleProductCardParams {
|
|
|
236
277
|
isSoldOut: boolean;
|
|
237
278
|
onProductClick: any;
|
|
238
279
|
productAddedToCartLength: number;
|
|
239
|
-
style?: ViewStyle
|
|
280
|
+
style?: ViewStyle,
|
|
281
|
+
categoryState?: any,
|
|
282
|
+
handleFavoriteProduct?: any,
|
|
283
|
+
handleUpdateProducts?: any
|
|
240
284
|
}
|
|
241
285
|
export interface BusinessInformationParams {
|
|
242
286
|
navigation?: any,
|
|
@@ -280,11 +324,16 @@ export interface OrdersOptionParams {
|
|
|
280
324
|
loadOrders?: any,
|
|
281
325
|
setOrderList?: any,
|
|
282
326
|
preOrders?: boolean,
|
|
327
|
+
reorderState?: any,
|
|
328
|
+
handleReorder?: (orderId: number) => {},
|
|
283
329
|
setOrdersLength?: ({ activeOrdersLength, previousOrdersLength }: { activeOrdersLength: number, previousOrdersLength: number }) => void,
|
|
284
330
|
ordersLength: { activeOrdersLength: number, previousOrdersLength: number },
|
|
285
331
|
setSelectedOrderId?: any,
|
|
286
332
|
setOpenMessges?: any,
|
|
287
|
-
loadMoreStatus?: boolean
|
|
333
|
+
loadMoreStatus?: boolean,
|
|
334
|
+
refreshOrders?: boolean,
|
|
335
|
+
setRefreshOrders?: (value : boolean) => void,
|
|
336
|
+
handleUpdateOrderList?: (orderId: number, changes: any) => {}
|
|
288
337
|
}
|
|
289
338
|
export interface ActiveOrdersParams {
|
|
290
339
|
orders?: any,
|
|
@@ -297,7 +346,8 @@ export interface ActiveOrdersParams {
|
|
|
297
346
|
loadMoreOrders?: () => {},
|
|
298
347
|
onNavigationRedirect?: (route: string, params?: any) => {},
|
|
299
348
|
isMessageView?: boolean,
|
|
300
|
-
handleClickOrder?: any
|
|
349
|
+
handleClickOrder?: any,
|
|
350
|
+
handleUpdateOrderList?: (orderId: number, changes: any) => {}
|
|
301
351
|
}
|
|
302
352
|
export interface PreviousOrdersParams {
|
|
303
353
|
orders?: any,
|
|
@@ -306,8 +356,9 @@ export interface PreviousOrdersParams {
|
|
|
306
356
|
orderID?: number
|
|
307
357
|
reorderLoading?: boolean,
|
|
308
358
|
loadMoreOrders?: () => {},
|
|
309
|
-
handleReorder
|
|
359
|
+
handleReorder?: (orderId: number) => {},
|
|
310
360
|
onNavigationRedirect?: (route: string, params?: any) => {}
|
|
361
|
+
handleUpdateOrderList?: (orderId: number, changes: any) => {}
|
|
311
362
|
}
|
|
312
363
|
export interface OrderDetailsParams {
|
|
313
364
|
navigation?: any,
|
|
@@ -470,6 +521,7 @@ export interface OrderTypeSelectParams {
|
|
|
470
521
|
defaultValue?: number;
|
|
471
522
|
configTypes?: Array<any>;
|
|
472
523
|
orderTypes: Array<any>;
|
|
524
|
+
setOrderTypeValue?: (value : number) => any
|
|
473
525
|
}
|
|
474
526
|
export interface UpsellingProductsParams {
|
|
475
527
|
isCustomMode?: boolean;
|
|
@@ -543,7 +595,10 @@ export interface BusinessSearchParams {
|
|
|
543
595
|
filters: any,
|
|
544
596
|
businessTypes: Array<number>,
|
|
545
597
|
setFilters: (filters: any) => void,
|
|
546
|
-
lazySearch?: boolean
|
|
598
|
+
lazySearch?: boolean,
|
|
599
|
+
brandList?: any;
|
|
600
|
+
handleUpdateProducts: any,
|
|
601
|
+
handleUpdateBusinessList?: any;
|
|
547
602
|
}
|
|
548
603
|
|
|
549
604
|
export interface NoNetworkParams {
|
|
@@ -558,3 +613,54 @@ export interface PlaceSpotParams {
|
|
|
558
613
|
getPlacesList?: any,
|
|
559
614
|
setOpenPlaceModal?: any
|
|
560
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
|
-
}
|