ordering-ui-react-native 0.22.49 → 0.22.50-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 +6 -8
- package/src/DeliveryApp.tsx +1 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +40 -39
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/context/OfflineActions/index.tsx +236 -0
- package/src/providers/AlertProvider.tsx +3 -1
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -6
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
- package/themes/business/src/components/BusinessController/index.tsx +8 -3
- package/themes/business/src/components/BusinessProductList/index.tsx +3 -2
- package/themes/business/src/components/Chat/index.tsx +15 -3
- package/themes/business/src/components/DriverMap/index.tsx +44 -33
- package/themes/business/src/components/FloatingButton/index.tsx +3 -2
- package/themes/business/src/components/LanguageSelector/index.tsx +1 -1
- package/themes/business/src/components/LoginForm/index.tsx +123 -98
- package/themes/business/src/components/LogoutButton/index.tsx +13 -4
- package/themes/business/src/components/MapView/index.tsx +42 -25
- package/themes/business/src/components/NewOrderNotification/index.tsx +37 -18
- package/themes/business/src/components/OrderDetails/Business.tsx +88 -20
- package/themes/business/src/components/OrderDetails/Delivery.tsx +134 -53
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +155 -45
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +51 -28
- package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
- package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +17 -16
- package/themes/business/src/components/OrderDetailsLogistic/index.tsx +3 -2
- package/themes/business/src/components/OrderSummary/index.tsx +271 -176
- package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
- package/themes/business/src/components/OrdersOption/index.tsx +332 -231
- package/themes/business/src/components/OrdersOption/styles.tsx +14 -0
- package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +30 -18
- package/themes/business/src/components/PreviousOrders/index.tsx +74 -66
- package/themes/business/src/components/PreviousOrders/styles.tsx +2 -1
- package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
- package/themes/business/src/components/PrinterEdition/index.tsx +143 -75
- package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
- package/themes/business/src/components/PrinterSettings/index.tsx +1 -1
- package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
- package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
- package/themes/business/src/components/StoresList/index.tsx +2 -2
- package/themes/business/src/components/UserProfileForm/index.tsx +48 -10
- package/themes/business/src/components/UserProfileForm/styles.tsx +7 -0
- package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
- package/themes/business/src/components/shared/OTextarea.tsx +8 -9
- package/themes/business/src/config/currency.tsx +1010 -0
- package/themes/business/src/hooks/useLocation.tsx +16 -12
- package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
- package/themes/business/src/types/index.tsx +22 -7
- package/themes/business/src/utils/index.tsx +28 -3
- 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/Checkout/index.tsx +9 -5
- package/themes/kiosk/src/components/CustomerName/index.tsx +1 -1
- 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/OrderTypeCardSelector/index.tsx +8 -10
- package/themes/kiosk/src/components/PaymentOptions/index.tsx +121 -57
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +9 -1
- package/themes/original/src/components/AddressForm/index.tsx +19 -19
- package/themes/original/src/components/AddressList/index.tsx +0 -13
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +1 -1
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +14 -6
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +103 -92
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +8 -6
- package/themes/original/src/components/BusinessListingSearch/index.tsx +1 -2
- package/themes/original/src/components/BusinessPreorder/index.tsx +46 -28
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +73 -70
- package/themes/original/src/components/BusinessProductsList/index.tsx +6 -7
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +10 -6
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
- package/themes/original/src/components/Cart/index.tsx +49 -15
- package/themes/original/src/components/CartContent/index.tsx +2 -4
- package/themes/original/src/components/Checkout/index.tsx +109 -88
- package/themes/original/src/components/CitiesControl/index.tsx +0 -3
- package/themes/original/src/components/CouponControl/index.tsx +1 -3
- package/themes/original/src/components/DriverTips/index.tsx +1 -3
- package/themes/original/src/components/Favorite/index.tsx +1 -10
- package/themes/original/src/components/FavoriteList/index.tsx +0 -1
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -12
- package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
- package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
- package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +7 -9
- package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +11 -12
- package/themes/original/src/components/GoogleMap/index.tsx +39 -18
- package/themes/original/src/components/Help/index.tsx +0 -5
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +0 -5
- package/themes/original/src/components/HelpGuide/index.tsx +0 -5
- package/themes/original/src/components/HelpOrder/index.tsx +0 -5
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
- package/themes/original/src/components/Home/index.tsx +35 -19
- package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
- package/themes/original/src/components/LoginForm/index.tsx +12 -14
- package/themes/original/src/components/MessageListing/index.tsx +1 -6
- package/themes/original/src/components/Messages/index.tsx +20 -13
- package/themes/original/src/components/MomentOption/TimeListItem.tsx +56 -0
- package/themes/original/src/components/MomentOption/index.tsx +73 -59
- package/themes/original/src/components/MomentSelector/index.tsx +5 -2
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -4
- package/themes/original/src/components/MultiCheckout/index.tsx +55 -27
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +1 -0
- package/themes/original/src/components/MyOrders/index.tsx +2 -7
- package/themes/original/src/components/NavBar/index.tsx +7 -6
- package/themes/original/src/components/NetworkError/index.tsx +0 -5
- package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
- package/themes/original/src/components/Notifications/index.tsx +0 -5
- package/themes/original/src/components/OrderDetails/OrderEta.tsx +4 -3
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +16 -11
- package/themes/original/src/components/OrderDetails/index.tsx +44 -21
- package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
- package/themes/original/src/components/OrderProgress/index.tsx +4 -3
- package/themes/original/src/components/OrderSummary/index.tsx +32 -11
- package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -11
- package/themes/original/src/components/OrdersOption/index.tsx +3 -6
- package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +462 -461
- package/themes/original/src/components/PhoneInputNumber/index.tsx +92 -7
- package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
- package/themes/original/src/components/PreviousOrders/index.tsx +1 -4
- package/themes/original/src/components/ProductForm/ActionButton.tsx +7 -12
- package/themes/original/src/components/ProductItemAccordion/index.tsx +28 -37
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
- package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
- package/themes/original/src/components/Promotions/index.tsx +2 -7
- package/themes/original/src/components/ReviewDriver/index.tsx +1 -6
- package/themes/original/src/components/ReviewOrder/index.tsx +2 -7
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -6
- package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
- package/themes/original/src/components/ServiceForm/index.tsx +53 -55
- package/themes/original/src/components/Sessions/index.tsx +3 -8
- package/themes/original/src/components/SignupForm/index.tsx +44 -37
- package/themes/original/src/components/SingleOrderCard/index.tsx +7 -5
- package/themes/original/src/components/SingleProductCard/index.tsx +3 -4
- package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
- package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
- package/themes/original/src/components/StripeCardsList/index.tsx +16 -3
- package/themes/original/src/components/StripeElementsForm/index.tsx +8 -4
- package/themes/original/src/components/StripeElementsForm/naked.tsx +1 -1
- package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
- package/themes/original/src/components/TaxInformation/index.tsx +3 -2
- package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +8 -5
- package/themes/original/src/components/UserDetails/index.tsx +17 -16
- package/themes/original/src/components/UserFormDetails/index.tsx +113 -73
- package/themes/original/src/components/UserProfile/index.tsx +9 -1
- package/themes/original/src/components/UserProfileForm/index.tsx +0 -5
- package/themes/original/src/components/UserVerification/index.tsx +18 -5
- package/themes/original/src/components/Wallets/index.tsx +1 -3
- package/themes/original/src/components/WebsocketStatus/index.tsx +1 -4
- package/themes/original/src/components/shared/OAlert.tsx +2 -1
- package/themes/original/src/components/shared/OButton.tsx +5 -4
- package/themes/original/src/components/shared/OInput.tsx +4 -8
- package/themes/original/src/components/shared/OModal.tsx +7 -2
- package/themes/original/src/types/index.tsx +12 -4
- package/themes/original/src/utils/index.tsx +29 -0
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -24,6 +24,11 @@ import MaterialIcon from 'react-native-vector-icons/MaterialCommunityIcons'
|
|
|
24
24
|
|
|
25
25
|
const PaymentOptionsUI = (props: any) => {
|
|
26
26
|
const {
|
|
27
|
+
cart,
|
|
28
|
+
onNavigationRedirect,
|
|
29
|
+
isDisabled,
|
|
30
|
+
paymethodData,
|
|
31
|
+
handlePaymethodDataChange,
|
|
27
32
|
errorCash,
|
|
28
33
|
isLoading,
|
|
29
34
|
paymethodsList,
|
|
@@ -43,11 +48,11 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
43
48
|
const [orientationState] = useDeviceOrientation();
|
|
44
49
|
const [userErrors, setUserErrors] = useState<any>([]);
|
|
45
50
|
const [isOpenModal, setIsOpenModal] = useState(false)
|
|
46
|
-
const paymethodSelected =
|
|
47
|
-
|
|
51
|
+
const paymethodSelected =
|
|
52
|
+
paySelected || props.paymethodSelected || isOpenMethod.paymethod;
|
|
48
53
|
|
|
49
54
|
useEffect(() => {
|
|
50
|
-
if (paymethodsList
|
|
55
|
+
if (paymethodsList.paymethods.length === 1) {
|
|
51
56
|
handlePaymethodClick &&
|
|
52
57
|
handlePaymethodClick(paymethodsList.paymethods[0]);
|
|
53
58
|
}
|
|
@@ -80,11 +85,23 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
80
85
|
}
|
|
81
86
|
}, [isOpenMethod.paymethod, placing, isLoading, paySelected]);
|
|
82
87
|
|
|
83
|
-
const
|
|
88
|
+
// const includePaymethods = ['cash', 'card_delivery', 'stripe'];
|
|
89
|
+
const includePaymethods = ['cash', 'card_delivery'];
|
|
90
|
+
|
|
91
|
+
const supportedMethods = paymethodsList.paymethods.filter((p: any) =>
|
|
84
92
|
includePaymethods.includes(p.gateway),
|
|
85
93
|
);
|
|
86
94
|
|
|
87
|
-
const
|
|
95
|
+
const cashIndex: number = supportedMethods?.findIndex(
|
|
96
|
+
(item: any) => item?.gateway === 'cash',
|
|
97
|
+
);
|
|
98
|
+
const cardOnDeliveryIndex = supportedMethods?.findIndex(
|
|
99
|
+
(item: any) => item?.gateway === 'card_delivery',
|
|
100
|
+
);
|
|
101
|
+
const stripeIndex = supportedMethods?.findIndex(
|
|
102
|
+
(item: any) => item?.gateway === 'stripe',
|
|
103
|
+
);
|
|
104
|
+
const onSelectPaymethod = (paymethod: any, isPopupMethod: boolean) => {
|
|
88
105
|
handlePaymethodClick(paymethod);
|
|
89
106
|
};
|
|
90
107
|
|
|
@@ -115,15 +132,57 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
115
132
|
: orientationState?.dimensions?.height * 0.55,
|
|
116
133
|
};
|
|
117
134
|
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
135
|
+
const propsOfItems = {
|
|
136
|
+
CASH_ID:
|
|
137
|
+
cashIndex !== -1
|
|
138
|
+
? {
|
|
139
|
+
style: cardStyle,
|
|
140
|
+
title: t('CASH', 'Cash'),
|
|
141
|
+
description: t(
|
|
142
|
+
'GO_FOR_YOR_RECEIPT_AND_GO_TO_THE_FRONT_COUNTER',
|
|
143
|
+
'Pay with cash in the front counter',
|
|
144
|
+
),
|
|
145
|
+
bgImage: theme.images.general.cash,
|
|
146
|
+
callToActionText: t('LETS_GO', 'LETS_GO'),
|
|
147
|
+
VectorIcon: () => <AntIconDesign name='shoppingcart' size={28} color='white' style={{ marginBottom: 10 }} />,
|
|
148
|
+
onClick: () =>
|
|
149
|
+
onSelectPaymethod(supportedMethods[cashIndex], false),
|
|
150
|
+
...supportedMethods[cashIndex],
|
|
151
|
+
}
|
|
152
|
+
: null,
|
|
153
|
+
|
|
154
|
+
CARD_ON_DELIVERY_ID:
|
|
155
|
+
cardOnDeliveryIndex !== -1
|
|
156
|
+
? {
|
|
157
|
+
style: cardStyle,
|
|
158
|
+
title: t('CARD', supportedMethods[cardOnDeliveryIndex]?.name),
|
|
159
|
+
description: t(
|
|
160
|
+
'WE_ACCEPT_EVERY_DEBIT_OR_CREDIT_CARD',
|
|
161
|
+
'We accept every debit or credit card',
|
|
162
|
+
),
|
|
163
|
+
bgImage: theme.images.general.carddelivery,
|
|
164
|
+
callToActionText: t("LETS_GO", "Let's go"),
|
|
165
|
+
VectorIcon: () => <MaterialIcon name='pin-outline' size={28} color='white' style={{ marginBottom: 10 }} />,
|
|
166
|
+
onClick: () => onSelectPaymethod(supportedMethods[cardOnDeliveryIndex], false),
|
|
167
|
+
...supportedMethods[cardOnDeliveryIndex],
|
|
168
|
+
}
|
|
169
|
+
: null,
|
|
170
|
+
STRIPE:
|
|
171
|
+
stripeIndex !== -1
|
|
172
|
+
? {
|
|
173
|
+
style: cardStyle,
|
|
174
|
+
title: t('STRIPE', supportedMethods[stripeIndex]?.name),
|
|
175
|
+
description: t('STRIPE', 'Stripe'),
|
|
176
|
+
bgImage: theme.images.general.carddelivery,
|
|
177
|
+
callToActionText: t('INSERT_INFO', 'Test info'),
|
|
178
|
+
VectorIcon: () => <MaterialIcon name='pin-outline' size={28} color='white' style={{ marginBottom: 10 }} />,
|
|
179
|
+
onClick: () => {
|
|
180
|
+
onSelectPaymethod(supportedMethods[stripeIndex], false);
|
|
181
|
+
setIsOpenModal(true)
|
|
182
|
+
},
|
|
183
|
+
...supportedMethods[stripeIndex],
|
|
184
|
+
}
|
|
185
|
+
: null,
|
|
127
186
|
};
|
|
128
187
|
|
|
129
188
|
const goToBack = () => navigation?.goBack();
|
|
@@ -133,40 +192,47 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
133
192
|
<Spinner visible={isLoading || placing || paymethodsList?.loading} />
|
|
134
193
|
|
|
135
194
|
<Container nestedScrollEnabled>
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
<
|
|
159
|
-
{...
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
195
|
+
{supportedMethods?.length > 0 && (
|
|
196
|
+
<>
|
|
197
|
+
<NavBar
|
|
198
|
+
title={t('PAYMENT_METHODS', 'Payment methods')}
|
|
199
|
+
onActionLeft={goToBack}
|
|
200
|
+
btnStyle={{ paddingLeft: 0 }}
|
|
201
|
+
/>
|
|
202
|
+
|
|
203
|
+
<View
|
|
204
|
+
style={{ marginVertical: orientationState?.dimensions?.height * 0.03 }}>
|
|
205
|
+
<OText size={orientationState?.dimensions?.width * 0.048}>
|
|
206
|
+
{t('HOW_WOULD_YOU', 'How would you')} {'\n'}
|
|
207
|
+
<OText
|
|
208
|
+
size={orientationState?.dimensions?.width * 0.048}
|
|
209
|
+
weight={'700'}>
|
|
210
|
+
{`${t('LIKE_TO_PAY', 'like to pay')}?`}
|
|
211
|
+
</OText>
|
|
212
|
+
</OText>
|
|
213
|
+
</View>
|
|
214
|
+
|
|
215
|
+
<GridContainer style={{ justifyContent: 'space-between' }}>
|
|
216
|
+
{propsOfItems.CARD_ON_DELIVERY_ID && (
|
|
217
|
+
<View style={{ marginBottom: orientationState?.orientation === LANDSCAPE ? 20 : 0 }}>
|
|
218
|
+
<OptionCard {...propsOfItems?.CARD_ON_DELIVERY_ID} styke />
|
|
219
|
+
</View>
|
|
220
|
+
)}
|
|
221
|
+
|
|
222
|
+
<View
|
|
223
|
+
style={{
|
|
224
|
+
width:
|
|
225
|
+
orientationState?.orientation === LANDSCAPE
|
|
226
|
+
? orientationState?.dimensions?.width * 0.0016
|
|
227
|
+
: 1,
|
|
228
|
+
height:
|
|
229
|
+
orientationState?.orientation === PORTRAIT
|
|
230
|
+
? orientationState?.dimensions?.height * 0.018
|
|
231
|
+
: 1,
|
|
232
|
+
}}
|
|
233
|
+
/>
|
|
234
|
+
|
|
235
|
+
{propsOfItems?.CASH_ID && <OptionCard {...propsOfItems?.CASH_ID} />}
|
|
170
236
|
|
|
171
237
|
<View
|
|
172
238
|
style={{
|
|
@@ -180,15 +246,13 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
180
246
|
: 1,
|
|
181
247
|
}}
|
|
182
248
|
/>
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
)}
|
|
191
|
-
</GridContainer>
|
|
249
|
+
|
|
250
|
+
{propsOfItems.STRIPE && (
|
|
251
|
+
<OptionCard {...propsOfItems?.STRIPE} />
|
|
252
|
+
)}
|
|
253
|
+
</GridContainer>
|
|
254
|
+
</>
|
|
255
|
+
)}
|
|
192
256
|
<View style={{ height: orientationState?.dimensions?.height * 0.05 }} />
|
|
193
257
|
<OModal
|
|
194
258
|
open={isOpenModal}
|
|
@@ -10,8 +10,6 @@ import {
|
|
|
10
10
|
|
|
11
11
|
import * as React from 'react';
|
|
12
12
|
import styled from 'styled-components/native';
|
|
13
|
-
import AntDesignIcon from 'react-native-vector-icons/AntDesign'
|
|
14
|
-
import { Icon, IconProps } from 'react-native-vector-icons/Icon';
|
|
15
13
|
|
|
16
14
|
const StyledButton = styled.View<Props>`
|
|
17
15
|
background-color: ${(props: any) => props.theme.colors.primary};
|
|
@@ -79,19 +77,17 @@ interface Props {
|
|
|
79
77
|
isCircle?: boolean;
|
|
80
78
|
bgColor?: string;
|
|
81
79
|
borderColor?: string;
|
|
82
|
-
iconProps?: IconProps;
|
|
83
|
-
IconCustom?: React.FunctionComponent
|
|
84
80
|
}
|
|
85
81
|
|
|
86
82
|
const OButton = (props: Props): React.ReactElement => {
|
|
87
83
|
if (props.isDisabled) {
|
|
88
84
|
return (
|
|
89
85
|
<View style={props.parentStyle}>
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
86
|
+
<StyledButtonDisabled style={props.style}>
|
|
87
|
+
<StyledTextDisabled style={props.disabledTextStyle ? props.disabledTextStyle : props.textStyle}>
|
|
88
|
+
{props.text}
|
|
89
|
+
</StyledTextDisabled>
|
|
90
|
+
</StyledButtonDisabled>
|
|
95
91
|
</View>
|
|
96
92
|
);
|
|
97
93
|
}
|
|
@@ -115,15 +111,6 @@ const OButton = (props: Props): React.ReactElement => {
|
|
|
115
111
|
{props.imgLeftSrc ? (
|
|
116
112
|
<StyledImage style={props.imgLeftStyle} source={props.imgLeftSrc} />
|
|
117
113
|
) : null}
|
|
118
|
-
{props.iconProps ? (
|
|
119
|
-
<>
|
|
120
|
-
{props?.IconCustom ? (
|
|
121
|
-
<props.IconCustom {...props.iconProps} />
|
|
122
|
-
) : (
|
|
123
|
-
<AntDesignIcon {...props.iconProps} />
|
|
124
|
-
)}
|
|
125
|
-
</>
|
|
126
|
-
) : null}
|
|
127
114
|
{props.text ? (
|
|
128
115
|
<StyledText style={props.textStyle}>{props.text}</StyledText>
|
|
129
116
|
) : null}
|
|
@@ -19,6 +19,7 @@ import { Favorite } from './src/components/Favorite';
|
|
|
19
19
|
import { FavoriteList } from './src/components/FavoriteList';
|
|
20
20
|
import { FloatingButton } from './src/components/FloatingButton';
|
|
21
21
|
import { ForgotPasswordForm } from './src/components/ForgotPasswordForm';
|
|
22
|
+
import { GPSButton } from './src/components/GPSButton';
|
|
22
23
|
import { MomentOption } from './src/components/MomentOption';
|
|
23
24
|
import { OrdersOption } from './src/components/OrdersOption';
|
|
24
25
|
import { OrderDetails } from './src/components/OrderDetails';
|
|
@@ -85,6 +86,7 @@ import { VerifyPhone } from './src/components/VerifyPhone';
|
|
|
85
86
|
import { GoogleLogin } from './src/components/GoogleLogin';
|
|
86
87
|
import { PreviousOrders } from './src/components/PreviousOrders';
|
|
87
88
|
import { PaymentOptionCash } from './src/components/PaymentOptionCash';
|
|
89
|
+
import { SendGiftCard } from './src/components/GiftCard/SendGiftCard';
|
|
88
90
|
import { StripeElementsForm } from './src/components/StripeElementsForm';
|
|
89
91
|
import { StripeCardsList } from './src/components/StripeCardsList';
|
|
90
92
|
import { ProductIngredient } from './src/components/ProductIngredient';
|
|
@@ -106,7 +108,7 @@ import { OSBill, OSTable, OSCoupon, OSTotal, OSRow } from './src/components/Orde
|
|
|
106
108
|
import { FormInput, FormSide, ButtonsWrapper, LoginWith, OTab, OTabs } from './src/components/LoginForm/styles';
|
|
107
109
|
import { OSItem, OSItemContent, OSItemActions } from './src/components/PaymentOptionStripe/styles';
|
|
108
110
|
|
|
109
|
-
import { orderTypeList } from './src/utils'
|
|
111
|
+
import { orderTypeList, getTraduction, verifyDecimals, getOrderStatus, getOrderStatuPickUp } from './src/utils'
|
|
110
112
|
|
|
111
113
|
import Alert from './src/providers/AlertProvider'
|
|
112
114
|
|
|
@@ -184,6 +186,7 @@ export {
|
|
|
184
186
|
Checkout,
|
|
185
187
|
Favorite,
|
|
186
188
|
FavoriteList,
|
|
189
|
+
GPSButton,
|
|
187
190
|
ForgotPasswordForm,
|
|
188
191
|
MomentOption,
|
|
189
192
|
OrdersOption,
|
|
@@ -258,6 +261,7 @@ export {
|
|
|
258
261
|
ProductIngredient,
|
|
259
262
|
ProductOption,
|
|
260
263
|
ProductOptionSubOption,
|
|
264
|
+
SendGiftCard,
|
|
261
265
|
Sessions,
|
|
262
266
|
SingleProductReview,
|
|
263
267
|
LogoutButton,
|
|
@@ -346,6 +350,10 @@ export {
|
|
|
346
350
|
_removeStoreData,
|
|
347
351
|
_clearStoreData,
|
|
348
352
|
orderTypeList,
|
|
353
|
+
getTraduction,
|
|
354
|
+
verifyDecimals,
|
|
355
|
+
getOrderStatus,
|
|
356
|
+
getOrderStatuPickUp,
|
|
349
357
|
|
|
350
358
|
// Date Picker
|
|
351
359
|
DatePickerUI
|
|
@@ -67,7 +67,8 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
67
67
|
hasAddressDefault,
|
|
68
68
|
afterSignup,
|
|
69
69
|
businessSlug,
|
|
70
|
-
isFromCheckout
|
|
70
|
+
isFromCheckout,
|
|
71
|
+
onNavigationRedirect
|
|
71
72
|
} = props;
|
|
72
73
|
|
|
73
74
|
const theme = useTheme();
|
|
@@ -133,6 +134,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
133
134
|
const [configState] = useConfig();
|
|
134
135
|
const [orderState] = useOrder();
|
|
135
136
|
const { handleSubmit, errors, control, setValue } = useForm();
|
|
137
|
+
const [autoCompleteAddress, setAutoCompleteAddress] = useState(false)
|
|
136
138
|
|
|
137
139
|
const [toggleMap, setToggleMap] = useState(false);
|
|
138
140
|
const [alertState, setAlertState] = useState<{
|
|
@@ -173,6 +175,8 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
173
175
|
const isHideMap = theme?.address?.components?.map?.hidden
|
|
174
176
|
const isHideIcons = theme?.address?.components?.icons?.hidden
|
|
175
177
|
const continueAsGuest = () => navigation.navigate(!!businessSlug ? 'Business' : 'BusinessList', { isGuestUser: true });
|
|
178
|
+
const unaddressedTypes = configState?.configs?.unaddressed_order_types_allowed?.value.split('|').map((value: any) => Number(value)) || []
|
|
179
|
+
const isAllowUnaddressOrderType = unaddressedTypes.includes(orderState?.options?.type)
|
|
176
180
|
const goToBack = () => navigation?.canGoBack() && navigation.goBack();
|
|
177
181
|
|
|
178
182
|
const getAddressFormatted = (address: any) => {
|
|
@@ -352,9 +356,6 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
352
356
|
map_data: { library: 'google', place_id: data.place_id },
|
|
353
357
|
zip_code: data?.zip_code || null,
|
|
354
358
|
};
|
|
355
|
-
if (googleInput?.current) {
|
|
356
|
-
googleInput?.current?.setAddressText(addressSelected.address);
|
|
357
|
-
}
|
|
358
359
|
updateChanges(addressSelected);
|
|
359
360
|
};
|
|
360
361
|
|
|
@@ -527,6 +528,12 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
527
528
|
setIsSignUpEffect(true);
|
|
528
529
|
}, [orderState.loading]);
|
|
529
530
|
|
|
531
|
+
useEffect(() => {
|
|
532
|
+
if (isAllowUnaddressOrderType) {
|
|
533
|
+
onNavigationRedirect && onNavigationRedirect(!!businessSlug ? 'Business' : 'BusinessList')
|
|
534
|
+
}
|
|
535
|
+
}, [isAllowUnaddressOrderType])
|
|
536
|
+
|
|
530
537
|
return (
|
|
531
538
|
<ScrollView
|
|
532
539
|
keyboardShouldPersistTaps='always'
|
|
@@ -542,11 +549,6 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
542
549
|
style={{ marginTop: Platform.OS === 'ios' ? 0 : 10 }}
|
|
543
550
|
titleWrapStyle={{ paddingHorizontal: 0, width: '100%' }}
|
|
544
551
|
titleStyle={{ marginRight: 0, marginLeft: 0, paddingRight: 5 }}
|
|
545
|
-
buttonProps={{
|
|
546
|
-
bgColor: theme.colors.white,
|
|
547
|
-
borderColor: theme.colors.white,
|
|
548
|
-
textStyle: { color: theme.colors.btnFont }
|
|
549
|
-
}}
|
|
550
552
|
/>
|
|
551
553
|
</View>
|
|
552
554
|
<TouchableWithoutFeedback onPress={Keyboard.dismiss}>
|
|
@@ -577,6 +579,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
577
579
|
placeholder={t('ADD_ADDRESS', 'Add a address')}
|
|
578
580
|
onPress={(data, details: any) => {
|
|
579
581
|
handleChangeAddress(data, details);
|
|
582
|
+
setAutoCompleteAddress(true);
|
|
580
583
|
}}
|
|
581
584
|
query={{
|
|
582
585
|
key: googleMapsApiKey,
|
|
@@ -591,6 +594,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
591
594
|
target: { name: 'address', value: text },
|
|
592
595
|
});
|
|
593
596
|
setValue('address', text);
|
|
597
|
+
setAutoCompleteAddress(true)
|
|
594
598
|
}
|
|
595
599
|
setIsFirstTime(false);
|
|
596
600
|
setAddressEditing(text.length == 0);
|
|
@@ -678,13 +682,15 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
678
682
|
setSaveLocation={setSaveMapLocation}
|
|
679
683
|
handleToggleMap={handleToggleMap}
|
|
680
684
|
isIntGeoCoder
|
|
685
|
+
setAutoCompleteAddress={setAutoCompleteAddress}
|
|
686
|
+
autoCompleteAddress={autoCompleteAddress}
|
|
681
687
|
/>
|
|
682
688
|
</GoogleMapContainer>
|
|
683
689
|
</View>
|
|
684
690
|
)}
|
|
685
691
|
|
|
686
692
|
<View style={{ flexDirection: 'row', flexBasis: '50%' }}>
|
|
687
|
-
{((isRequiredField && isRequiredField('internal_number')) || showFieldWithTheme('internal_number')) && (
|
|
693
|
+
{showField?.('internal_number') && ((isRequiredField && isRequiredField('internal_number')) || showFieldWithTheme('internal_number')) && (
|
|
688
694
|
<Controller
|
|
689
695
|
control={control}
|
|
690
696
|
name="internal_number"
|
|
@@ -731,7 +737,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
731
737
|
/>
|
|
732
738
|
)}
|
|
733
739
|
|
|
734
|
-
{((isRequiredField && isRequiredField('zipcode')) || showFieldWithTheme('zipcode')) && (
|
|
740
|
+
{showField?.('zipcode') && ((isRequiredField && isRequiredField('zipcode')) || showFieldWithTheme('zipcode')) && (
|
|
735
741
|
<Controller
|
|
736
742
|
control={control}
|
|
737
743
|
name="zipcode"
|
|
@@ -776,7 +782,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
776
782
|
)}
|
|
777
783
|
</View>
|
|
778
784
|
|
|
779
|
-
{((isRequiredField && isRequiredField('address_notes')) || showFieldWithTheme('address_notes')) && (
|
|
785
|
+
{showField?.('address_notes') && ((isRequiredField && isRequiredField('address_notes')) || showFieldWithTheme('address_notes')) && (
|
|
780
786
|
<Controller
|
|
781
787
|
control={control}
|
|
782
788
|
name="address_notes"
|
|
@@ -857,9 +863,6 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
857
863
|
: t('LOADING', 'Loading')
|
|
858
864
|
}
|
|
859
865
|
onClick={handleSubmit(onSubmit)}
|
|
860
|
-
bgColor={theme.colors.primary}
|
|
861
|
-
borderColor={theme.colors.primary}
|
|
862
|
-
textStyle={{ color: theme.colors.white }}
|
|
863
866
|
isDisabled={formState.loading}
|
|
864
867
|
style={{ borderRadius: 7.6, shadowOpacity: 0 }}
|
|
865
868
|
showNextIcon
|
|
@@ -869,7 +872,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
869
872
|
text={t('CANCEL', 'Cancel')}
|
|
870
873
|
bgColor={theme.colors.secundary}
|
|
871
874
|
borderColor={theme.colors.secundary}
|
|
872
|
-
textStyle={{ color: theme.colors.
|
|
875
|
+
textStyle={{ color: theme.colors.textNormal }}
|
|
873
876
|
style={{ borderRadius: 7.6, borderWidth: 1, shadowOpacity: 0 }}
|
|
874
877
|
onClick={() => navigation?.canGoBack() && navigation.goBack()}
|
|
875
878
|
/>
|
|
@@ -895,9 +898,6 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
895
898
|
)}
|
|
896
899
|
<OButton
|
|
897
900
|
text={t('SAVE', 'Save')}
|
|
898
|
-
textStyle={{ color: theme.colors.white }}
|
|
899
|
-
bgColor={theme.colors.primary}
|
|
900
|
-
borderColor={theme.colors.primary}
|
|
901
901
|
imgRightSrc={null}
|
|
902
902
|
style={{ marginHorizontal: 30, marginBottom: 10 }}
|
|
903
903
|
onClick={() => setSaveMapLocation(true)}
|
|
@@ -152,11 +152,6 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
152
152
|
showCall={false}
|
|
153
153
|
paddingTop={10}
|
|
154
154
|
btnStyle={{ paddingLeft: 0 }}
|
|
155
|
-
buttonProps={{
|
|
156
|
-
bgColor: theme.colors.white,
|
|
157
|
-
borderColor: theme.colors.white,
|
|
158
|
-
textStyle: { color: theme.colors.btnFont }
|
|
159
|
-
}}
|
|
160
155
|
/>
|
|
161
156
|
)}
|
|
162
157
|
{
|
|
@@ -178,11 +173,6 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
178
173
|
style={{ marginTop: 0 }}
|
|
179
174
|
titleWrapStyle={{ paddingHorizontal: 0 }}
|
|
180
175
|
titleStyle={{ marginLeft: 0, marginRight: 0 }}
|
|
181
|
-
buttonProps={{
|
|
182
|
-
bgColor: theme.colors.white,
|
|
183
|
-
borderColor: theme.colors.white,
|
|
184
|
-
textStyle: { color: theme.colors.btnFont }
|
|
185
|
-
}}
|
|
186
176
|
/>
|
|
187
177
|
)}
|
|
188
178
|
{addressList.loading && addressList?.addresses?.length === 0 && (
|
|
@@ -305,10 +295,7 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
305
295
|
<OButton
|
|
306
296
|
text={t('ADD_NEW_ADDRESS', 'Add new Address')}
|
|
307
297
|
imgRightSrc=''
|
|
308
|
-
bgColor={theme.colors.primary}
|
|
309
|
-
textStyle={{ color: theme.colors.white }}
|
|
310
298
|
style={styles.button}
|
|
311
|
-
borderColor={theme.colors.primary}
|
|
312
299
|
onClick={() => !afterSignup ? onNavigationRedirect(
|
|
313
300
|
'AddressForm',
|
|
314
301
|
{
|
|
@@ -21,7 +21,7 @@ export const AppleLogin = (props: any) => {
|
|
|
21
21
|
const [{ configs }] = useConfig();
|
|
22
22
|
const [credentialStateForUser, updateCredentialStateForUser] = useState<any>(-1);
|
|
23
23
|
|
|
24
|
-
let user
|
|
24
|
+
let user: any = null
|
|
25
25
|
|
|
26
26
|
const buttonText = auth
|
|
27
27
|
? t('CONTINUE_WITH_APPLE', 'Logout with Apple')
|
|
@@ -53,7 +53,7 @@ export const AppleLogin = (props: any) => {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const fetchAndUpdateCredentialState = async (updateCredentialStateForUser
|
|
56
|
+
const fetchAndUpdateCredentialState = async (updateCredentialStateForUser: any) => {
|
|
57
57
|
if (user === null) {
|
|
58
58
|
updateCredentialStateForUser('N/A');
|
|
59
59
|
} else {
|
|
@@ -66,7 +66,7 @@ export const AppleLogin = (props: any) => {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
const onIOSButtonPress = async (updateCredentialStateForUser
|
|
69
|
+
const onIOSButtonPress = async (updateCredentialStateForUser: any) => {
|
|
70
70
|
try {
|
|
71
71
|
const appleAuthRequestResponse = await appleAuth.performRequest({
|
|
72
72
|
requestedOperation: appleAuth.Operation.LOGIN,
|
|
@@ -79,7 +79,7 @@ export const AppleLogin = (props: any) => {
|
|
|
79
79
|
identityToken,
|
|
80
80
|
authorizationCode
|
|
81
81
|
} = appleAuthRequestResponse;
|
|
82
|
-
|
|
82
|
+
|
|
83
83
|
user = newUser;
|
|
84
84
|
|
|
85
85
|
fetchAndUpdateCredentialState(updateCredentialStateForUser).catch(error =>
|
|
@@ -452,7 +452,7 @@ export const BusinessBasicInformation = (
|
|
|
452
452
|
</BusinessInfoItem>
|
|
453
453
|
</View>
|
|
454
454
|
<WrapReviews>
|
|
455
|
-
{!isBusinessInfoShow && (
|
|
455
|
+
{!isBusinessInfoShow && !loading && (
|
|
456
456
|
<>
|
|
457
457
|
{isPreOrder && (!business?.professionals || business?.professionals?.length === 0) && (
|
|
458
458
|
<>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect } from 'react';
|
|
2
|
-
import { TouchableOpacity, View } from 'react-native';
|
|
2
|
+
import { TouchableOpacity, View, Vibration } from 'react-native';
|
|
3
3
|
import { useOrder, useLanguage, useUtils, useConfig, useEvent } from 'ordering-components/native';
|
|
4
4
|
import { useTheme } from 'styled-components/native';
|
|
5
5
|
import {
|
|
@@ -49,7 +49,7 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
49
49
|
if (cartsLength === 1) {
|
|
50
50
|
changeActiveState && changeActiveState(!isClosed, cart?.uuid)
|
|
51
51
|
}
|
|
52
|
-
}, [orderState?.carts, isClosed])
|
|
52
|
+
}, [orderState?.carts?.length, isClosed])
|
|
53
53
|
|
|
54
54
|
const subtotalWithTaxes = cart?.taxes?.reduce((acc: any, item: any) => {
|
|
55
55
|
if (item?.type === 1)
|
|
@@ -57,6 +57,9 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
57
57
|
return acc = acc
|
|
58
58
|
}, cart?.subtotal)
|
|
59
59
|
|
|
60
|
+
const bgStyle = (subtotalWithTaxes < cart?.minimum || !cart?.valid_address) ? theme.colors.secundary : theme.colors.primary
|
|
61
|
+
const textStyles = (subtotalWithTaxes < cart?.minimum || !cart?.valid_address) ? theme.colors.black : theme.colors.white
|
|
62
|
+
|
|
60
63
|
useEffect(() => {
|
|
61
64
|
if (isActive && !isFromUpselling) {
|
|
62
65
|
if (cart?.uuid !== viewedCart?.uuid) {
|
|
@@ -66,6 +69,11 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
66
69
|
}
|
|
67
70
|
}, [isActive, viewedCart])
|
|
68
71
|
|
|
72
|
+
const handleGoToStore = () => {
|
|
73
|
+
Vibration.vibrate(100)
|
|
74
|
+
props.onNavigationRedirect('Business', { store: cart?.business?.slug })
|
|
75
|
+
}
|
|
76
|
+
|
|
69
77
|
return (
|
|
70
78
|
<BIContainer isClosed={isClosed} isMultiCheckout={isMultiCheckout} checkoutVisible={!isActive && !isClosed && !!isProducts && !checkoutButtonDisabled}>
|
|
71
79
|
<BIHeader
|
|
@@ -79,7 +87,7 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
79
87
|
<View style={{ flexDirection: 'row' }}>
|
|
80
88
|
{props.onNavigationRedirect && !isClosed && !isGiftCart && (
|
|
81
89
|
<>
|
|
82
|
-
<TouchableOpacity onPress={() =>
|
|
90
|
+
<TouchableOpacity onPress={() => handleGoToStore()}>
|
|
83
91
|
<OText color={theme.colors.primary} size={12} lineHeight={18} style={{ textDecorationLine: 'underline' }}>{t('GO_TO_STORE', 'Go to store')}</OText>
|
|
84
92
|
</TouchableOpacity>
|
|
85
93
|
</>
|
|
@@ -153,11 +161,11 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
153
161
|
{cart?.valid_products && (
|
|
154
162
|
<OButton
|
|
155
163
|
onClick={handleClickCheckout}
|
|
156
|
-
textStyle={{ color:
|
|
164
|
+
textStyle={{ color: textStyles, textAlign: 'center', flex: 1 }}
|
|
157
165
|
style={{ width: 180, flexDirection: 'row', justifyContent: 'center', borderRadius: 7.6, shadowOpacity: 0 }}
|
|
158
166
|
text={t('CHECKOUT', 'Checkout')}
|
|
159
|
-
bgColor={
|
|
160
|
-
borderColor={
|
|
167
|
+
bgColor={bgStyle}
|
|
168
|
+
borderColor={bgStyle}
|
|
161
169
|
isDisabled={checkoutButtonDisabled}
|
|
162
170
|
/>
|
|
163
171
|
)}
|