ordering-ui-react-native 0.22.20 → 0.22.21-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 -7
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +40 -39
- package/src/components/StripeMethodForm/index.tsx +4 -2
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/context/OfflineActions/index.tsx +236 -0
- package/src/types/index.tsx +2 -1
- 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 +49 -26
- package/themes/business/src/components/FloatingButton/index.tsx +3 -2
- package/themes/business/src/components/GoogleMap/index.tsx +15 -8
- package/themes/business/src/components/LanguageSelector/index.tsx +2 -3
- package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
- package/themes/business/src/components/LogoutButton/index.tsx +1 -1
- package/themes/business/src/components/MapView/index.tsx +36 -17
- package/themes/business/src/components/NewOrderNotification/index.tsx +42 -28
- 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 +128 -41
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +45 -18
- 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 +217 -156
- package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
- package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +39 -16
- package/themes/business/src/components/PreviousOrders/index.tsx +74 -66
- 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 +55 -22
- 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 +16 -4
- package/themes/business/src/utils/index.tsx +33 -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 +6 -0
- 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/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +11 -0
- package/themes/original/src/components/AddressForm/index.tsx +32 -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/BusinessController/index.tsx +1 -1
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +13 -5
- 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 +46 -14
- package/themes/original/src/components/CartContent/index.tsx +2 -4
- package/themes/original/src/components/Checkout/index.tsx +113 -68
- 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 +3 -11
- package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
- package/themes/original/src/components/LoginForm/index.tsx +4 -7
- package/themes/original/src/components/MessageListing/index.tsx +2 -1
- package/themes/original/src/components/Messages/index.tsx +27 -19
- package/themes/original/src/components/MomentOption/TimeListItem.tsx +56 -0
- package/themes/original/src/components/MomentOption/index.tsx +80 -51
- package/themes/original/src/components/MomentSelector/index.tsx +5 -2
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
- 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 +29 -10
- 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 +0 -2
- package/themes/original/src/components/PhoneInputNumber/index.tsx +77 -6
- 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 +17 -20
- package/themes/original/src/components/ProductForm/index.tsx +107 -102
- package/themes/original/src/components/ProductItemAccordion/index.tsx +50 -43
- package/themes/original/src/components/ProductItemAccordion/styles.tsx +0 -3
- 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 +6 -9
- 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 +86 -78
- 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 +10 -3
- package/themes/original/src/components/StripeElementsForm/index.tsx +76 -62
- package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -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 +10 -7
- 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 +161 -134
- 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 +7 -2
- package/themes/original/src/utils/index.tsx +30 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
2
|
-
import { View } from 'react-native';
|
|
2
|
+
import { Vibration, View } from 'react-native';
|
|
3
3
|
import { useLanguage, useConfig, useUtils, useOrder } from 'ordering-components/native';
|
|
4
4
|
import { useTheme } from 'styled-components/native';
|
|
5
5
|
import { CCContainer, CCNotCarts, CCList, CheckoutAction, ChCartsTotal } from './styles';
|
|
@@ -39,6 +39,7 @@ export const CartContent = (props: any) => {
|
|
|
39
39
|
?.filter((cart: any) => cart?.status !== 1 && cart?.valid && cart?.products?.length)
|
|
40
40
|
?.reduce((total: any, cart: any) => { return total + (cart?.delivery_price_with_discount) }, 0)
|
|
41
41
|
const handleCheckoutRedirect = () => {
|
|
42
|
+
Vibration.vibrate(100)
|
|
42
43
|
if (cartsAvailable.length === 1) {
|
|
43
44
|
onNavigationRedirect('CheckoutNavigator', {
|
|
44
45
|
screen: 'CheckoutPage',
|
|
@@ -173,11 +174,8 @@ export const CartContent = (props: any) => {
|
|
|
173
174
|
<CheckoutAction style={{ marginTop: 0 }}>
|
|
174
175
|
<OButton
|
|
175
176
|
text={t('CHECKOUT', 'Checkout')}
|
|
176
|
-
bgColor={!cartsAvailable.length ? theme.colors.secundary : theme.colors.primary}
|
|
177
177
|
isDisabled={!cartsAvailable.length}
|
|
178
|
-
borderColor={theme.colors.primary}
|
|
179
178
|
imgRightSrc={null}
|
|
180
|
-
textStyle={{ color: 'white', textAlign: 'center', flex: 1 }}
|
|
181
179
|
onClick={() => handleCheckoutRedirect()}
|
|
182
180
|
style={{ width: '100%', flexDirection: 'row', justifyContent: 'center', borderRadius: 7.6, shadowOpacity: 0 }}
|
|
183
181
|
/>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useEffect, useCallback, useRef } from 'react';
|
|
1
|
+
import React, { useState, useEffect, useCallback, useRef, useMemo } from 'react';
|
|
2
2
|
import { View, StyleSheet, TouchableOpacity, Platform, I18nManager, ScrollView, Keyboard, BackHandler, SafeAreaView } from 'react-native';
|
|
3
3
|
import { initStripe, useConfirmPayment } from '@stripe/stripe-react-native';
|
|
4
4
|
import NativeStripeSdk from '@stripe/stripe-react-native/src/NativeStripeSdk'
|
|
@@ -7,7 +7,7 @@ import MaterialIcons from 'react-native-vector-icons/MaterialIcons'
|
|
|
7
7
|
import IconAntDesign from 'react-native-vector-icons/AntDesign';
|
|
8
8
|
import { useIsFocused } from '@react-navigation/native';
|
|
9
9
|
|
|
10
|
-
import ReactNativeHapticFeedback from "react-native-haptic-feedback";
|
|
10
|
+
import ReactNativeHapticFeedback, { HapticFeedbackTypes } from "react-native-haptic-feedback";
|
|
11
11
|
import {
|
|
12
12
|
Checkout as CheckoutController,
|
|
13
13
|
useOrder,
|
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
useApi,
|
|
16
16
|
useLanguage,
|
|
17
17
|
useUtils,
|
|
18
|
-
useValidationFields,
|
|
19
18
|
useConfig,
|
|
20
19
|
useToast,
|
|
21
20
|
ToastType,
|
|
@@ -103,7 +102,8 @@ const CheckoutUI = (props: any) => {
|
|
|
103
102
|
setPlaceSpotNumber,
|
|
104
103
|
maxDate,
|
|
105
104
|
androidAppId,
|
|
106
|
-
urlscheme
|
|
105
|
+
urlscheme,
|
|
106
|
+
checkoutFieldsState
|
|
107
107
|
} = props
|
|
108
108
|
|
|
109
109
|
const theme = useTheme();
|
|
@@ -145,12 +145,11 @@ const CheckoutUI = (props: any) => {
|
|
|
145
145
|
|
|
146
146
|
const [, { showToast }] = useToast();
|
|
147
147
|
const [, t] = useLanguage();
|
|
148
|
-
const [{ user, token }, { login }] = useSession();
|
|
148
|
+
const [{ user, token, loading: userLoading }, { login }] = useSession();
|
|
149
149
|
const [ordering] = useApi()
|
|
150
150
|
const [{ configs }] = useConfig();
|
|
151
151
|
const [{ parsePrice, parseDate }] = useUtils();
|
|
152
152
|
const [{ options, carts, loading }, { confirmCart }] = useOrder();
|
|
153
|
-
const [validationFields] = useValidationFields();
|
|
154
153
|
const [events] = useEvent()
|
|
155
154
|
const [orientationState] = useDeviceOrientation();
|
|
156
155
|
const [isReadMore, setIsReadMore] = useState(false)
|
|
@@ -167,6 +166,7 @@ const CheckoutUI = (props: any) => {
|
|
|
167
166
|
const [webviewPaymethod, setWebviewPaymethod] = useState<any>(null)
|
|
168
167
|
const [isOpen, setIsOpen] = useState(false)
|
|
169
168
|
const [requiredFields, setRequiredFields] = useState<any>([])
|
|
169
|
+
const [orderTypeValidationFields, setOrderTypeValidationFields] = useState<any>([])
|
|
170
170
|
const [openModal, setOpenModal] = useState({ login: false, signup: false, isGuest: false })
|
|
171
171
|
const [allowedGuest, setAllowedGuest] = useState(false)
|
|
172
172
|
const [placeByMethodPay, setPlaceByMethodPay] = useState(false)
|
|
@@ -177,7 +177,15 @@ const CheckoutUI = (props: any) => {
|
|
|
177
177
|
const [isGiftCardCart, setIsGiftCardCart] = useState(!cart?.business_id)
|
|
178
178
|
const containerRef = useRef<any>()
|
|
179
179
|
const cardsMethods = ['credomatic']
|
|
180
|
-
const stripePaymethods: any = ['stripe', '
|
|
180
|
+
const stripePaymethods: any = ['stripe', 'stripe_connect', 'stripe_redirect']
|
|
181
|
+
const notFields = ['coupon', 'driver_tip', 'mobile_phone', 'address', 'zipcode', 'address_notes', 'comments']
|
|
182
|
+
|
|
183
|
+
const checkoutFields = useMemo(() => checkoutFieldsState?.fields?.filter((field: any) => field.order_type_id === options?.type), [checkoutFieldsState, options])
|
|
184
|
+
const guestCheckoutDriveTip = useMemo(() => checkoutFields?.find((field: any) => field.order_type_id === 1 && field?.validation_field?.code === 'driver_tip'), [JSON.stringify(checkoutFields), options])
|
|
185
|
+
const guestCheckoutComment = useMemo(() => checkoutFields?.find((field: any) => field.order_type_id === options?.type && field?.validation_field?.code === 'comments'), [JSON.stringify(checkoutFields), options])
|
|
186
|
+
const guestCheckoutCoupon = useMemo(() => checkoutFields?.find((field: any) => field.order_type_id === options?.type && field?.validation_field?.code === 'coupon'), [JSON.stringify(checkoutFields), options])
|
|
187
|
+
const guestCheckoutZipcode = useMemo(() => checkoutFields?.find((field: any) => field.order_type_id === options?.type && field?.validation_field?.code === 'zipcode'), [JSON.stringify(checkoutFields), options])
|
|
188
|
+
|
|
181
189
|
const placeSpotTypes = [3, 4, 5]
|
|
182
190
|
const placeSpotsEnabled = placeSpotTypes.includes(options?.type)
|
|
183
191
|
const businessConfigs = businessDetails?.business?.configs ?? []
|
|
@@ -195,6 +203,7 @@ const CheckoutUI = (props: any) => {
|
|
|
195
203
|
const creditPointPlanOnBusiness = creditPointPlan?.businesses?.find((b: any) => b.business_id === cart?.business_id && b.accumulates)
|
|
196
204
|
const methodsPay = ['google_pay', 'apple_pay']
|
|
197
205
|
|
|
206
|
+
const commentDelayTime = 1500
|
|
198
207
|
const isPreOrder = configs?.preorder_status_enabled?.value === '1'
|
|
199
208
|
const subtotalWithTaxes = cart?.taxes?.reduce((acc: any, item: any) => {
|
|
200
209
|
if (item?.type === 1)
|
|
@@ -202,27 +211,28 @@ const CheckoutUI = (props: any) => {
|
|
|
202
211
|
return acc = acc
|
|
203
212
|
}, cart?.subtotal)
|
|
204
213
|
|
|
205
|
-
const validateCommentsCartField =
|
|
206
|
-
const
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
!paymethodSelected?.data?.card?.zipcode &&
|
|
210
|
-
paymethodSelected?.gateway === 'stripe'
|
|
214
|
+
const validateCommentsCartField = (guestCheckoutComment?.enabled && (user?.guest_id ? guestCheckoutComment?.required_with_guest : guestCheckoutComment?.required)) && (cart?.comment === null || cart?.comment?.trim().length === 0)
|
|
215
|
+
const validateDriverTipField = options.type === 1 && (guestCheckoutDriveTip?.enabled && (user?.guest_id ? guestCheckoutDriveTip?.required_with_guest : guestCheckoutDriveTip?.required)) && (Number(cart?.driver_tip) <= 0)
|
|
216
|
+
const validateCouponField = (guestCheckoutCoupon?.enabled && (user?.guest_id ? guestCheckoutCoupon?.required_with_guest : guestCheckoutCoupon?.required)) && !cart?.offers?.some((offer: any) => offer?.type === 2)
|
|
217
|
+
const validateZipcodeCard = (guestCheckoutZipcode?.enabled && (user?.guest_id ? guestCheckoutZipcode?.required_with_guest : guestCheckoutZipcode?.required)) && paymethodSelected?.gateway === 'stripe' && paymethodSelected?.data?.card && !paymethodSelected?.data?.card?.zipcode
|
|
211
218
|
|
|
212
219
|
const isDisabledButtonPlace = loading || !cart?.valid || (!paymethodSelected && cart?.balance > 0) ||
|
|
213
220
|
placing || errorCash || subtotalWithTaxes < cart?.minimum ||
|
|
214
221
|
(cardsMethods.includes(paymethodSelected?.gateway) && cardList?.cards?.length === 0) ||
|
|
215
|
-
(options.type === 1 && !isGiftCardCart &&
|
|
216
|
-
validationFields?.fields?.checkout?.driver_tip?.enabled &&
|
|
217
|
-
validationFields?.fields?.checkout?.driver_tip?.required &&
|
|
218
|
-
(Number(cart?.driver_tip) <= 0)) ||
|
|
219
222
|
(validateCommentsCartField) ||
|
|
220
|
-
(
|
|
221
|
-
|
|
223
|
+
(validateDriverTipField && !isGiftCardCart) ||
|
|
224
|
+
(validateZipcodeCard) ||
|
|
225
|
+
(methodsPay.includes(paymethodSelected?.gateway) && (!methodPaySupported.enabled || methodPaySupported.loading)) ||
|
|
226
|
+
validateCommentsCartField ||
|
|
227
|
+
validateDriverTipField ||
|
|
228
|
+
validateCouponField ||
|
|
229
|
+
validateZipcodeCard
|
|
230
|
+
|
|
222
231
|
|
|
223
232
|
const driverTipsOptions = typeof configs?.driver_tip_options?.value === 'string'
|
|
224
233
|
? JSON.parse(configs?.driver_tip_options?.value) || []
|
|
225
234
|
: configs?.driver_tip_options?.value || []
|
|
235
|
+
const driverTipsField = !cartState.loading && cart && cart?.business_id && options.type === 1 && cart?.status !== 2 && (guestCheckoutDriveTip?.enabled) && driverTipsOptions.length > 0
|
|
226
236
|
|
|
227
237
|
const configTypes = configs?.order_types_allowed?.value.split('|').map((value: any) => Number(value)) || []
|
|
228
238
|
|
|
@@ -243,7 +253,7 @@ const CheckoutUI = (props: any) => {
|
|
|
243
253
|
}
|
|
244
254
|
}
|
|
245
255
|
|
|
246
|
-
const vibrateApp = (impact?:
|
|
256
|
+
const vibrateApp = (impact?: HapticFeedbackTypes) => {
|
|
247
257
|
const options = {
|
|
248
258
|
enableVibrateFallback: true,
|
|
249
259
|
ignoreAndroidSystemSettings: false
|
|
@@ -270,7 +280,7 @@ const CheckoutUI = (props: any) => {
|
|
|
270
280
|
return
|
|
271
281
|
}
|
|
272
282
|
|
|
273
|
-
if (!userErrors.length && (!requiredFields?.length
|
|
283
|
+
if (!userErrors.length && (!requiredFields?.length) || forcePlace) {
|
|
274
284
|
vibrateApp()
|
|
275
285
|
handlerClickPlaceOrder && handlerClickPlaceOrder(null, { isNative: true }, confirmPayment, NativeStripeSdk?.dismissPlatformPay)
|
|
276
286
|
return
|
|
@@ -309,35 +319,65 @@ const CheckoutUI = (props: any) => {
|
|
|
309
319
|
|
|
310
320
|
const checkValidationFields = () => {
|
|
311
321
|
setUserErrors([])
|
|
312
|
-
const errors = []
|
|
313
|
-
const
|
|
314
|
-
const _requiredFields:
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
322
|
+
const errors: Array<string> = []
|
|
323
|
+
const userSelected = user
|
|
324
|
+
const _requiredFields: Array<string> = []
|
|
325
|
+
Object.values(checkoutFieldsState?.fields).map((field: any) => {
|
|
326
|
+
if (options?.type === field?.order_type_id &&
|
|
327
|
+
field?.enabled &&
|
|
328
|
+
field?.required &&
|
|
329
|
+
!notFields.includes(field?.validation_field?.code)
|
|
330
|
+
) {
|
|
331
|
+
if (userSelected && !userSelected[field?.validation_field?.code]) {
|
|
332
|
+
_requiredFields.push(field?.validation_field?.code)
|
|
320
333
|
}
|
|
321
334
|
}
|
|
322
335
|
})
|
|
323
|
-
|
|
336
|
+
const mobilePhoneField: any = Object.values(checkoutFieldsState?.fields)?.find((field: any) => field?.order_type_id === options?.type && field?.validation_field?.code === 'mobile_phone')
|
|
324
337
|
if (
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
338
|
+
userSelected &&
|
|
339
|
+
!userSelected?.cellphone &&
|
|
340
|
+
((mobilePhoneField?.enabled &&
|
|
341
|
+
mobilePhoneField?.required) ||
|
|
328
342
|
configs?.verification_phone_required?.value === '1')
|
|
329
343
|
) {
|
|
330
344
|
_requiredFields.push('cellphone')
|
|
331
345
|
}
|
|
332
346
|
setRequiredFields(_requiredFields)
|
|
333
347
|
|
|
334
|
-
if (phoneUpdate) {
|
|
335
|
-
errors.push(t('NECESSARY_UPDATE_COUNTRY_PHONE_CODE', 'It is necessary to update your phone number'))
|
|
336
|
-
}
|
|
337
|
-
|
|
338
348
|
setUserErrors(errors)
|
|
339
349
|
}
|
|
340
350
|
|
|
351
|
+
const checkGuestValidationFields = () => {
|
|
352
|
+
const userSelected = user
|
|
353
|
+
const _requiredFields = checkoutFieldsState?.fields
|
|
354
|
+
.filter((field: any) => (field?.order_type_id === options?.type) && field?.enabled && field?.required_with_guest &&
|
|
355
|
+
!notFields.includes(field?.validation_field?.code) &&
|
|
356
|
+
field?.validation_field?.code !== 'email' &&
|
|
357
|
+
userSelected && !userSelected[field?.validation_field?.code])
|
|
358
|
+
const requiredFieldsCode = _requiredFields.map((item: any) => item?.validation_field?.code)
|
|
359
|
+
const guestCheckoutCellPhone = checkoutFieldsState?.fields?.find((field: any) => field.order_type_id === options?.type && field?.validation_field?.code === 'mobile_phone')
|
|
360
|
+
const guestCheckoutEmail = checkoutFieldsState?.fields?.find((field: any) => field.order_type_id === options?.type && field?.validation_field?.code === 'email')
|
|
361
|
+
if (
|
|
362
|
+
userSelected &&
|
|
363
|
+
!userSelected?.guest_cellphone &&
|
|
364
|
+
((guestCheckoutCellPhone?.enabled &&
|
|
365
|
+
guestCheckoutCellPhone?.required_with_guest) ||
|
|
366
|
+
configs?.verification_phone_required?.value === '1')
|
|
367
|
+
) {
|
|
368
|
+
requiredFieldsCode.push('cellphone')
|
|
369
|
+
}
|
|
370
|
+
if (
|
|
371
|
+
userSelected &&
|
|
372
|
+
!userSelected?.guest_email &&
|
|
373
|
+
guestCheckoutEmail?.enabled &&
|
|
374
|
+
guestCheckoutEmail?.required_with_guest
|
|
375
|
+
) {
|
|
376
|
+
requiredFieldsCode.push('email')
|
|
377
|
+
}
|
|
378
|
+
setRequiredFields(requiredFieldsCode)
|
|
379
|
+
}
|
|
380
|
+
|
|
341
381
|
const togglePhoneUpdate = (val: boolean) => {
|
|
342
382
|
setPhoneUpdate(val)
|
|
343
383
|
}
|
|
@@ -346,11 +386,20 @@ const CheckoutUI = (props: any) => {
|
|
|
346
386
|
setShowTitle(contentOffset.y > 30)
|
|
347
387
|
}
|
|
348
388
|
|
|
389
|
+
const handleRedirect = () => {
|
|
390
|
+
props.fromProductsList
|
|
391
|
+
? navigation?.goBack()
|
|
392
|
+
: onNavigationRedirect('BottomTab', { screen: 'Cart' }, !props.fromMulti)
|
|
393
|
+
}
|
|
394
|
+
|
|
349
395
|
useEffect(() => {
|
|
350
|
-
if (
|
|
396
|
+
if (checkoutFieldsState?.loading || userLoading) return
|
|
397
|
+
if (user?.guest_id) {
|
|
398
|
+
checkGuestValidationFields()
|
|
399
|
+
} else {
|
|
351
400
|
checkValidationFields()
|
|
352
401
|
}
|
|
353
|
-
}, [
|
|
402
|
+
}, [checkoutFieldsState, user, options?.type])
|
|
354
403
|
|
|
355
404
|
useEffect(() => {
|
|
356
405
|
if (errors) {
|
|
@@ -427,15 +476,6 @@ const CheckoutUI = (props: any) => {
|
|
|
427
476
|
}
|
|
428
477
|
}, [cartState?.error, cartState?.cart, cartState?.loading, isFocused])
|
|
429
478
|
|
|
430
|
-
useEffect(() => {
|
|
431
|
-
const keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', () => {
|
|
432
|
-
containerRef?.current?.scrollToEnd && containerRef.current.scrollToEnd({ animated: true })
|
|
433
|
-
})
|
|
434
|
-
return () => {
|
|
435
|
-
keyboardDidShowListener.remove()
|
|
436
|
-
}
|
|
437
|
-
}, [])
|
|
438
|
-
|
|
439
479
|
useEffect(() => {
|
|
440
480
|
const onBackFunction = () => {
|
|
441
481
|
if (webviewPaymethod?.gateway === 'paypal' && showGateway.open) {
|
|
@@ -456,7 +496,7 @@ const CheckoutUI = (props: any) => {
|
|
|
456
496
|
<SafeAreaView style={{ backgroundColor: theme.colors.backgroundPage }}>
|
|
457
497
|
<View style={styles.wrapperNavbar}>
|
|
458
498
|
<TopHeader>
|
|
459
|
-
<TopActions onPress={() =>
|
|
499
|
+
<TopActions onPress={() => handleRedirect()}>
|
|
460
500
|
<IconAntDesign
|
|
461
501
|
name='arrowleft'
|
|
462
502
|
size={26}
|
|
@@ -482,7 +522,7 @@ const CheckoutUI = (props: any) => {
|
|
|
482
522
|
hideArrowLeft
|
|
483
523
|
title={t('CHECKOUT', 'Checkout')}
|
|
484
524
|
titleAlign={'center'}
|
|
485
|
-
onActionLeft={() =>
|
|
525
|
+
onActionLeft={() => handleRedirect()}
|
|
486
526
|
showCall={false}
|
|
487
527
|
btnStyle={{ paddingLeft: 0, paddingTop: Platform.OS == 'ios' ? 0 : 2 }}
|
|
488
528
|
titleWrapStyle={{ paddingHorizontal: 0 }}
|
|
@@ -619,15 +659,11 @@ const CheckoutUI = (props: any) => {
|
|
|
619
659
|
<HeaderTitle text={t('CUSTOMER_DETAILS', 'Customer details')} />
|
|
620
660
|
<OButton
|
|
621
661
|
text={t('SIGN_UP', 'Sign up')}
|
|
622
|
-
textStyle={{ color: theme.colors.white }}
|
|
623
662
|
style={{ borderRadius: 7.6, marginTop: 20 }}
|
|
624
663
|
onClick={() => setOpenModal({ ...openModal, signup: true })}
|
|
625
664
|
/>
|
|
626
665
|
<OButton
|
|
627
666
|
text={t('LOGIN', 'Login')}
|
|
628
|
-
textStyle={{ color: theme.colors.primary }}
|
|
629
|
-
bgColor={theme.colors.white}
|
|
630
|
-
borderColor={theme.colors.primary}
|
|
631
667
|
style={{ borderRadius: 7.6, marginTop: 20 }}
|
|
632
668
|
onClick={() => setOpenModal({ ...openModal, login: true })}
|
|
633
669
|
/>
|
|
@@ -652,6 +688,9 @@ const CheckoutUI = (props: any) => {
|
|
|
652
688
|
isCheckout
|
|
653
689
|
phoneUpdate={phoneUpdate}
|
|
654
690
|
togglePhoneUpdate={togglePhoneUpdate}
|
|
691
|
+
isOrderTypeValidationField
|
|
692
|
+
requiredFields={requiredFields}
|
|
693
|
+
checkoutFields={checkoutFields}
|
|
655
694
|
/>
|
|
656
695
|
)
|
|
657
696
|
)}
|
|
@@ -749,6 +788,7 @@ const CheckoutUI = (props: any) => {
|
|
|
749
788
|
</Placeholder>
|
|
750
789
|
) : (
|
|
751
790
|
<AddressDetails
|
|
791
|
+
cart={cart}
|
|
752
792
|
navigation={navigation}
|
|
753
793
|
location={options?.address?.location}
|
|
754
794
|
businessLogo={businessDetails?.business?.logo}
|
|
@@ -764,14 +804,7 @@ const CheckoutUI = (props: any) => {
|
|
|
764
804
|
</ChSection>
|
|
765
805
|
)}
|
|
766
806
|
|
|
767
|
-
{
|
|
768
|
-
cart &&
|
|
769
|
-
cart?.valid &&
|
|
770
|
-
options.type === 1 &&
|
|
771
|
-
cart?.status !== 2 &&
|
|
772
|
-
validationFields?.fields?.checkout?.driver_tip?.enabled &&
|
|
773
|
-
driverTipsOptions && driverTipsOptions?.length > 0 &&
|
|
774
|
-
cart?.business_id &&
|
|
807
|
+
{driverTipsField &&
|
|
775
808
|
(
|
|
776
809
|
<ChSection>
|
|
777
810
|
<ChDriverTips>
|
|
@@ -909,6 +942,7 @@ const CheckoutUI = (props: any) => {
|
|
|
909
942
|
cart={cart}
|
|
910
943
|
isCartPending={cart?.status === 2}
|
|
911
944
|
onNavigationRedirect={onNavigationRedirect}
|
|
945
|
+
commentDelayTime={commentDelayTime}
|
|
912
946
|
placeSpotTypes={placeSpotTypes}
|
|
913
947
|
businessConfigs={businessConfigs}
|
|
914
948
|
maxDate={maxDate}
|
|
@@ -916,6 +950,8 @@ const CheckoutUI = (props: any) => {
|
|
|
916
950
|
creditPointPlanOnBusiness?.accumulation_rate ??
|
|
917
951
|
(!!creditPointPlanOnBusiness && creditPointPlan?.accumulation_rate) ?? 0
|
|
918
952
|
}
|
|
953
|
+
hideCommentsByValidationCheckout={!guestCheckoutComment?.enabled}
|
|
954
|
+
hideCouponByValidationCheckout={!guestCheckoutCoupon?.enabled}
|
|
919
955
|
/>
|
|
920
956
|
</>
|
|
921
957
|
)}
|
|
@@ -962,10 +998,8 @@ const CheckoutUI = (props: any) => {
|
|
|
962
998
|
{t('INVALID_CART_MOMENT', 'Selected schedule time is invalid, please select a schedule into the business schedule interval.')}
|
|
963
999
|
</OText>
|
|
964
1000
|
)}
|
|
965
|
-
{
|
|
966
|
-
|
|
967
|
-
validationFields?.fields?.checkout?.driver_tip?.required &&
|
|
968
|
-
(Number(cart?.driver_tip) <= 0) && (
|
|
1001
|
+
{validateDriverTipField && !isGiftCardCart &&
|
|
1002
|
+
(
|
|
969
1003
|
<OText
|
|
970
1004
|
color={theme.colors.error}
|
|
971
1005
|
size={12}
|
|
@@ -973,7 +1007,6 @@ const CheckoutUI = (props: any) => {
|
|
|
973
1007
|
{t('WARNING_INVALID_DRIVER_TIP', 'Driver Tip is required.')}
|
|
974
1008
|
</OText>
|
|
975
1009
|
)}
|
|
976
|
-
|
|
977
1010
|
{validateCommentsCartField && (
|
|
978
1011
|
<OText
|
|
979
1012
|
color={theme.colors.error}
|
|
@@ -991,6 +1024,15 @@ const CheckoutUI = (props: any) => {
|
|
|
991
1024
|
{t('WARNING_CARD_ZIPCODE_REQUIRED', 'Your card selected has not zipcode')}
|
|
992
1025
|
</OText>
|
|
993
1026
|
)}
|
|
1027
|
+
{validateCouponField &&
|
|
1028
|
+
(
|
|
1029
|
+
<OText
|
|
1030
|
+
color={theme.colors.error}
|
|
1031
|
+
size={12}
|
|
1032
|
+
>
|
|
1033
|
+
{t('WARNING_INVALID_COUPON_FIELD', 'Coupon is required.')}
|
|
1034
|
+
</OText>
|
|
1035
|
+
)}
|
|
994
1036
|
</ChErrors>
|
|
995
1037
|
</View>
|
|
996
1038
|
)}
|
|
@@ -1008,20 +1050,23 @@ const CheckoutUI = (props: any) => {
|
|
|
1008
1050
|
<OModal
|
|
1009
1051
|
open={isOpen}
|
|
1010
1052
|
onClose={() => setIsOpen(false)}
|
|
1053
|
+
showToastInsideModal
|
|
1011
1054
|
>
|
|
1012
1055
|
<View style={styles.detailWrapper}>
|
|
1013
1056
|
<UserDetails
|
|
1014
1057
|
isUserDetailsEdit
|
|
1015
1058
|
cartStatus={cart?.status}
|
|
1016
1059
|
businessId={cart?.business_id}
|
|
1017
|
-
useValidationFields
|
|
1018
1060
|
useDefualtSessionManager
|
|
1019
1061
|
useSessionUser
|
|
1020
1062
|
isCheckout
|
|
1021
1063
|
isEdit
|
|
1022
1064
|
phoneUpdate={phoneUpdate}
|
|
1023
1065
|
togglePhoneUpdate={togglePhoneUpdate}
|
|
1066
|
+
isOrderTypeValidationField
|
|
1024
1067
|
requiredFields={requiredFields}
|
|
1068
|
+
checkoutFields={checkoutFields}
|
|
1069
|
+
isCheckoutPlace
|
|
1025
1070
|
hideUpdateButton
|
|
1026
1071
|
handlePlaceOrderAsGuest={handlePlaceOrderAsGuest}
|
|
1027
1072
|
onClose={() => {
|
|
@@ -69,10 +69,7 @@ export const CitiesControl = (props: any) => {
|
|
|
69
69
|
</View>
|
|
70
70
|
<OButton
|
|
71
71
|
text={t('CONTINUE', 'Continue')}
|
|
72
|
-
bgColor={theme.colors.primary}
|
|
73
|
-
borderColor={theme.colors.primary}
|
|
74
72
|
style={styles.btnStyle}
|
|
75
|
-
textStyle={{ color: 'white' }}
|
|
76
73
|
onClick={() => handleClick()}
|
|
77
74
|
/>
|
|
78
75
|
</Container>
|
|
@@ -102,9 +102,7 @@ const CouponControlUI = (props: any) => {
|
|
|
102
102
|
/>
|
|
103
103
|
<OButton
|
|
104
104
|
onClick={() => onButtonApplyClick()}
|
|
105
|
-
|
|
106
|
-
borderColor={theme.colors.primary}
|
|
107
|
-
textStyle={{ color: 'white', fontSize: 12 }}
|
|
105
|
+
textStyle={{ fontSize: 12 }}
|
|
108
106
|
imgRightSrc={null}
|
|
109
107
|
text={t('APPLY', 'Apply')}
|
|
110
108
|
isDisabled={!couponInput}
|
|
@@ -125,9 +125,7 @@ const DriverTipsUI = (props: any) => {
|
|
|
125
125
|
/>
|
|
126
126
|
<OButton
|
|
127
127
|
text={t('APPLY_TIP', 'Apply Tip')}
|
|
128
|
-
|
|
129
|
-
borderColor={theme.colors.primary}
|
|
130
|
-
textStyle={{ color: 'white', fontSize: 14 }}
|
|
128
|
+
textStyle={{ fontSize: 14 }}
|
|
131
129
|
imgRightSrc={null}
|
|
132
130
|
style={{ borderRadius: 5, height: 44 }}
|
|
133
131
|
isDisabled={parseFloat(value || '0') < 0 || parseFloat(value || '0') === driverTip || value === ''}
|
|
@@ -14,8 +14,7 @@ import {
|
|
|
14
14
|
|
|
15
15
|
export const Favorite = (props: any) => {
|
|
16
16
|
const {
|
|
17
|
-
navigation
|
|
18
|
-
franchiseId
|
|
17
|
+
navigation
|
|
19
18
|
} = props
|
|
20
19
|
const [, t] = useLanguage()
|
|
21
20
|
const theme = useTheme()
|
|
@@ -72,7 +71,6 @@ export const Favorite = (props: any) => {
|
|
|
72
71
|
originalURL='business'
|
|
73
72
|
location={`${orderState.options?.address?.location?.lat},${orderState.options?.address?.location?.lng}`}
|
|
74
73
|
propsToFetch={['id', 'name', 'header', 'logo', 'location', 'address', 'ribbon', 'timezone', 'schedule', 'open', 'delivery_price', 'distance', 'delivery_time', 'pickup_time', 'reviews', 'featured', 'offers', 'food', 'laundry', 'alcohol', 'groceries', 'slug']}
|
|
75
|
-
franchiseId={franchiseId}
|
|
76
74
|
/>
|
|
77
75
|
)}
|
|
78
76
|
{tabSelected === 'products' && (
|
|
@@ -81,7 +79,6 @@ export const Favorite = (props: any) => {
|
|
|
81
79
|
originalURL='products'
|
|
82
80
|
onNavigationRedirect={onRedirect}
|
|
83
81
|
isProduct
|
|
84
|
-
franchiseId={franchiseId}
|
|
85
82
|
/>
|
|
86
83
|
)}
|
|
87
84
|
{tabSelected === 'orders' && (
|
|
@@ -90,7 +87,6 @@ export const Favorite = (props: any) => {
|
|
|
90
87
|
favoriteURL='favorite_orders'
|
|
91
88
|
originalURL='orders'
|
|
92
89
|
isOrder
|
|
93
|
-
franchiseId={franchiseId}
|
|
94
90
|
/>
|
|
95
91
|
)}
|
|
96
92
|
</Container>
|
|
@@ -270,7 +270,6 @@ const FavoriteListUI = (props: FavoriteParams) => {
|
|
|
270
270
|
onClick={() => getFavoriteList(pagination?.currentPage + 1)}
|
|
271
271
|
text={t('LOAD_MORE_ITEMS', 'Load more items')}
|
|
272
272
|
imgRightSrc={null}
|
|
273
|
-
textStyle={{ color: theme.colors.white }}
|
|
274
273
|
style={{ borderRadius: 7.6, shadowOpacity: 0, marginTop: 20 }}
|
|
275
274
|
/>
|
|
276
275
|
</WrappButton>
|
|
@@ -64,7 +64,7 @@ const ForgotPasswordUI = (props: any) => {
|
|
|
64
64
|
handleReCaptcha(null)
|
|
65
65
|
if (reCaptchaValue) return
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
if (!recaptchaConfig?.siteKey) {
|
|
68
68
|
showToast(ToastType.Error, t('NO_RECAPTCHA_SITE_KEY', 'The config doesn\'t have recaptcha site key'));
|
|
69
69
|
return
|
|
70
70
|
}
|
|
@@ -73,7 +73,7 @@ const ForgotPasswordUI = (props: any) => {
|
|
|
73
73
|
return
|
|
74
74
|
}
|
|
75
75
|
recaptchaRef.current.open()
|
|
76
|
-
|
|
76
|
+
}
|
|
77
77
|
|
|
78
78
|
const onRecaptchaVerify = (token: any) => {
|
|
79
79
|
setRecaptchaVerified(true)
|
|
@@ -92,8 +92,8 @@ const ForgotPasswordUI = (props: any) => {
|
|
|
92
92
|
formState.result?.result && showToast(
|
|
93
93
|
ToastType.Error,
|
|
94
94
|
typeof formState.result?.result === 'string'
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
? formState.result?.result
|
|
96
|
+
: formState.result?.result[0]
|
|
97
97
|
)
|
|
98
98
|
return
|
|
99
99
|
}
|
|
@@ -208,9 +208,7 @@ const ForgotPasswordUI = (props: any) => {
|
|
|
208
208
|
|
|
209
209
|
<OButton
|
|
210
210
|
text={emailSent && !formState.result?.error ? t('LINK_SEND_FORGOT_PASSWORD', 'Link Sent') : t('FRONT_RECOVER_PASSWORD', 'Recover Password')}
|
|
211
|
-
|
|
212
|
-
bgColor={emailSent && !formState.result?.error ? theme.colors.disabled : theme.colors.primary}
|
|
213
|
-
borderColor={emailSent && !formState.result?.error ? theme.colors.disabled : theme.colors.primary}
|
|
211
|
+
isDisabled={formState.loading || emailSent && !formState.result?.error}
|
|
214
212
|
isLoading={formState.loading}
|
|
215
213
|
imgRightSrc={null}
|
|
216
214
|
onClick={emailSent && !formState.result?.error ? () => { } : handleSubmit(onSubmit)}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
Container
|
|
13
13
|
} from './styles'
|
|
14
14
|
|
|
15
|
-
export const GiftCardUI =
|
|
15
|
+
export const GiftCardUI = React.memo((props: any) => {
|
|
16
16
|
const {
|
|
17
17
|
navigation
|
|
18
18
|
} = props
|
|
@@ -57,9 +57,7 @@ export const GiftCardUI = React.memo((props: any) => {
|
|
|
57
57
|
<OButton
|
|
58
58
|
onClick={() => setOpenModal('purchase')}
|
|
59
59
|
text={t('PURCHASE', 'Purchase')}
|
|
60
|
-
|
|
61
|
-
borderColor={theme.colors.primary}
|
|
62
|
-
textStyle={{ color: 'white', fontSize: 13 }}
|
|
60
|
+
textStyle={{ fontSize: 13 }}
|
|
63
61
|
imgRightSrc={null}
|
|
64
62
|
style={{ ...style.btnStyle, marginRight: 14 }}
|
|
65
63
|
/>
|
|
@@ -76,26 +74,26 @@ export const GiftCardUI = React.memo((props: any) => {
|
|
|
76
74
|
</View>
|
|
77
75
|
|
|
78
76
|
<OModal
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
open={openModal === 'purchase'}
|
|
78
|
+
onClose={() => setOpenModal(null)}
|
|
79
|
+
entireModal
|
|
82
80
|
customClose
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
>
|
|
82
|
+
<PurchaseGiftCard
|
|
85
83
|
handleCustomGoToCheckout={handleCustomGoToCheckout}
|
|
86
84
|
onClose={() => setOpenModal(null)}
|
|
87
85
|
/>
|
|
88
|
-
|
|
86
|
+
</OModal>
|
|
89
87
|
<OModal
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
open={openModal === 'redeem'}
|
|
89
|
+
onClose={() => setOpenModal(null)}
|
|
90
|
+
entireModal
|
|
93
91
|
customClose
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
>
|
|
93
|
+
<RedeemGiftCard
|
|
96
94
|
onClose={() => setOpenModal(null)}
|
|
97
95
|
/>
|
|
98
|
-
|
|
96
|
+
</OModal>
|
|
99
97
|
</Container>
|
|
100
98
|
)
|
|
101
|
-
})
|
|
99
|
+
})
|
|
@@ -58,12 +58,10 @@ const PurchaseGiftCardUI = (props: any) => {
|
|
|
58
58
|
borderWidth: 0,
|
|
59
59
|
width: 26,
|
|
60
60
|
height: 26,
|
|
61
|
-
backgroundColor: '#FFF',
|
|
62
|
-
borderColor: '#FFF',
|
|
63
|
-
shadowColor: '#FFF',
|
|
64
61
|
paddingLeft: 0,
|
|
65
62
|
paddingRight: 0,
|
|
66
63
|
}}
|
|
64
|
+
useArrow
|
|
67
65
|
onClick={onClose}
|
|
68
66
|
icon={AntDesignIcon}
|
|
69
67
|
iconProps={{
|
|
@@ -113,9 +111,7 @@ const PurchaseGiftCardUI = (props: any) => {
|
|
|
113
111
|
<OButton
|
|
114
112
|
onClick={() => handleAccept()}
|
|
115
113
|
text={t('ACCEPT', 'Accept')}
|
|
116
|
-
|
|
117
|
-
borderColor={theme.colors.primary}
|
|
118
|
-
textStyle={{ color: 'white', fontSize: 13 }}
|
|
114
|
+
textStyle={{ fontSize: 13 }}
|
|
119
115
|
imgRightSrc={null}
|
|
120
116
|
style={style.btnStyle}
|
|
121
117
|
isDisabled={!selectedProduct}
|
|
@@ -130,4 +126,4 @@ export const PurchaseGiftCard = (props: any) => {
|
|
|
130
126
|
UIComponent: PurchaseGiftCardUI
|
|
131
127
|
}
|
|
132
128
|
return <PurchaseGiftCardController {...purchaseGiftCardProps} />
|
|
133
|
-
}
|
|
129
|
+
}
|