ordering-ui-react-native 0.22.40 → 0.22.41-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/themes/business/index.tsx +2 -0
- 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 +14 -5
- package/themes/business/src/components/MapView/index.tsx +52 -34
- package/themes/business/src/components/NewOrderNotification/index.tsx +38 -19
- package/themes/business/src/components/OrderDetails/Business.tsx +47 -27
- 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 +29 -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 +431 -0
- package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
- package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
- package/themes/business/src/components/PrinterSettings/index.tsx +162 -174
- package/themes/business/src/components/PrinterSettings/styles.tsx +14 -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 +51 -19
- 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 +11 -0
- package/themes/original/src/components/AddressForm/index.tsx +25 -17
- package/themes/original/src/components/AddressList/index.tsx +8 -7
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +5 -8
- 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 +127 -79
- 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 +13 -10
- 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 +102 -74
- package/themes/original/src/components/UserProfile/index.tsx +9 -1
- package/themes/original/src/components/UserVerification/index.tsx +15 -4
- 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
|
@@ -48,11 +48,13 @@ const SingleProductCardUI = React.memo((props: SingleProductCardParams) => {
|
|
|
48
48
|
const hideAddButton = theme?.business_view?.components?.products?.components?.add_to_cart_button?.hidden ?? true
|
|
49
49
|
const isChewLayout = theme?.header?.components?.layout?.type?.toLowerCase() === 'chew'
|
|
50
50
|
const hideProductDescription = theme?.business_view?.components?.products?.components?.product?.components?.description?.hidden
|
|
51
|
+
const hideProductDummyLogo = theme?.business_view?.components?.products?.components?.product?.components?.dummy?.hidden
|
|
51
52
|
const hideProductLogo = viewString
|
|
52
53
|
? theme?.[viewString]?.components?.cart?.components?.products?.image?.hidden
|
|
53
54
|
: theme?.business_view?.components?.products?.components?.product?.components?.image?.hidden
|
|
54
55
|
const textSize = isChewLayout ? 12 : 10
|
|
55
56
|
const logoPosition = theme?.business_view?.components?.products?.components?.product?.components?.image?.position
|
|
57
|
+
const hideFavoriteIcon = theme?.business_view?.components?.products?.components?.product?.components?.favorite?.hidden
|
|
56
58
|
|
|
57
59
|
const styles = StyleSheet.create({
|
|
58
60
|
container: {
|
|
@@ -197,7 +199,7 @@ const SingleProductCardUI = React.memo((props: SingleProductCardParams) => {
|
|
|
197
199
|
style={{ ...styles.line18, flex: 1 }}>
|
|
198
200
|
{product?.name}
|
|
199
201
|
</OText>
|
|
200
|
-
{!isPreviously && (
|
|
202
|
+
{!isPreviously && !hideFavoriteIcon && (
|
|
201
203
|
<LottieAnimation
|
|
202
204
|
type='favorite'
|
|
203
205
|
onClick={handleChangeFavorite}
|
|
@@ -283,7 +285,7 @@ const SingleProductCardUI = React.memo((props: SingleProductCardParams) => {
|
|
|
283
285
|
</OText>
|
|
284
286
|
</RibbonBox>
|
|
285
287
|
)}
|
|
286
|
-
{!hideProductLogo && (
|
|
288
|
+
{(!hideProductLogo && (product?.images || !hideProductDummyLogo)) && (
|
|
287
289
|
<FastImage
|
|
288
290
|
style={styles.productStyle}
|
|
289
291
|
source={product?.images ? {
|
|
@@ -313,9 +315,7 @@ const SingleProductCardUI = React.memo((props: SingleProductCardParams) => {
|
|
|
313
315
|
height: 40
|
|
314
316
|
|
|
315
317
|
}}
|
|
316
|
-
|
|
317
|
-
borderColor={theme?.colors.primary}
|
|
318
|
-
textStyle={{ color: theme.colors.primary }}
|
|
318
|
+
isDisabled={isSoldOut}
|
|
319
319
|
text={t('ADD', 'Add')}
|
|
320
320
|
/>
|
|
321
321
|
)}
|
|
@@ -49,15 +49,12 @@ export const RibbonBox = styled.View`
|
|
|
49
49
|
background-color: ${(props: any) => props.theme.colors.primary};
|
|
50
50
|
padding: 1px 8px;
|
|
51
51
|
max-width: 60px;
|
|
52
|
-
|
|
53
52
|
${(props: any) => props.bgColor && css`
|
|
54
53
|
background-color: ${props.bgColor};
|
|
55
54
|
`}
|
|
56
|
-
|
|
57
55
|
${(props: any) => props.isRoundRect && css`
|
|
58
56
|
border-radius: 7.6px;
|
|
59
57
|
`}
|
|
60
|
-
|
|
61
58
|
${(props: any) => props.isCapsule && css`
|
|
62
59
|
border-radius: 50px;
|
|
63
60
|
`}
|
|
@@ -65,9 +65,6 @@ const StripeCardFormUI = (props: any) => {
|
|
|
65
65
|
<OButton
|
|
66
66
|
text={loading ? t('LOADING', 'Loading...') : t('ADD', 'Add')}
|
|
67
67
|
isDisabled={!cardState?.valid || loading}
|
|
68
|
-
bgColor={theme.colors.primary}
|
|
69
|
-
borderColor={theme.colors.primary}
|
|
70
|
-
textStyle={{ color: 'white' }}
|
|
71
68
|
imgRightSrc={null}
|
|
72
69
|
onClick={handleSubmit}
|
|
73
70
|
/>
|
|
@@ -26,12 +26,14 @@ export const StripeCardsListUI = (props: any) => {
|
|
|
26
26
|
const {
|
|
27
27
|
onSelectCard,
|
|
28
28
|
deleteCard,
|
|
29
|
-
cardSelected,
|
|
30
29
|
cardsList,
|
|
31
30
|
handleCardClick,
|
|
32
31
|
onOpen,
|
|
33
32
|
gateway,
|
|
34
|
-
paySelected
|
|
33
|
+
paySelected,
|
|
34
|
+
newCardAdded,
|
|
35
|
+
addNewCardAsDefault,
|
|
36
|
+
setUserHasCards
|
|
35
37
|
} = props;
|
|
36
38
|
|
|
37
39
|
const theme = useTheme();
|
|
@@ -55,6 +57,17 @@ export const StripeCardsListUI = (props: any) => {
|
|
|
55
57
|
}
|
|
56
58
|
}, [cardsList?.loading])
|
|
57
59
|
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (newCardAdded && addNewCardAsDefault) {
|
|
62
|
+
handleCardSelected(newCardAdded)
|
|
63
|
+
}
|
|
64
|
+
}, [JSON.stringify(newCardAdded)])
|
|
65
|
+
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
const hasCardSelected = cardsList?.cards?.some?.((card : any) => card?.id === paySelected?.data?.id)
|
|
68
|
+
setUserHasCards && setUserHasCards(cardsList?.cards?.length > 0 && hasCardSelected)
|
|
69
|
+
}, [cardsList?.cards?.length, paySelected])
|
|
70
|
+
|
|
58
71
|
return (
|
|
59
72
|
<>
|
|
60
73
|
{token && !cardsList.loading && cardsList.cards && cardsList.cards.length === 0 && (
|
|
@@ -96,7 +109,7 @@ export const StripeCardsListUI = (props: any) => {
|
|
|
96
109
|
<OSItem key={card.id} isUnique={cardsList.cards.length} isInvalid={!card?.zipcode && validateZipcodeCard}>
|
|
97
110
|
<OSItemContent onPress={() => handleCardSelected(card)}>
|
|
98
111
|
<View style={styles.viewStyle}>
|
|
99
|
-
{(card.id ===
|
|
112
|
+
{(card.id === paySelected?.data?.id) ? (
|
|
100
113
|
<OIcon
|
|
101
114
|
src={theme.images.general.radio_act}
|
|
102
115
|
width={16}
|
|
@@ -35,9 +35,10 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
35
35
|
setPlaceByMethodPay,
|
|
36
36
|
cartTotal,
|
|
37
37
|
publicKeyAddCard,
|
|
38
|
-
|
|
38
|
+
urlscheme,
|
|
39
39
|
androidAppId,
|
|
40
|
-
businessNames
|
|
40
|
+
businessNames,
|
|
41
|
+
setNewCardAdded
|
|
41
42
|
} = props;
|
|
42
43
|
|
|
43
44
|
const theme = useTheme();
|
|
@@ -150,6 +151,10 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
150
151
|
const _isNewCard = index === 0
|
|
151
152
|
stripeTokenHandler(setupIntent?.paymentMethodId, user, businessId, _isNewCard);
|
|
152
153
|
})
|
|
154
|
+
setNewCardAdded?.({
|
|
155
|
+
...card,
|
|
156
|
+
id: setupIntent?.paymentMethodId
|
|
157
|
+
})
|
|
153
158
|
} else {
|
|
154
159
|
stripeTokenHandler(setupIntent?.paymentMethodId, user, businessId);
|
|
155
160
|
}
|
|
@@ -213,7 +218,7 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
213
218
|
<StripeProvider
|
|
214
219
|
publishableKey={isToSave}
|
|
215
220
|
merchantIdentifier={merchantId}
|
|
216
|
-
|
|
221
|
+
urlscheme={`${urlscheme}://checkout/${cart?.uuid}`}
|
|
217
222
|
>
|
|
218
223
|
{methodsPay?.includes(paymethod) ? (
|
|
219
224
|
<StripeMethodForm
|
|
@@ -282,7 +287,6 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
282
287
|
bgColor={isCompleted ? theme.colors.primary : theme.colors.backgroundGray}
|
|
283
288
|
borderColor={isCompleted ? theme.colors.primary : theme.colors.backgroundGray}
|
|
284
289
|
style={styles.btnAddStyle}
|
|
285
|
-
textStyle={{ color: 'white' }}
|
|
286
290
|
imgRightSrc={null}
|
|
287
291
|
onClick={() => handleSaveCard()}
|
|
288
292
|
isDisabled={!isCompleted}
|
|
@@ -53,7 +53,7 @@ export const StripeElementsForm = (props: any) => {
|
|
|
53
53
|
const result = await fetch(`${ordering.root}/payments/stripe/cards`, {
|
|
54
54
|
method: 'POST',
|
|
55
55
|
headers: {
|
|
56
|
-
Authorization: `Bearer ${
|
|
56
|
+
Authorization: `Bearer ${token}`,
|
|
57
57
|
'Content-Type': 'application/json'
|
|
58
58
|
},
|
|
59
59
|
body: JSON.stringify({
|
|
@@ -138,9 +138,6 @@ const StripeRedirectFormUI = (props: any) => {
|
|
|
138
138
|
<OButton
|
|
139
139
|
// text={formState.isSubmitting ? t('LOADING', 'Loading...') : t('OK', 'OK')}
|
|
140
140
|
text={t('OK', 'OK')}
|
|
141
|
-
bgColor={theme.colors.primary}
|
|
142
|
-
borderColor={theme.colors.primary}
|
|
143
|
-
textStyle={{ color: 'white' }}
|
|
144
141
|
imgRightSrc={null}
|
|
145
142
|
// isDisabled={formState.isSubmitting}
|
|
146
143
|
// onClick={() => handleSubmit(onSubmit)}
|
|
@@ -14,7 +14,8 @@ interface taxInformationParams {
|
|
|
14
14
|
percentage?: number,
|
|
15
15
|
id: number,
|
|
16
16
|
discounts?: any,
|
|
17
|
-
rate_type?: number
|
|
17
|
+
rate_type?: number,
|
|
18
|
+
target?: string
|
|
18
19
|
},
|
|
19
20
|
products: Array<any>,
|
|
20
21
|
type: string
|
|
@@ -34,7 +35,7 @@ export const TaxInformation = (props: taxInformationParams) => {
|
|
|
34
35
|
const offersHideArray = ['offer_target_2', 'offer_target_3']
|
|
35
36
|
const hideProductsSectionOffers = offersHideArray.includes(type)
|
|
36
37
|
const dataHideArray : Array<string | number> = ['platform', 'business']
|
|
37
|
-
const hideProductsSectionData = dataHideArray.includes(data.type)
|
|
38
|
+
const hideProductsSectionData = dataHideArray.includes(data.type) || data?.target === 'delivery_fee'
|
|
38
39
|
|
|
39
40
|
const getFilterValidation = (product: any) => {
|
|
40
41
|
return (
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
|
-
import { Platform, StyleSheet, View } from 'react-native'
|
|
2
|
+
import { Platform, StyleSheet, View, Vibration } from 'react-native'
|
|
3
3
|
import {
|
|
4
4
|
useLanguage,
|
|
5
5
|
useOrder,
|
|
@@ -90,6 +90,11 @@ export const UpsellingContent = (props: any) => {
|
|
|
90
90
|
setShowTitle(contentOffset.y > 30)
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
const handleClickCheckout = () => {
|
|
94
|
+
Vibration.vibrate(100)
|
|
95
|
+
handleUpsellingPage(cart)
|
|
96
|
+
}
|
|
97
|
+
|
|
93
98
|
return (
|
|
94
99
|
<>
|
|
95
100
|
<View style={styles.wrapperNavbar}>
|
|
@@ -158,11 +163,9 @@ export const UpsellingContent = (props: any) => {
|
|
|
158
163
|
<OButton
|
|
159
164
|
imgRightSrc=''
|
|
160
165
|
text={t('CHECKOUT', 'Checkout')}
|
|
161
|
-
textStyle={{
|
|
162
|
-
bgColor={theme.colors.primary}
|
|
163
|
-
borderColor={theme.colors.primary}
|
|
166
|
+
textStyle={{ fontSize: 14 }}
|
|
164
167
|
style={{ ...styles.closeUpsellingButton }}
|
|
165
|
-
onClick={() =>
|
|
168
|
+
onClick={() => handleClickCheckout()}
|
|
166
169
|
/>
|
|
167
170
|
</View>
|
|
168
171
|
</>
|
|
@@ -25,6 +25,9 @@ export const UpsellingLayout = (props : any) => {
|
|
|
25
25
|
const [{ parsePrice }] = useUtils()
|
|
26
26
|
const [, t] = useLanguage()
|
|
27
27
|
|
|
28
|
+
const hideProductDummyLogo = theme?.business_view?.components?.products?.components?.product?.components?.dummy?.hidden
|
|
29
|
+
|
|
30
|
+
|
|
28
31
|
const styles = StyleSheet.create({
|
|
29
32
|
imageStyle: {
|
|
30
33
|
width: 73,
|
|
@@ -66,9 +69,11 @@ export const UpsellingLayout = (props : any) => {
|
|
|
66
69
|
<OText size={10} color={theme.colors.primary}>{t('ADD', 'Add')}</OText>
|
|
67
70
|
</AddButton>
|
|
68
71
|
</View>
|
|
69
|
-
|
|
70
|
-
<
|
|
71
|
-
|
|
72
|
+
{(product?.images || !hideProductDummyLogo) && (
|
|
73
|
+
<View>
|
|
74
|
+
<OIcon url={product?.images || theme?.images?.dummies?.product} style={styles.imageStyle} />
|
|
75
|
+
</View>
|
|
76
|
+
)}
|
|
72
77
|
</Item>
|
|
73
78
|
)) : (
|
|
74
79
|
<OText>
|
|
@@ -35,7 +35,8 @@ const UserDetailsUI = (props: any) => {
|
|
|
35
35
|
handleSendVerifyCode,
|
|
36
36
|
verifyPhoneState,
|
|
37
37
|
setFormState,
|
|
38
|
-
setIsOpen
|
|
38
|
+
setIsOpen,
|
|
39
|
+
isCheckoutPlace
|
|
39
40
|
} = props
|
|
40
41
|
|
|
41
42
|
const theme = useTheme();
|
|
@@ -95,23 +96,23 @@ const UserDetailsUI = (props: any) => {
|
|
|
95
96
|
},
|
|
96
97
|
});
|
|
97
98
|
handleSendVerifyCode({
|
|
98
|
-
|
|
99
|
-
|
|
99
|
+
cellphone: cellphone,
|
|
100
|
+
country_phone_code: countryPhoneCode
|
|
100
101
|
})
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
|
|
104
105
|
const handleSendPhoneCode = (values: any) => {
|
|
105
|
-
|
|
106
|
+
setWillVerifyOtpState(false)
|
|
106
107
|
setIsModalVisible(false)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
108
|
+
setFormState({
|
|
109
|
+
...formState,
|
|
110
|
+
changes: {
|
|
111
|
+
...formState?.changes,
|
|
112
|
+
verification_code: values?.code
|
|
113
|
+
}
|
|
114
|
+
})
|
|
115
|
+
}
|
|
115
116
|
|
|
116
117
|
useEffect(() => {
|
|
117
118
|
if (willVerifyOtpState) handleVerifyCodeClick()
|
|
@@ -158,7 +159,7 @@ const UserDetailsUI = (props: any) => {
|
|
|
158
159
|
{t('CUSTOMER_DETAILS', 'Customer Details')}
|
|
159
160
|
</OText>
|
|
160
161
|
)}
|
|
161
|
-
{cartStatus !== 2 && !
|
|
162
|
+
{cartStatus !== 2 && !isCheckoutPlace && (
|
|
162
163
|
!isEdit ? (
|
|
163
164
|
<EditBtn onPress={() => toggleIsEdit()} activeOpacity={0.7}>
|
|
164
165
|
<OIcon
|
|
@@ -189,12 +190,12 @@ const UserDetailsUI = (props: any) => {
|
|
|
189
190
|
{userData?.name} {userData?.middle_name} {userData?.lastname} {userData?.second_lastname}
|
|
190
191
|
</OText>
|
|
191
192
|
<OText size={12} lineHeight={18} weight={'400'}>
|
|
192
|
-
{userData?.email}
|
|
193
|
+
{userData?.guest_id ? userData?.guest_email : userData?.email}
|
|
193
194
|
</OText>
|
|
194
|
-
{!!(userData?.cellphone || user?.cellphone) && (
|
|
195
|
+
{!!((userData?.cellphone ?? userData?.guest_cellphone) || (user?.cellphone ?? user?.guest_cellphone)) && (
|
|
195
196
|
<>
|
|
196
197
|
<OText size={12} lineHeight={18} weight={'400'}>
|
|
197
|
-
{(userData?.country_phone_code) && `+${(userData?.country_phone_code)} `}{(userData?.cellphone)}
|
|
198
|
+
{(userData?.country_phone_code) && `+${(userData?.country_phone_code)} `}{(userData?.guest_id ? user?.guest_cellphone : userData?.cellphone)}
|
|
198
199
|
</OText>
|
|
199
200
|
{!!phoneUpdate && (
|
|
200
201
|
<OText color={theme.colors.error} style={{ textAlign: 'center' }}>{t('NECESSARY_UPDATE_COUNTRY_PHONE_CODE', 'It is necessary to update your phone number')}</OText>
|
|
@@ -16,6 +16,8 @@ import { ListItem } from '../UserProfile/styles';
|
|
|
16
16
|
import moment from 'moment';
|
|
17
17
|
import { DatePickerUI } from '../DatePicker';
|
|
18
18
|
|
|
19
|
+
const CONDITIONAL_CODES = ['PR']
|
|
20
|
+
|
|
19
21
|
export const UserFormDetailsUI = (props: any) => {
|
|
20
22
|
const {
|
|
21
23
|
isEdit,
|
|
@@ -36,7 +38,12 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
36
38
|
isCheckout,
|
|
37
39
|
setIsOpen,
|
|
38
40
|
handleRemoveAccount,
|
|
39
|
-
isProfile
|
|
41
|
+
isProfile,
|
|
42
|
+
isGuest,
|
|
43
|
+
isOrderTypeValidationField,
|
|
44
|
+
checkoutFields,
|
|
45
|
+
isCheckoutPlace,
|
|
46
|
+
setCellphoneStartZero
|
|
40
47
|
} = props;
|
|
41
48
|
|
|
42
49
|
const theme = useTheme();
|
|
@@ -78,7 +85,7 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
78
85
|
const [, { showToast }] = useToast();
|
|
79
86
|
const { handleSubmit, control, errors, setValue } = useForm();
|
|
80
87
|
|
|
81
|
-
const [{ user }, { login }] = useSession();
|
|
88
|
+
const [{ user }, { login, logout }] = useSession();
|
|
82
89
|
const [userPhoneNumber, setUserPhoneNumber] = useState<any>(null);
|
|
83
90
|
const [isValid, setIsValid] = useState(false)
|
|
84
91
|
const [isChanged, setIsChanged] = useState(false)
|
|
@@ -95,8 +102,8 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
95
102
|
const [confirm, setConfirm] = useState<any>({ open: false, content: null, handleOnAccept: null, id: null, title: null })
|
|
96
103
|
|
|
97
104
|
const isAdmin = user?.level === 0
|
|
98
|
-
const showInputPhoneNumber = (validationFields?.fields?.checkout?.cellphone?.enabled ?? false)
|
|
99
|
-
const showInputBirthday = validationFields?.fields?.checkout?.birthdate?.enabled ?? false
|
|
105
|
+
const showInputPhoneNumber = isOrderTypeValidationField ? checkoutFields?.find(field => field?.validation_field?.code === 'mobile_phone')?.enabled : (validationFields?.fields?.checkout?.cellphone?.enabled ?? false)
|
|
106
|
+
const showInputBirthday = isOrderTypeValidationField ? checkoutFields?.find(field => field?.validation_field?.code === 'birthdate')?.enabled : (validationFields?.fields?.checkout?.birthdate?.enabled ?? false)
|
|
100
107
|
|
|
101
108
|
const handleSuccessSignup = (user: any) => {
|
|
102
109
|
login({
|
|
@@ -127,15 +134,27 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
127
134
|
return rules;
|
|
128
135
|
};
|
|
129
136
|
|
|
137
|
+
const cellphoneValue = () => {
|
|
138
|
+
let cellphone = user?.guest_id ? user?.guest_cellphone : user?.cellphone
|
|
139
|
+
if (cellphone && CONDITIONAL_CODES.includes(user?.country_code)) {
|
|
140
|
+
if (user?.country_code === 'PR') {
|
|
141
|
+
cellphone = user?.cellphone?.slice(3)
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return cellphone
|
|
145
|
+
}
|
|
146
|
+
|
|
130
147
|
const setUserCellPhone = (isEdit = false) => {
|
|
131
148
|
if (userPhoneNumber && !userPhoneNumber.includes('null') && !isEdit) {
|
|
132
149
|
setUserPhoneNumber(userPhoneNumber);
|
|
133
150
|
return;
|
|
134
151
|
}
|
|
135
|
-
|
|
152
|
+
const cellphone = user?.guest_id ? user?.guest_cellphone : user?.cellphone
|
|
153
|
+
|
|
154
|
+
if (cellphone) {
|
|
136
155
|
let phone = null;
|
|
137
156
|
if (user?.country_phone_code) {
|
|
138
|
-
phone = `+${user?.country_phone_code} ${
|
|
157
|
+
phone = `+${user?.country_phone_code} ${cellphone}`;
|
|
139
158
|
} else {
|
|
140
159
|
phone = user?.cellphone;
|
|
141
160
|
}
|
|
@@ -144,17 +163,22 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
144
163
|
...phoneInputData,
|
|
145
164
|
phone: {
|
|
146
165
|
country_phone_code: user?.country_phone_code || null,
|
|
147
|
-
cellphone:
|
|
166
|
+
cellphone: cellphoneValue()
|
|
148
167
|
},
|
|
149
168
|
});
|
|
150
169
|
return;
|
|
151
170
|
}
|
|
152
|
-
setUserPhoneNumber(
|
|
171
|
+
setUserPhoneNumber(cellphone || '');
|
|
153
172
|
};
|
|
154
173
|
|
|
155
174
|
const onSubmit = () => {
|
|
175
|
+
let content = ''
|
|
176
|
+
if (requiredFields?.includes?.('birthdate') && !birthdate) {
|
|
177
|
+
content = content + `${t('VALIDATION_ERROR_BIRTHDATE_REQUIRED', 'Birthdate is required')}\n`
|
|
178
|
+
}
|
|
156
179
|
if (phoneInputData.error) {
|
|
157
|
-
|
|
180
|
+
content = content + `${phoneInputData.error}\n`
|
|
181
|
+
showToast(ToastType.Error, content);
|
|
158
182
|
return;
|
|
159
183
|
}
|
|
160
184
|
if (Object.keys(formState.changes).length > 0) {
|
|
@@ -162,17 +186,16 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
162
186
|
formState.changes?.cellphone === null &&
|
|
163
187
|
((validationFields?.fields?.checkout?.cellphone?.enabled &&
|
|
164
188
|
validationFields?.fields?.checkout?.cellphone?.required) ||
|
|
165
|
-
configs?.verification_phone_required?.value === '1')
|
|
189
|
+
(configs?.verification_phone_required?.value === '1' && !user?.guest_id))
|
|
166
190
|
) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
t(
|
|
170
|
-
'VALIDATION_ERROR_MOBILE_PHONE_REQUIRED',
|
|
171
|
-
'The field Phone Number is required.',
|
|
172
|
-
),
|
|
173
|
-
);
|
|
191
|
+
content = content + `${t('VALIDATION_ERROR_MOBILE_PHONE_REQUIRED', 'The field Phone Number is required.',)}\n`
|
|
192
|
+
showToast(ToastType.Error, content);
|
|
174
193
|
return;
|
|
175
194
|
}
|
|
195
|
+
if (content.length > 0) {
|
|
196
|
+
showToast(ToastType.Error, content);
|
|
197
|
+
return
|
|
198
|
+
}
|
|
176
199
|
let changes = null;
|
|
177
200
|
if (user?.cellphone && !userPhoneNumber) {
|
|
178
201
|
changes = {
|
|
@@ -185,7 +208,7 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
185
208
|
}
|
|
186
209
|
};
|
|
187
210
|
|
|
188
|
-
const handleChangePhoneNumber = (number: any) => {
|
|
211
|
+
const handleChangePhoneNumber = (number: any, rawNumber : any) => {
|
|
189
212
|
setPhoneInputData(number);
|
|
190
213
|
setIsChanged(true)
|
|
191
214
|
let phoneNumber = {
|
|
@@ -198,6 +221,7 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
198
221
|
value: number.phone.cellphone,
|
|
199
222
|
},
|
|
200
223
|
};
|
|
224
|
+
setCellphoneStartZero && setCellphoneStartZero(rawNumber?.number && rawNumber?.countryCallingCode ? rawNumber?.number : null)
|
|
201
225
|
handleChangeInput(phoneNumber, true);
|
|
202
226
|
};
|
|
203
227
|
|
|
@@ -223,9 +247,12 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
223
247
|
open: true,
|
|
224
248
|
content: [t('QUESTION_REMOVE_ACCOUNT', 'Are you sure that you want to remove your account?')],
|
|
225
249
|
title: t('ACCOUNT_ALERT', 'Account alert'),
|
|
226
|
-
handleOnAccept: () => {
|
|
250
|
+
handleOnAccept: async () => {
|
|
227
251
|
setConfirm({ ...confirm, open: false })
|
|
228
|
-
|
|
252
|
+
const response = await handleRemoveAccount?.(user?.id)
|
|
253
|
+
if (response === 'OK'){
|
|
254
|
+
logout()
|
|
255
|
+
}
|
|
229
256
|
}
|
|
230
257
|
})
|
|
231
258
|
}
|
|
@@ -298,16 +325,16 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
298
325
|
<>
|
|
299
326
|
<UDForm>
|
|
300
327
|
{!validationFields?.loading &&
|
|
301
|
-
sortInputFields({ values: validationFields?.fields?.checkout })
|
|
328
|
+
sortInputFields({ values: isOrderTypeValidationField ? checkoutFields : validationFields?.fields?.checkout })
|
|
302
329
|
.length > 0 && (
|
|
303
330
|
<UDWrapper>
|
|
304
331
|
{sortInputFields({
|
|
305
|
-
values: validationFields
|
|
332
|
+
values: isOrderTypeValidationField ? checkoutFields : validationFields?.fields?.checkout,
|
|
306
333
|
}).map(
|
|
307
334
|
(item: any) => {
|
|
308
335
|
const field = item?.validation_field || item
|
|
309
|
-
return (
|
|
310
|
-
showField(field.code) && ((requiredFields && requiredFields
|
|
336
|
+
return (
|
|
337
|
+
((isOrderTypeValidationField ? item?.enabled : (showField && showField(field.code))) && ((requiredFields && requiredFields?.includes?.(field.code)) || !requiredFields || !isCheckoutPlace)) && (
|
|
311
338
|
<React.Fragment key={field.id}>
|
|
312
339
|
<Controller
|
|
313
340
|
key={field.id}
|
|
@@ -331,7 +358,7 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
331
358
|
isDisabled={false}
|
|
332
359
|
value={
|
|
333
360
|
formState?.changes[field.code] ??
|
|
334
|
-
(user && user[field.code]) ??
|
|
361
|
+
(user && user?.guest_id && field.code === 'email' ? user?.guest_email : user?.[field.code]) ??
|
|
335
362
|
''
|
|
336
363
|
}
|
|
337
364
|
onChange={(val: any) => {
|
|
@@ -375,52 +402,58 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
375
402
|
)}
|
|
376
403
|
name={field.code}
|
|
377
404
|
rules={getInputRules(field)}
|
|
378
|
-
defaultValue={user && user[field.code]}
|
|
405
|
+
defaultValue={user && (field.code === 'email' && user?.guest_id ? user?.guest_email : user?.[field.code])}
|
|
379
406
|
/>
|
|
380
407
|
</React.Fragment>
|
|
381
408
|
))
|
|
382
409
|
},
|
|
383
410
|
)}
|
|
384
|
-
{
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
{birthdate ? moment(birthdate).format('YYYY-MM-DD') : ''}
|
|
411
|
+
{((!user?.guest_id && showInputBirthday) || (isOrderTypeValidationField || user?.guest_id)) &&
|
|
412
|
+
showInputBirthday &&
|
|
413
|
+
((requiredFields && requiredFields?.includes?.('birthdate')) || !requiredFields || !isCheckoutPlace) &&
|
|
414
|
+
(
|
|
415
|
+
<>
|
|
416
|
+
<WrapperBirthdate>
|
|
417
|
+
<OText size={14} lineHeight={21} color={theme.colors.textNormal} weight={'500'} style={{ textTransform: 'capitalize', alignSelf: 'flex-start' }}>
|
|
418
|
+
{t('BIRTHDATE', 'Birthdate')}
|
|
393
419
|
</OText>
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
420
|
+
<TouchableOpacity onPress={() => setShowDatePicker(!showDatePicker)}>
|
|
421
|
+
<OText size={14} lineHeight={21} color={theme.colors.textNormal} weight={'500'} style={{ marginTop: 6 }}>
|
|
422
|
+
{birthdate ? moment(birthdate).format('YYYY-MM-DD') : ''}
|
|
423
|
+
</OText>
|
|
424
|
+
</TouchableOpacity>
|
|
425
|
+
</WrapperBirthdate>
|
|
426
|
+
<DatePickerUI open={showDatePicker} birthdate={birthdate} onConfirm={_handleChangeDate} onCancel={() => setShowDatePicker(false)} />
|
|
427
|
+
</>
|
|
428
|
+
)}
|
|
429
|
+
{((!user?.guest_id && !!showInputPhoneNumber) || (isOrderTypeValidationField || user?.guest_id)) &&
|
|
430
|
+
((requiredFields && requiredFields?.includes?.('cellphone')) || !requiredFields || !isCheckoutPlace) &&
|
|
431
|
+
(
|
|
432
|
+
<WrapperPhone>
|
|
433
|
+
<OText size={14} lineHeight={21} weight={'500'} color={theme.colors.textNormal}>{t('PHONE', 'Phone')}</OText>
|
|
434
|
+
<PhoneInputNumber
|
|
435
|
+
data={phoneInputData}
|
|
436
|
+
handleData={handleChangePhoneNumber}
|
|
437
|
+
changeCountry={(val: any) => changeCountry(val)}
|
|
438
|
+
defaultValue={phoneUpdate ? '' : cellphoneValue()}
|
|
439
|
+
defaultCode={user?.country_code ?? user?.country_phone_code ?? null}
|
|
440
|
+
defaultCodeFallback={user?.country_phone_code}
|
|
441
|
+
boxStyle={styles.phoneSelect}
|
|
442
|
+
inputStyle={styles.phoneInputStyle}
|
|
443
|
+
textStyle={{ color: theme.colors.textNormal, fontSize: 12, padding: 0 }}
|
|
444
|
+
noDropIcon
|
|
445
|
+
/>
|
|
446
|
+
{phoneUpdate && (
|
|
447
|
+
<OText
|
|
448
|
+
size={10}
|
|
449
|
+
color={theme.colors.error}
|
|
450
|
+
style={{ marginHorizontal: 10, textAlign: 'center' }}>
|
|
451
|
+
{t('YOUR_PREVIOUS_CELLPHONE', 'Your previous cellphone')}:{' '}
|
|
452
|
+
{cellphoneValue()}
|
|
453
|
+
</OText>
|
|
454
|
+
)}
|
|
455
|
+
</WrapperPhone>
|
|
456
|
+
)}
|
|
424
457
|
{!requiredFields && (
|
|
425
458
|
<Controller
|
|
426
459
|
control={control}
|
|
@@ -484,9 +517,7 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
484
517
|
? t('UPDATING', 'Updating...')
|
|
485
518
|
: t('UPDATE', 'Update')
|
|
486
519
|
}
|
|
487
|
-
|
|
488
|
-
textStyle={{ color: theme.colors.white, fontSize: 14 }}
|
|
489
|
-
borderColor={theme.colors.primary}
|
|
520
|
+
textStyle={{ fontSize: 14 }}
|
|
490
521
|
isDisabled={formState.loading}
|
|
491
522
|
imgRightSrc={null}
|
|
492
523
|
style={{ borderRadius: 7.6, shadowOpacity: 0, width: '100%', borderWidth: 1, marginTop: 20, marginBottom: 20 }}
|
|
@@ -495,7 +526,7 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
495
526
|
)}
|
|
496
527
|
</>
|
|
497
528
|
)}
|
|
498
|
-
{
|
|
529
|
+
{isCheckoutPlace && (
|
|
499
530
|
<OButton
|
|
500
531
|
text={
|
|
501
532
|
formState.loading
|
|
@@ -504,12 +535,10 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
504
535
|
? t('SIGN_UP_AND_PLACE_ORDER', 'Sign up and place order')
|
|
505
536
|
: t('CONTINUE', 'Continue'))
|
|
506
537
|
}
|
|
507
|
-
bgColor={theme.colors.primary}
|
|
508
538
|
textStyle={{
|
|
509
539
|
color: !user?.guest_id && (formState.loading || !isValid) ? theme.colors.primary : theme.colors.white,
|
|
510
540
|
fontSize: 14
|
|
511
541
|
}}
|
|
512
|
-
borderColor={theme.colors.primary}
|
|
513
542
|
isDisabled={!user?.guest_id && (formState.loading || !isValid)}
|
|
514
543
|
imgRightSrc={null}
|
|
515
544
|
style={{
|
|
@@ -523,10 +552,10 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
523
552
|
borderColor: !user?.guest_id && (formState.loading || !isValid) ? theme.colors.white : theme.colors.primary,
|
|
524
553
|
opacity: !user?.guest_id && (formState.loading || !isValid) ? 0.3 : 1,
|
|
525
554
|
}}
|
|
526
|
-
onClick={
|
|
555
|
+
onClick={handleSubmit(onSubmit)}
|
|
527
556
|
/>
|
|
528
557
|
)}
|
|
529
|
-
{isCheckout && !!user?.guest_id && (
|
|
558
|
+
{isCheckout && !!user?.guest_id && !requiredFields && (
|
|
530
559
|
<TouchableOpacity style={{ marginTop: 10 }} onPress={() => handlePlaceOrderAsGuest()}>
|
|
531
560
|
<OText color={theme.colors.primary} style={{ textAlign: 'center' }}>{t('PLACE_ORDER_AS_GUEST', 'Place order as guest')}</OText>
|
|
532
561
|
</TouchableOpacity>
|
|
@@ -556,4 +585,3 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
556
585
|
</>
|
|
557
586
|
);
|
|
558
587
|
};
|
|
559
|
-
|