ordering-ui-react-native 0.22.44 → 0.22.45-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 -22
- package/themes/business/src/components/NewOrderNotification/index.tsx +38 -19
- 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 +6 -4
- 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 -14
- package/themes/original/src/components/AddressList/index.tsx +0 -3
- 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 -5
- package/themes/original/src/components/FavoriteList/index.tsx +0 -1
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -7
- 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 +2 -0
- 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 -9
- package/themes/original/src/components/MessageListing/index.tsx +2 -1
- 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 +80 -52
- 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 -2
- package/themes/original/src/components/NavBar/index.tsx +7 -4
- 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/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 -6
- 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 -2
- package/themes/original/src/components/ProductForm/ActionButton.tsx +7 -12
- package/themes/original/src/components/ProductForm/index.tsx +107 -102
- package/themes/original/src/components/ProductItemAccordion/index.tsx +30 -38
- 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 -2
- package/themes/original/src/components/ReviewDriver/index.tsx +1 -1
- package/themes/original/src/components/ReviewOrder/index.tsx +2 -2
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
- package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
- package/themes/original/src/components/ServiceForm/index.tsx +52 -54
- package/themes/original/src/components/Sessions/index.tsx +3 -3
- package/themes/original/src/components/SignupForm/index.tsx +44 -32
- package/themes/original/src/components/SingleOrderCard/index.tsx +6 -4
- package/themes/original/src/components/SingleProductCard/index.tsx +5 -5
- 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/UpsellingProducts/UpsellingLayout.tsx +8 -3
- 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/UserVerification/index.tsx +18 -5
- package/themes/original/src/components/Wallets/index.tsx +6 -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'
|
|
@@ -572,6 +579,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
572
579
|
placeholder={t('ADD_ADDRESS', 'Add a address')}
|
|
573
580
|
onPress={(data, details: any) => {
|
|
574
581
|
handleChangeAddress(data, details);
|
|
582
|
+
setAutoCompleteAddress(true);
|
|
575
583
|
}}
|
|
576
584
|
query={{
|
|
577
585
|
key: googleMapsApiKey,
|
|
@@ -586,6 +594,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
586
594
|
target: { name: 'address', value: text },
|
|
587
595
|
});
|
|
588
596
|
setValue('address', text);
|
|
597
|
+
setAutoCompleteAddress(true)
|
|
589
598
|
}
|
|
590
599
|
setIsFirstTime(false);
|
|
591
600
|
setAddressEditing(text.length == 0);
|
|
@@ -673,13 +682,15 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
673
682
|
setSaveLocation={setSaveMapLocation}
|
|
674
683
|
handleToggleMap={handleToggleMap}
|
|
675
684
|
isIntGeoCoder
|
|
685
|
+
setAutoCompleteAddress={setAutoCompleteAddress}
|
|
686
|
+
autoCompleteAddress={autoCompleteAddress}
|
|
676
687
|
/>
|
|
677
688
|
</GoogleMapContainer>
|
|
678
689
|
</View>
|
|
679
690
|
)}
|
|
680
691
|
|
|
681
692
|
<View style={{ flexDirection: 'row', flexBasis: '50%' }}>
|
|
682
|
-
{((isRequiredField && isRequiredField('internal_number')) || showFieldWithTheme('internal_number')) && (
|
|
693
|
+
{showField?.('internal_number') && ((isRequiredField && isRequiredField('internal_number')) || showFieldWithTheme('internal_number')) && (
|
|
683
694
|
<Controller
|
|
684
695
|
control={control}
|
|
685
696
|
name="internal_number"
|
|
@@ -726,7 +737,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
726
737
|
/>
|
|
727
738
|
)}
|
|
728
739
|
|
|
729
|
-
{((isRequiredField && isRequiredField('zipcode')) || showFieldWithTheme('zipcode')) && (
|
|
740
|
+
{showField?.('zipcode') && ((isRequiredField && isRequiredField('zipcode')) || showFieldWithTheme('zipcode')) && (
|
|
730
741
|
<Controller
|
|
731
742
|
control={control}
|
|
732
743
|
name="zipcode"
|
|
@@ -771,7 +782,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
771
782
|
)}
|
|
772
783
|
</View>
|
|
773
784
|
|
|
774
|
-
{((isRequiredField && isRequiredField('address_notes')) || showFieldWithTheme('address_notes')) && (
|
|
785
|
+
{showField?.('address_notes') && ((isRequiredField && isRequiredField('address_notes')) || showFieldWithTheme('address_notes')) && (
|
|
775
786
|
<Controller
|
|
776
787
|
control={control}
|
|
777
788
|
name="address_notes"
|
|
@@ -852,9 +863,6 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
852
863
|
: t('LOADING', 'Loading')
|
|
853
864
|
}
|
|
854
865
|
onClick={handleSubmit(onSubmit)}
|
|
855
|
-
bgColor={theme.colors.primary}
|
|
856
|
-
borderColor={theme.colors.primary}
|
|
857
|
-
textStyle={{ color: theme.colors.white }}
|
|
858
866
|
isDisabled={formState.loading}
|
|
859
867
|
style={{ borderRadius: 7.6, shadowOpacity: 0 }}
|
|
860
868
|
showNextIcon
|
|
@@ -864,7 +872,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
864
872
|
text={t('CANCEL', 'Cancel')}
|
|
865
873
|
bgColor={theme.colors.secundary}
|
|
866
874
|
borderColor={theme.colors.secundary}
|
|
867
|
-
textStyle={{ color: theme.colors.
|
|
875
|
+
textStyle={{ color: theme.colors.textNormal }}
|
|
868
876
|
style={{ borderRadius: 7.6, borderWidth: 1, shadowOpacity: 0 }}
|
|
869
877
|
onClick={() => navigation?.canGoBack() && navigation.goBack()}
|
|
870
878
|
/>
|
|
@@ -890,9 +898,6 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
890
898
|
)}
|
|
891
899
|
<OButton
|
|
892
900
|
text={t('SAVE', 'Save')}
|
|
893
|
-
textStyle={{ color: theme.colors.white }}
|
|
894
|
-
bgColor={theme.colors.primary}
|
|
895
|
-
borderColor={theme.colors.primary}
|
|
896
901
|
imgRightSrc={null}
|
|
897
902
|
style={{ marginHorizontal: 30, marginBottom: 10 }}
|
|
898
903
|
onClick={() => setSaveMapLocation(true)}
|
|
@@ -295,10 +295,7 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
295
295
|
<OButton
|
|
296
296
|
text={t('ADD_NEW_ADDRESS', 'Add new Address')}
|
|
297
297
|
imgRightSrc=''
|
|
298
|
-
bgColor={theme.colors.primary}
|
|
299
|
-
textStyle={{ color: theme.colors.white }}
|
|
300
298
|
style={styles.button}
|
|
301
|
-
borderColor={theme.colors.primary}
|
|
302
299
|
onClick={() => !afterSignup ? onNavigationRedirect(
|
|
303
300
|
'AddressForm',
|
|
304
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
|
)}
|