ordering-ui-react-native 0.22.13 → 0.22.14-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 +2 -1
- 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 +40 -27
- 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 +46 -19
- package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
- package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +46 -21
- package/themes/business/src/components/OrderDetailsLogistic/index.tsx +3 -2
- package/themes/business/src/components/OrderSummary/index.tsx +7 -5
- 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 +16 -17
- 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/layouts/SafeAreaContainer.tsx +35 -19
- package/themes/business/src/types/index.tsx +13 -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/AnalyticsSegment/index.tsx +6 -6
- 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 +3 -3
- 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 +18 -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 -59
- 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 +13 -10
- 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 +5 -4
- 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 +74 -4
- 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) {
|
|
@@ -456,7 +505,7 @@ const CheckoutUI = (props: any) => {
|
|
|
456
505
|
<SafeAreaView style={{ backgroundColor: theme.colors.backgroundPage }}>
|
|
457
506
|
<View style={styles.wrapperNavbar}>
|
|
458
507
|
<TopHeader>
|
|
459
|
-
<TopActions onPress={() =>
|
|
508
|
+
<TopActions onPress={() => handleRedirect()}>
|
|
460
509
|
<IconAntDesign
|
|
461
510
|
name='arrowleft'
|
|
462
511
|
size={26}
|
|
@@ -482,7 +531,7 @@ const CheckoutUI = (props: any) => {
|
|
|
482
531
|
hideArrowLeft
|
|
483
532
|
title={t('CHECKOUT', 'Checkout')}
|
|
484
533
|
titleAlign={'center'}
|
|
485
|
-
onActionLeft={() =>
|
|
534
|
+
onActionLeft={() => handleRedirect()}
|
|
486
535
|
showCall={false}
|
|
487
536
|
btnStyle={{ paddingLeft: 0, paddingTop: Platform.OS == 'ios' ? 0 : 2 }}
|
|
488
537
|
titleWrapStyle={{ paddingHorizontal: 0 }}
|
|
@@ -619,15 +668,11 @@ const CheckoutUI = (props: any) => {
|
|
|
619
668
|
<HeaderTitle text={t('CUSTOMER_DETAILS', 'Customer details')} />
|
|
620
669
|
<OButton
|
|
621
670
|
text={t('SIGN_UP', 'Sign up')}
|
|
622
|
-
textStyle={{ color: theme.colors.white }}
|
|
623
671
|
style={{ borderRadius: 7.6, marginTop: 20 }}
|
|
624
672
|
onClick={() => setOpenModal({ ...openModal, signup: true })}
|
|
625
673
|
/>
|
|
626
674
|
<OButton
|
|
627
675
|
text={t('LOGIN', 'Login')}
|
|
628
|
-
textStyle={{ color: theme.colors.primary }}
|
|
629
|
-
bgColor={theme.colors.white}
|
|
630
|
-
borderColor={theme.colors.primary}
|
|
631
676
|
style={{ borderRadius: 7.6, marginTop: 20 }}
|
|
632
677
|
onClick={() => setOpenModal({ ...openModal, login: true })}
|
|
633
678
|
/>
|
|
@@ -652,6 +697,9 @@ const CheckoutUI = (props: any) => {
|
|
|
652
697
|
isCheckout
|
|
653
698
|
phoneUpdate={phoneUpdate}
|
|
654
699
|
togglePhoneUpdate={togglePhoneUpdate}
|
|
700
|
+
isOrderTypeValidationField
|
|
701
|
+
requiredFields={requiredFields}
|
|
702
|
+
checkoutFields={checkoutFields}
|
|
655
703
|
/>
|
|
656
704
|
)
|
|
657
705
|
)}
|
|
@@ -749,6 +797,7 @@ const CheckoutUI = (props: any) => {
|
|
|
749
797
|
</Placeholder>
|
|
750
798
|
) : (
|
|
751
799
|
<AddressDetails
|
|
800
|
+
cart={cart}
|
|
752
801
|
navigation={navigation}
|
|
753
802
|
location={options?.address?.location}
|
|
754
803
|
businessLogo={businessDetails?.business?.logo}
|
|
@@ -764,14 +813,7 @@ const CheckoutUI = (props: any) => {
|
|
|
764
813
|
</ChSection>
|
|
765
814
|
)}
|
|
766
815
|
|
|
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 &&
|
|
816
|
+
{driverTipsField &&
|
|
775
817
|
(
|
|
776
818
|
<ChSection>
|
|
777
819
|
<ChDriverTips>
|
|
@@ -909,6 +951,7 @@ const CheckoutUI = (props: any) => {
|
|
|
909
951
|
cart={cart}
|
|
910
952
|
isCartPending={cart?.status === 2}
|
|
911
953
|
onNavigationRedirect={onNavigationRedirect}
|
|
954
|
+
commentDelayTime={commentDelayTime}
|
|
912
955
|
placeSpotTypes={placeSpotTypes}
|
|
913
956
|
businessConfigs={businessConfigs}
|
|
914
957
|
maxDate={maxDate}
|
|
@@ -916,6 +959,8 @@ const CheckoutUI = (props: any) => {
|
|
|
916
959
|
creditPointPlanOnBusiness?.accumulation_rate ??
|
|
917
960
|
(!!creditPointPlanOnBusiness && creditPointPlan?.accumulation_rate) ?? 0
|
|
918
961
|
}
|
|
962
|
+
hideCommentsByValidationCheckout={!guestCheckoutComment?.enabled}
|
|
963
|
+
hideCouponByValidationCheckout={!guestCheckoutCoupon?.enabled}
|
|
919
964
|
/>
|
|
920
965
|
</>
|
|
921
966
|
)}
|
|
@@ -962,10 +1007,8 @@ const CheckoutUI = (props: any) => {
|
|
|
962
1007
|
{t('INVALID_CART_MOMENT', 'Selected schedule time is invalid, please select a schedule into the business schedule interval.')}
|
|
963
1008
|
</OText>
|
|
964
1009
|
)}
|
|
965
|
-
{
|
|
966
|
-
|
|
967
|
-
validationFields?.fields?.checkout?.driver_tip?.required &&
|
|
968
|
-
(Number(cart?.driver_tip) <= 0) && (
|
|
1010
|
+
{validateDriverTipField && !isGiftCardCart &&
|
|
1011
|
+
(
|
|
969
1012
|
<OText
|
|
970
1013
|
color={theme.colors.error}
|
|
971
1014
|
size={12}
|
|
@@ -973,7 +1016,6 @@ const CheckoutUI = (props: any) => {
|
|
|
973
1016
|
{t('WARNING_INVALID_DRIVER_TIP', 'Driver Tip is required.')}
|
|
974
1017
|
</OText>
|
|
975
1018
|
)}
|
|
976
|
-
|
|
977
1019
|
{validateCommentsCartField && (
|
|
978
1020
|
<OText
|
|
979
1021
|
color={theme.colors.error}
|
|
@@ -991,6 +1033,15 @@ const CheckoutUI = (props: any) => {
|
|
|
991
1033
|
{t('WARNING_CARD_ZIPCODE_REQUIRED', 'Your card selected has not zipcode')}
|
|
992
1034
|
</OText>
|
|
993
1035
|
)}
|
|
1036
|
+
{validateCouponField &&
|
|
1037
|
+
(
|
|
1038
|
+
<OText
|
|
1039
|
+
color={theme.colors.error}
|
|
1040
|
+
size={12}
|
|
1041
|
+
>
|
|
1042
|
+
{t('WARNING_INVALID_COUPON_FIELD', 'Coupon is required.')}
|
|
1043
|
+
</OText>
|
|
1044
|
+
)}
|
|
994
1045
|
</ChErrors>
|
|
995
1046
|
</View>
|
|
996
1047
|
)}
|
|
@@ -1008,20 +1059,23 @@ const CheckoutUI = (props: any) => {
|
|
|
1008
1059
|
<OModal
|
|
1009
1060
|
open={isOpen}
|
|
1010
1061
|
onClose={() => setIsOpen(false)}
|
|
1062
|
+
showToastInsideModal
|
|
1011
1063
|
>
|
|
1012
1064
|
<View style={styles.detailWrapper}>
|
|
1013
1065
|
<UserDetails
|
|
1014
1066
|
isUserDetailsEdit
|
|
1015
1067
|
cartStatus={cart?.status}
|
|
1016
1068
|
businessId={cart?.business_id}
|
|
1017
|
-
useValidationFields
|
|
1018
1069
|
useDefualtSessionManager
|
|
1019
1070
|
useSessionUser
|
|
1020
1071
|
isCheckout
|
|
1021
1072
|
isEdit
|
|
1022
1073
|
phoneUpdate={phoneUpdate}
|
|
1023
1074
|
togglePhoneUpdate={togglePhoneUpdate}
|
|
1075
|
+
isOrderTypeValidationField
|
|
1024
1076
|
requiredFields={requiredFields}
|
|
1077
|
+
checkoutFields={checkoutFields}
|
|
1078
|
+
isCheckoutPlace
|
|
1025
1079
|
hideUpdateButton
|
|
1026
1080
|
handlePlaceOrderAsGuest={handlePlaceOrderAsGuest}
|
|
1027
1081
|
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
|
+
}
|