ordering-ui-react-native 0.22.51-test1 → 0.22.52-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 +5 -7
- package/src/DeliveryApp.tsx +1 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +40 -39
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/context/OfflineActions/index.tsx +236 -0
- package/src/providers/AlertProvider.tsx +3 -1
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -6
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
- package/themes/business/src/components/BusinessController/index.tsx +8 -3
- package/themes/business/src/components/BusinessProductList/index.tsx +3 -2
- package/themes/business/src/components/Chat/index.tsx +15 -3
- package/themes/business/src/components/DriverMap/index.tsx +44 -33
- package/themes/business/src/components/FloatingButton/index.tsx +3 -2
- package/themes/business/src/components/LanguageSelector/index.tsx +1 -1
- package/themes/business/src/components/LoginForm/index.tsx +123 -98
- package/themes/business/src/components/LogoutButton/index.tsx +13 -4
- package/themes/business/src/components/MapView/index.tsx +42 -25
- package/themes/business/src/components/NewOrderNotification/index.tsx +37 -18
- package/themes/business/src/components/OrderDetails/Business.tsx +56 -20
- package/themes/business/src/components/OrderDetails/Delivery.tsx +134 -53
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +155 -45
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +51 -28
- package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
- package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +17 -16
- package/themes/business/src/components/OrderDetailsLogistic/index.tsx +3 -2
- package/themes/business/src/components/OrderSummary/index.tsx +271 -176
- package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
- package/themes/business/src/components/OrdersOption/index.tsx +345 -231
- package/themes/business/src/components/OrdersOption/styles.tsx +14 -0
- package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +30 -18
- package/themes/business/src/components/PreviousOrders/index.tsx +74 -66
- package/themes/business/src/components/PreviousOrders/styles.tsx +2 -1
- package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
- package/themes/business/src/components/PrinterEdition/index.tsx +143 -75
- package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
- package/themes/business/src/components/PrinterSettings/index.tsx +1 -1
- package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
- package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
- package/themes/business/src/components/StoresList/index.tsx +2 -2
- package/themes/business/src/components/UserProfileForm/index.tsx +48 -10
- package/themes/business/src/components/UserProfileForm/styles.tsx +7 -0
- package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
- package/themes/business/src/components/shared/OTextarea.tsx +8 -9
- package/themes/business/src/config/currency.tsx +1010 -0
- package/themes/business/src/hooks/useLocation.tsx +16 -12
- package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
- package/themes/business/src/types/index.tsx +22 -7
- package/themes/business/src/utils/index.tsx +28 -3
- package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
- package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/kiosk/src/components/Checkout/index.tsx +9 -5
- package/themes/kiosk/src/components/CustomerName/index.tsx +1 -1
- package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
- package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
- package/themes/kiosk/src/components/PaymentOptions/index.tsx +121 -57
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +9 -1
- package/themes/original/src/components/AddressForm/index.tsx +19 -19
- package/themes/original/src/components/AddressList/index.tsx +0 -13
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +1 -1
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +14 -6
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +103 -92
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +8 -6
- package/themes/original/src/components/BusinessListingSearch/index.tsx +1 -2
- package/themes/original/src/components/BusinessPreorder/index.tsx +46 -30
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +73 -70
- package/themes/original/src/components/BusinessProductsList/index.tsx +6 -7
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +10 -6
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
- package/themes/original/src/components/Cart/index.tsx +49 -15
- package/themes/original/src/components/CartContent/index.tsx +2 -4
- package/themes/original/src/components/Checkout/index.tsx +109 -88
- package/themes/original/src/components/CitiesControl/index.tsx +0 -3
- package/themes/original/src/components/CouponControl/index.tsx +1 -3
- package/themes/original/src/components/DriverTips/index.tsx +1 -3
- package/themes/original/src/components/Favorite/index.tsx +1 -10
- package/themes/original/src/components/FavoriteList/index.tsx +0 -1
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -12
- package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
- package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
- package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +7 -9
- package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +11 -12
- package/themes/original/src/components/GoogleMap/index.tsx +39 -18
- package/themes/original/src/components/Help/index.tsx +0 -5
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +0 -5
- package/themes/original/src/components/HelpGuide/index.tsx +0 -5
- package/themes/original/src/components/HelpOrder/index.tsx +0 -5
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
- package/themes/original/src/components/Home/index.tsx +35 -19
- package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
- package/themes/original/src/components/LoginForm/index.tsx +12 -14
- package/themes/original/src/components/MessageListing/index.tsx +1 -6
- package/themes/original/src/components/Messages/index.tsx +20 -13
- package/themes/original/src/components/MomentOption/TimeListItem.tsx +56 -0
- package/themes/original/src/components/MomentOption/index.tsx +73 -63
- package/themes/original/src/components/MomentSelector/index.tsx +5 -2
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +1 -0
- package/themes/original/src/components/MultiCheckout/index.tsx +55 -27
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +1 -0
- package/themes/original/src/components/MyOrders/index.tsx +2 -7
- package/themes/original/src/components/NavBar/index.tsx +7 -6
- package/themes/original/src/components/NetworkError/index.tsx +0 -5
- package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
- package/themes/original/src/components/Notifications/index.tsx +0 -5
- package/themes/original/src/components/OrderDetails/OrderEta.tsx +4 -3
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +16 -11
- package/themes/original/src/components/OrderDetails/index.tsx +44 -21
- package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
- package/themes/original/src/components/OrderProgress/index.tsx +4 -3
- package/themes/original/src/components/OrderSummary/index.tsx +32 -11
- package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -11
- package/themes/original/src/components/OrdersOption/index.tsx +3 -6
- package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +462 -461
- package/themes/original/src/components/PhoneInputNumber/index.tsx +92 -7
- package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
- package/themes/original/src/components/PreviousOrders/index.tsx +1 -4
- package/themes/original/src/components/ProductForm/ActionButton.tsx +7 -12
- package/themes/original/src/components/ProductItemAccordion/index.tsx +28 -37
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
- package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
- package/themes/original/src/components/Promotions/index.tsx +2 -7
- package/themes/original/src/components/ReviewDriver/index.tsx +1 -6
- package/themes/original/src/components/ReviewOrder/index.tsx +2 -7
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -6
- package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
- package/themes/original/src/components/ServiceForm/index.tsx +53 -55
- package/themes/original/src/components/Sessions/index.tsx +3 -8
- package/themes/original/src/components/SignupForm/index.tsx +44 -37
- package/themes/original/src/components/SingleOrderCard/index.tsx +7 -5
- package/themes/original/src/components/SingleProductCard/index.tsx +3 -4
- package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
- package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
- package/themes/original/src/components/StripeCardsList/index.tsx +16 -3
- package/themes/original/src/components/StripeElementsForm/index.tsx +6 -4
- package/themes/original/src/components/StripeElementsForm/naked.tsx +1 -1
- package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
- package/themes/original/src/components/TaxInformation/index.tsx +3 -2
- package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +8 -5
- package/themes/original/src/components/UserDetails/index.tsx +17 -16
- package/themes/original/src/components/UserFormDetails/index.tsx +113 -73
- package/themes/original/src/components/UserProfile/index.tsx +9 -1
- package/themes/original/src/components/UserProfileForm/index.tsx +0 -5
- package/themes/original/src/components/UserVerification/index.tsx +18 -5
- package/themes/original/src/components/Wallets/index.tsx +1 -3
- package/themes/original/src/components/WebsocketStatus/index.tsx +1 -4
- package/themes/original/src/components/shared/OAlert.tsx +2 -1
- package/themes/original/src/components/shared/OButton.tsx +5 -4
- package/themes/original/src/components/shared/OInput.tsx +4 -8
- package/themes/original/src/components/shared/OModal.tsx +7 -2
- package/themes/original/src/types/index.tsx +12 -4
- package/themes/original/src/utils/index.tsx +30 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react'
|
|
2
2
|
import Clipboard from '@react-native-clipboard/clipboard';
|
|
3
|
-
import { Messages as MessagesController, useSession, useUtils, useLanguage, ToastType, useToast } from 'ordering-components/native'
|
|
3
|
+
import { Messages as MessagesController, useSession, useUtils, useLanguage, ToastType, useToast, useConfig } from 'ordering-components/native'
|
|
4
4
|
import { useTheme } from 'styled-components/native';
|
|
5
5
|
import { launchImageLibrary } from 'react-native-image-picker'
|
|
6
6
|
import { GiftedChat, Actions, ActionsProps, InputToolbar, Composer, Send, Bubble, MessageImage, InputToolbarProps, ComposerProps } from 'react-native-gifted-chat'
|
|
@@ -39,7 +39,10 @@ const ORDER_STATUS: any = {
|
|
|
39
39
|
20: 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
|
|
40
40
|
21: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
|
|
41
41
|
22: 'ORDER_LOOKING_FOR_DRIVER',
|
|
42
|
-
23: 'ORDER_DRIVER_ON_WAY'
|
|
42
|
+
23: 'ORDER_DRIVER_ON_WAY',
|
|
43
|
+
24: 'ORDER_DRIVER_WAITING_FOR_ORDER',
|
|
44
|
+
25: 'ORDER_ACCEPTED_BY_DRIVER_COMPANY',
|
|
45
|
+
26: 'ORDER_DRIVER_ARRIVED_CUSTOMER'
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
const filterSpecialStatus = ['prepared_in', 'delivered_in', 'delivery_datetime']
|
|
@@ -52,7 +55,6 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
52
55
|
messages,
|
|
53
56
|
image,
|
|
54
57
|
message,
|
|
55
|
-
messagesToShow,
|
|
56
58
|
sendMessage,
|
|
57
59
|
setCanRead,
|
|
58
60
|
setMessage,
|
|
@@ -67,13 +69,14 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
67
69
|
} = props
|
|
68
70
|
|
|
69
71
|
const [{ user }] = useSession()
|
|
72
|
+
const [{ configs }] = useConfig()
|
|
70
73
|
const [{ parseDate }] = useUtils()
|
|
71
74
|
const [, t] = useLanguage()
|
|
72
75
|
const [, { showToast }] = useToast();
|
|
73
76
|
|
|
74
77
|
const [formattedMessages, setFormattedMessages] = useState<Array<any>>([])
|
|
75
78
|
const [isKeyboardShow, setIsKeyboardShow] = useState(false)
|
|
76
|
-
const previousStatus = [1, 2, 5, 6, 10, 11, 12, 16, 17]
|
|
79
|
+
const previousStatus = [1, 2, 5, 6, 10, 11, 12, 15, 16, 17]
|
|
77
80
|
const chatDisabled = previousStatus.includes(order?.status)
|
|
78
81
|
const { height } = useWindowDimensions();
|
|
79
82
|
const { top, bottom } = useSafeAreaInsets();
|
|
@@ -142,23 +145,24 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
142
145
|
}
|
|
143
146
|
|
|
144
147
|
useEffect(() => {
|
|
145
|
-
|
|
148
|
+
const newMessages: Array<any> = []
|
|
146
149
|
const _console = `${t('ORDER_PLACED_FOR', 'Order placed for')} ${parseDate(order?.created_at)} ${t('VIA', 'Via')} ${order?.app_id ? t(order?.app_id.toUpperCase(), order?.app_id) : t('OTHER', 'Other')}`
|
|
147
150
|
const firstMessage = {
|
|
148
151
|
_id: 0,
|
|
152
|
+
type: 0,
|
|
149
153
|
text: _console,
|
|
150
154
|
createdAt: parseDate(order?.created_at, { outputFormat: 'YYYY-MM-DD HH:mm:ss' }),
|
|
151
155
|
system: true
|
|
152
156
|
}
|
|
153
|
-
const newMessage: any = [];
|
|
154
157
|
messages.messages.map((message: any) => {
|
|
155
158
|
if (message.change?.attribute === 'driver_group_id') return
|
|
156
|
-
if (business && message.type !== 0 && (messagesToShow?.messages?.length || message?.can_see?.includes('2'))) {
|
|
157
|
-
|
|
159
|
+
if (business && message.type !== 0 && (props?.messagesToShow?.messages?.length || message?.can_see?.includes('2'))) {
|
|
160
|
+
newMessages.push({
|
|
158
161
|
_id: message?.id,
|
|
159
162
|
text: message.type === 1 ? messageConsole(message) : message.comment,
|
|
160
163
|
createdAt: message.type !== 0 && parseDate(message?.created_at, { outputFormat: 'YYYY-MM-DD HH:mm:ss' }),
|
|
161
164
|
image: message.source,
|
|
165
|
+
type: message.type,
|
|
162
166
|
system: message.type === 1,
|
|
163
167
|
user: {
|
|
164
168
|
_id: message.author && message.author.id,
|
|
@@ -168,12 +172,13 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
168
172
|
});
|
|
169
173
|
}
|
|
170
174
|
|
|
171
|
-
if (driver && message.type !== 0 && (messagesToShow?.messages?.length || message?.can_see?.includes('4'))) {
|
|
172
|
-
|
|
175
|
+
if (driver && message.type !== 0 && (props?.messagesToShow?.messages?.length || message?.can_see?.includes('4'))) {
|
|
176
|
+
newMessages.push({
|
|
173
177
|
_id: message?.id,
|
|
174
178
|
text: message.type === 1 ? messageConsole(message) : message.comment,
|
|
175
179
|
createdAt: message.type !== 0 && parseDate(message?.created_at, { outputFormat: 'YYYY-MM-DD HH:mm:ss' }),
|
|
176
180
|
image: message.source,
|
|
181
|
+
type: message.type,
|
|
177
182
|
system: message.type === 1,
|
|
178
183
|
user: {
|
|
179
184
|
_id: message.author && message.author.id,
|
|
@@ -184,10 +189,12 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
184
189
|
}
|
|
185
190
|
|
|
186
191
|
if (message.type === 0) {
|
|
187
|
-
|
|
192
|
+
newMessages.push(firstMessage);
|
|
188
193
|
}
|
|
189
194
|
})
|
|
190
|
-
|
|
195
|
+
let _arrayMessages = [...newMessages.reverse()]
|
|
196
|
+
|
|
197
|
+
setFormattedMessages(_arrayMessages);
|
|
191
198
|
}, [messages.messages.length, business, driver])
|
|
192
199
|
|
|
193
200
|
useEffect(() => {
|
|
@@ -461,7 +468,7 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
461
468
|
active={business}
|
|
462
469
|
>
|
|
463
470
|
<OIcon
|
|
464
|
-
url={order?.business?.logo
|
|
471
|
+
url={order?.business?.logo}
|
|
465
472
|
width={32}
|
|
466
473
|
height={32}
|
|
467
474
|
style={{ borderRadius: 32 }}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Pressable } from 'react-native'
|
|
3
|
+
import {
|
|
4
|
+
TimeItem,
|
|
5
|
+
} from './styles'
|
|
6
|
+
import { OIcon, OText } from '../shared'
|
|
7
|
+
import { useTheme } from 'styled-components/native'
|
|
8
|
+
|
|
9
|
+
const timeListItemPropsAreEqual = (prevProps: any, nextProps: any) => {
|
|
10
|
+
return JSON.stringify(prevProps.time) === JSON.stringify(nextProps.time) &&
|
|
11
|
+
JSON.stringify(prevProps.selectedTime) === JSON.stringify(nextProps.selectedTime) &&
|
|
12
|
+
JSON.stringify(prevProps.cateringPreorder) === JSON.stringify(nextProps.cateringPreorder)
|
|
13
|
+
}
|
|
14
|
+
export const TimeListItem = React.memo((props : any) => {
|
|
15
|
+
const {
|
|
16
|
+
time,
|
|
17
|
+
selectedTime,
|
|
18
|
+
handleChangeTimeSelected,
|
|
19
|
+
cateringPreorder
|
|
20
|
+
} = props
|
|
21
|
+
const theme = useTheme()
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<Pressable onPress={() => handleChangeTimeSelected(time.value)}>
|
|
25
|
+
<TimeItem
|
|
26
|
+
active={selectedTime === time.value}
|
|
27
|
+
cateringPreorder={cateringPreorder}
|
|
28
|
+
>
|
|
29
|
+
{cateringPreorder && (
|
|
30
|
+
<>
|
|
31
|
+
{selectedTime === time.value ? (
|
|
32
|
+
<OIcon
|
|
33
|
+
src={theme.images.general.option_checked}
|
|
34
|
+
width={18}
|
|
35
|
+
style={{ marginEnd: 24, bottom: 2 }}
|
|
36
|
+
/>
|
|
37
|
+
) : (
|
|
38
|
+
<OIcon
|
|
39
|
+
src={theme.images.general.option_normal}
|
|
40
|
+
width={18}
|
|
41
|
+
style={{ marginEnd: 24, bottom: 2 }}
|
|
42
|
+
/>
|
|
43
|
+
)}
|
|
44
|
+
</>
|
|
45
|
+
)}
|
|
46
|
+
<OText
|
|
47
|
+
size={cateringPreorder ? 18 : 16}
|
|
48
|
+
color={selectedTime === time.value ? theme.colors.primary : theme.colors.textNormal}
|
|
49
|
+
style={{
|
|
50
|
+
lineHeight: 24
|
|
51
|
+
}}
|
|
52
|
+
>{time.text} {cateringPreorder && `- ${time.endText}`}</OText>
|
|
53
|
+
</TimeItem>
|
|
54
|
+
</Pressable>
|
|
55
|
+
)
|
|
56
|
+
}, timeListItemPropsAreEqual)
|
|
@@ -29,7 +29,8 @@ import {
|
|
|
29
29
|
TimeItem
|
|
30
30
|
} from './styles';
|
|
31
31
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
32
|
-
import {
|
|
32
|
+
import { monthsEnum, setLocalMoment } from '../../utils';
|
|
33
|
+
import { TimeListItem } from './TimeListItem';
|
|
33
34
|
|
|
34
35
|
const MomentOptionUI = (props: MomentOptionParams) => {
|
|
35
36
|
const {
|
|
@@ -161,6 +162,8 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
161
162
|
const [datesWhitelist, setDateWhitelist] = useState<any>([{ start: null, end: null }])
|
|
162
163
|
const [selectDate, setSelectedDate] = useState<any>(dateSelected)
|
|
163
164
|
const [timeList, setTimeList] = useState<any>(hoursList)
|
|
165
|
+
const [nextTime, setNextTime] = useState(null)
|
|
166
|
+
|
|
164
167
|
const goToBack = () => navigation?.canGoBack() && navigation.goBack();
|
|
165
168
|
|
|
166
169
|
const _handleAsap = () => {
|
|
@@ -245,10 +248,6 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
245
248
|
)
|
|
246
249
|
}
|
|
247
250
|
|
|
248
|
-
useEffect(() => {
|
|
249
|
-
setLocalMoment(moment, t)
|
|
250
|
-
}, [])
|
|
251
|
-
|
|
252
251
|
useEffect(() => {
|
|
253
252
|
if (datesList?.length > 0) {
|
|
254
253
|
const _datesList = datesList.slice((cateringPreorder && preorderMinimumDays) || 0, Number(cateringPreorder ? preorderMaximumDays || configs?.max_days_preorder?.value : configs?.max_days_preorder?.value ?? 6))
|
|
@@ -260,7 +259,7 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
260
259
|
setDateWhitelist([{ start: _minDate, end: _maxDate }])
|
|
261
260
|
}
|
|
262
261
|
}
|
|
263
|
-
}, [JSON.stringify(datesList), preorderMinimumDays, preorderMaximumDays
|
|
262
|
+
}, [JSON.stringify(datesList), preorderMinimumDays, preorderMaximumDays])
|
|
264
263
|
|
|
265
264
|
useEffect(() => {
|
|
266
265
|
if (dateSelected) {
|
|
@@ -282,13 +281,21 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
282
281
|
let _timeLists = []
|
|
283
282
|
const schedule = business && getActualSchedule()
|
|
284
283
|
if (!schedule && business) {
|
|
284
|
+
setTimeList([])
|
|
285
285
|
return
|
|
286
286
|
}
|
|
287
287
|
_timeLists = hoursList
|
|
288
|
-
.filter(hour =>
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
288
|
+
.filter(hour => {
|
|
289
|
+
return (Object.keys(business || {})?.length === 0 || schedule?.lapses?.some((lapse: any) => {
|
|
290
|
+
const openHour = lapse.open.hour < 10 ? `0${lapse.open.hour}` : lapse.open.hour
|
|
291
|
+
const openMinute = lapse.open.minute < 10 ? `0${lapse.open.minute}` : lapse.open.minute
|
|
292
|
+
const closeHour = lapse.close.hour < 10 ? `0${lapse.close.hour}` : lapse.close.hour
|
|
293
|
+
const closeMinute = lapse.close.minute < 10 ? `0${lapse.close.minute}` : lapse.close.minute
|
|
294
|
+
return moment(dateSelected + ` ${hour.startTime}`) >= moment(dateSelected + ` ${openHour}:${openMinute}`).add(preorderLeadTime, 'minutes') && moment(dateSelected + ` ${hour.endTime}`) <= moment(dateSelected + ` ${closeHour}:${closeMinute}`)
|
|
295
|
+
})) &&
|
|
296
|
+
(moment(dateSelected + ` ${hour.startTime}`) < moment(dateSelected + ` ${hour.endTime}`)) &&
|
|
297
|
+
(moment().add(preorderLeadTime, 'minutes') < moment(dateSelected + ` ${hour.startTime}`) || !cateringPreorder)
|
|
298
|
+
})
|
|
292
299
|
.map(hour => {
|
|
293
300
|
return {
|
|
294
301
|
value: hour.startTime,
|
|
@@ -325,7 +332,28 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
325
332
|
}
|
|
326
333
|
}))
|
|
327
334
|
}
|
|
328
|
-
}, [dateSelected,
|
|
335
|
+
}, [dateSelected, hoursList?.length, JSON.stringify(datesWhitelist), JSON.stringify(business)])
|
|
336
|
+
|
|
337
|
+
useEffect(() => {
|
|
338
|
+
setLocalMoment(moment, t)
|
|
339
|
+
}, [])
|
|
340
|
+
|
|
341
|
+
useEffect(() => {
|
|
342
|
+
if (preorderMinimumDays === 0 && preorderLeadTime === 0) return
|
|
343
|
+
const isToday = dateSelected === moment().format('YYYY-MM-DD')
|
|
344
|
+
if (isCart && isToday && !orderState?.loading && timeList?.length > 0) {
|
|
345
|
+
setNextTime(timeList?.[0] ?? null)
|
|
346
|
+
}
|
|
347
|
+
}, [timeList?.length])
|
|
348
|
+
|
|
349
|
+
useEffect(() => {
|
|
350
|
+
if (nextTime?.value && timeList?.length > 0 && isCart && !orderState?.loading && !(preorderMinimumDays === 0 && preorderLeadTime === 0)) {
|
|
351
|
+
const notime = timeList?.filter((_: any, i: number) => i !== 0)?.find?.((time: any) => time?.value === timeSelected)
|
|
352
|
+
if (!notime) {
|
|
353
|
+
handleChangeTime(nextTime?.value)
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}, [nextTime?.value])
|
|
329
357
|
|
|
330
358
|
return (
|
|
331
359
|
<>
|
|
@@ -347,14 +375,9 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
347
375
|
titleAlign={'center'}
|
|
348
376
|
titleStyle={{ fontSize: 20, marginRight: 0, marginLeft: 0 }}
|
|
349
377
|
titleWrapStyle={{ paddingHorizontal: 0 }}
|
|
350
|
-
buttonProps={{
|
|
351
|
-
bgColor: theme.colors.white,
|
|
352
|
-
borderColor: theme.colors.white,
|
|
353
|
-
textStyle: { color: theme.colors.btnFont }
|
|
354
|
-
}}
|
|
355
378
|
/>
|
|
356
379
|
)}
|
|
357
|
-
{(preorderMinimumDays === 0 && preorderLeadTime === 0) || !cateringPreorder && (
|
|
380
|
+
{((preorderMinimumDays === 0 && preorderLeadTime === 0) || !cateringPreorder) && (
|
|
358
381
|
<WrapSelectOption
|
|
359
382
|
onPress={() => _handleAsap()}
|
|
360
383
|
disabled={orderState.loading} style={{ alignItems: 'flex-start' }}>
|
|
@@ -403,28 +426,27 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
403
426
|
<View style={{ flex: 1 }}>
|
|
404
427
|
{selectDate && datesWhitelist[0]?.start !== null && (
|
|
405
428
|
<CalendarStrip
|
|
406
|
-
locale={locale}
|
|
407
429
|
scrollable
|
|
408
430
|
style={styles.calendar}
|
|
409
431
|
calendarHeaderContainerStyle={styles.calendarHeaderContainer}
|
|
410
432
|
calendarHeaderStyle={styles.calendarHeader}
|
|
411
|
-
dateNumberStyle={styles.dateNumber}
|
|
412
|
-
dateNameStyle={styles.dateName}
|
|
413
433
|
iconContainer={{ flex: 0.1 }}
|
|
414
|
-
highlightDateNameStyle={styles.highlightDateName}
|
|
415
|
-
highlightDateNumberStyle={styles.highlightDateNumber}
|
|
416
434
|
dayContainerStyle={{ height: '100%' }}
|
|
417
435
|
highlightDateContainerStyle={{ height: '100%' }}
|
|
418
436
|
calendarHeaderFormat='MMMM, YYYY'
|
|
419
437
|
iconStyle={{ borderWidth: 1 }}
|
|
420
438
|
selectedDate={dateSelected}
|
|
421
439
|
datesWhitelist={datesWhitelist}
|
|
440
|
+
highlightDateNumberStyle={styles.highlightDateNumber}
|
|
441
|
+
highlightDateNameStyle={styles.highlightDateName}
|
|
422
442
|
minDate={moment()}
|
|
423
443
|
maxDate={cateringPreorder ? moment().add(preorderMaximumDays, 'days') : undefined}
|
|
424
444
|
disabledDateNameStyle={styles.disabledDateName}
|
|
425
445
|
disabledDateNumberStyle={styles.disabledDateNumber}
|
|
426
446
|
disabledDateOpacity={0.6}
|
|
427
|
-
|
|
447
|
+
dateNumberStyle={styles.dateNumber}
|
|
448
|
+
dateNameStyle={styles.dateName}
|
|
449
|
+
onDateSelected={(date: any) => onSelectDate(date)}
|
|
428
450
|
leftSelector={<LeftSelector />}
|
|
429
451
|
rightSelector={<RightSelector />}
|
|
430
452
|
/>
|
|
@@ -432,44 +454,34 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
432
454
|
</View>
|
|
433
455
|
)}
|
|
434
456
|
<TimeListWrapper nestedScrollEnabled={true} cateringPreorder={cateringPreorder}>
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
<
|
|
439
|
-
|
|
457
|
+
{timeList?.length > 0 ? (
|
|
458
|
+
<TimeContentWrapper>
|
|
459
|
+
{timeList.map((time: any, i: number) => (
|
|
460
|
+
<TimeListItem
|
|
461
|
+
key={i}
|
|
462
|
+
time={time}
|
|
463
|
+
selectedTime={selectedTime}
|
|
464
|
+
handleChangeTimeSelected={handleChangeTimeSelected}
|
|
440
465
|
cateringPreorder={cateringPreorder}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
size={cateringPreorder ? 18 : 16}
|
|
461
|
-
color={selectedTime === time.value ? theme.colors.primary : theme.colors.textNormal}
|
|
462
|
-
style={{
|
|
463
|
-
lineHeight: 24
|
|
464
|
-
}}
|
|
465
|
-
>{time.text} {cateringPreorder && `- ${time.endText}`}</OText>
|
|
466
|
-
</TimeItem>
|
|
467
|
-
</Pressable>
|
|
468
|
-
))}
|
|
469
|
-
{timeList.length % 3 === 2 && (
|
|
470
|
-
<TimeItem style={{ backgroundColor: 'transparent' }} />
|
|
471
|
-
)}
|
|
472
|
-
</TimeContentWrapper>
|
|
466
|
+
/>
|
|
467
|
+
))}
|
|
468
|
+
{timeList.length % 3 === 2 && (
|
|
469
|
+
<TimeItem style={{ backgroundColor: 'transparent' }} />
|
|
470
|
+
)}
|
|
471
|
+
</TimeContentWrapper>
|
|
472
|
+
) : (
|
|
473
|
+
<OText
|
|
474
|
+
size={16}
|
|
475
|
+
style={{
|
|
476
|
+
fontWeight: '600',
|
|
477
|
+
lineHeight: 24,
|
|
478
|
+
marginBottom: 12,
|
|
479
|
+
textAlign: 'center'
|
|
480
|
+
}}
|
|
481
|
+
>
|
|
482
|
+
{t('ERROR_ADD_PRODUCT_BUSINESS_CLOSED', 'The business is closed at the moment')}
|
|
483
|
+
</OText>
|
|
484
|
+
)}
|
|
473
485
|
</TimeListWrapper>
|
|
474
486
|
</OrderTimeWrapper>
|
|
475
487
|
)}
|
|
@@ -480,12 +492,10 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
480
492
|
<View style={{ position: 'absolute', bottom: bottom, paddingBottom: 20, paddingHorizontal: 20, backgroundColor: 'white', width: '100%' }}>
|
|
481
493
|
<OButton
|
|
482
494
|
onClick={() => handleChangeMoment()}
|
|
483
|
-
bgColor={theme.colors.primary}
|
|
484
|
-
borderColor={theme.colors.primary}
|
|
485
495
|
isDisabled={!selectedTime}
|
|
486
496
|
text={t('CONTINUE', 'Continue')}
|
|
487
497
|
style={{ borderRadius: 7.6, height: 44, shadowOpacity: 0 }}
|
|
488
|
-
textStyle={{
|
|
498
|
+
textStyle={{ fontSize: 14 }}
|
|
489
499
|
showNextIcon
|
|
490
500
|
/>
|
|
491
501
|
</View>
|
|
@@ -5,7 +5,8 @@ import { useTheme } from 'styled-components/native'
|
|
|
5
5
|
import {
|
|
6
6
|
MomentOption as MomentOptionController,
|
|
7
7
|
useConfig,
|
|
8
|
-
useUtils
|
|
8
|
+
useUtils,
|
|
9
|
+
useLanguage
|
|
9
10
|
} from 'ordering-components/native'
|
|
10
11
|
import { useSafeAreaInsets } from 'react-native-safe-area-context'
|
|
11
12
|
import IconAntDesign from 'react-native-vector-icons/AntDesign'
|
|
@@ -26,6 +27,7 @@ const MomentSelectorUI = (props: any) => {
|
|
|
26
27
|
const { top } = useSafeAreaInsets()
|
|
27
28
|
const [{ configs }] = useConfig()
|
|
28
29
|
const [{ parseTime }] = useUtils()
|
|
30
|
+
const [, t] = useLanguage()
|
|
29
31
|
|
|
30
32
|
const [customizedDateList, setCustomizedDateList] = useState([])
|
|
31
33
|
const [customizedTimeList, setCustomizedTimeList] = useState([])
|
|
@@ -130,6 +132,7 @@ const MomentSelectorUI = (props: any) => {
|
|
|
130
132
|
<View style={styles.selectWrapper}>
|
|
131
133
|
<SelectDropdown
|
|
132
134
|
defaultValue={customizedTimeList?.find((item: any) => item.key === timeSelected)}
|
|
135
|
+
defaultButtonText={t('SELECT_A_TIME_OPTION', 'Select an option')}
|
|
133
136
|
data={customizedTimeList}
|
|
134
137
|
onSelect={(selectedItem, index) => {
|
|
135
138
|
handleChangeTime(selectedItem.key)
|
|
@@ -194,4 +197,4 @@ export const MomentSelector = (props: any) => {
|
|
|
194
197
|
maxDate: currentDate
|
|
195
198
|
}
|
|
196
199
|
return <MomentOptionController {...businessPreorderProps} />
|
|
197
|
-
}
|
|
200
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useEffect, useCallback } from 'react'
|
|
1
|
+
import React, { useState, useEffect, useCallback, useMemo } from 'react'
|
|
2
2
|
import {
|
|
3
3
|
useLanguage,
|
|
4
4
|
useConfig,
|
|
@@ -70,7 +70,8 @@ const MultiCheckoutUI = (props: any) => {
|
|
|
70
70
|
walletState,
|
|
71
71
|
onNavigationRedirectReplace,
|
|
72
72
|
merchantId,
|
|
73
|
-
cartsInvalid
|
|
73
|
+
cartsInvalid,
|
|
74
|
+
checkoutFieldsState
|
|
74
75
|
} = props
|
|
75
76
|
|
|
76
77
|
const theme = useTheme();
|
|
@@ -96,8 +97,9 @@ const MultiCheckoutUI = (props: any) => {
|
|
|
96
97
|
const [{ parsePrice, parseDate }] = useUtils();
|
|
97
98
|
const [{ options, carts, loading }, { confirmCart }] = useOrder();
|
|
98
99
|
const [validationFields] = useValidationFields();
|
|
99
|
-
const [{ user }, { login }] = useSession()
|
|
100
|
+
const [{ user, loading: userLoading }, { login }] = useSession()
|
|
100
101
|
|
|
102
|
+
const notFields = ['coupon', 'driver_tip', 'mobile_phone', 'address', 'zipcode', 'address_notes', 'comments']
|
|
101
103
|
const configTypes = configs?.order_types_allowed?.value.split('|').map((value: any) => Number(value)) || []
|
|
102
104
|
const isPreOrder = configs?.preorder_status_enabled?.value === '1'
|
|
103
105
|
const isMultiDriverTips = configs?.checkout_multi_business_enabled?.value === '1'
|
|
@@ -121,6 +123,7 @@ const MultiCheckoutUI = (props: any) => {
|
|
|
121
123
|
|
|
122
124
|
const creditPointGeneralPlan = loyaltyPlansState?.result?.find((loyal: any) => loyal.type === 'credit_point')
|
|
123
125
|
const loyalBusinessAvailable = creditPointGeneralPlan?.businesses?.filter((b: any) => b.accumulates) ?? []
|
|
126
|
+
const checkoutFields = useMemo(() => checkoutFieldsState?.fields?.filter((field : any) => field.order_type_id === options?.type), [checkoutFieldsState, options])
|
|
124
127
|
|
|
125
128
|
const accumulationRateBusiness = (businessId: number) => {
|
|
126
129
|
const value = loyalBusinessAvailable?.find((loyal: any) => loyal.business_id === businessId)?.accumulation_rate ?? 0
|
|
@@ -169,35 +172,55 @@ const MultiCheckoutUI = (props: any) => {
|
|
|
169
172
|
|
|
170
173
|
const checkValidationFields = () => {
|
|
171
174
|
setUserErrors([])
|
|
172
|
-
const errors = []
|
|
173
|
-
const
|
|
174
|
-
const _requiredFields:
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
175
|
+
const errors: Array<string> = []
|
|
176
|
+
const userSelected = user
|
|
177
|
+
const _requiredFields: Array<string> = []
|
|
178
|
+
Object.values(checkoutFieldsState?.fields).map((field: any) => {
|
|
179
|
+
if (options?.type === field?.order_type_id &&
|
|
180
|
+
field?.enabled &&
|
|
181
|
+
field?.required &&
|
|
182
|
+
!notFields.includes(field?.validation_field?.code)
|
|
183
|
+
) {
|
|
184
|
+
if (userSelected && !userSelected[field?.validation_field?.code]) {
|
|
185
|
+
_requiredFields.push(field?.validation_field?.code)
|
|
180
186
|
}
|
|
181
187
|
}
|
|
182
188
|
})
|
|
183
|
-
|
|
189
|
+
const mobilePhoneField: any = Object.values(checkoutFieldsState?.fields)?.find((field: any) => field?.order_type_id === options?.type && field?.validation_field?.code === 'mobile_phone')
|
|
184
190
|
if (
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
191
|
+
userSelected &&
|
|
192
|
+
!userSelected?.cellphone &&
|
|
193
|
+
((mobilePhoneField?.enabled &&
|
|
194
|
+
mobilePhoneField?.required) ||
|
|
188
195
|
configs?.verification_phone_required?.value === '1')
|
|
189
196
|
) {
|
|
190
197
|
_requiredFields.push('cellphone')
|
|
191
198
|
}
|
|
192
199
|
setRequiredFields(_requiredFields)
|
|
193
200
|
|
|
194
|
-
if (phoneUpdate) {
|
|
195
|
-
errors.push(t('NECESSARY_UPDATE_COUNTRY_PHONE_CODE', 'It is necessary to update your phone number'))
|
|
196
|
-
}
|
|
197
|
-
|
|
198
201
|
setUserErrors(errors)
|
|
199
202
|
}
|
|
200
203
|
|
|
204
|
+
const checkGuestValidationFields = () => {
|
|
205
|
+
const userSelected = user
|
|
206
|
+
const _requiredFields = checkoutFieldsState?.fields
|
|
207
|
+
.filter((field) => (field?.order_type_id === options?.type) && field?.enabled && field?.required_with_guest &&
|
|
208
|
+
!notFields.includes(field?.validation_field?.code) &&
|
|
209
|
+
userSelected && !userSelected[field?.validation_field?.code])
|
|
210
|
+
const requiredFieldsCode = _requiredFields.map((item) => item?.validation_field?.code)
|
|
211
|
+
const guestCheckoutCellPhone = checkoutFieldsState?.fields?.find((field) => field.order_type_id === options?.type && field?.validation_field?.code === 'mobile_phone')
|
|
212
|
+
if (
|
|
213
|
+
userSelected &&
|
|
214
|
+
!userSelected?.cellphone &&
|
|
215
|
+
((guestCheckoutCellPhone?.enabled &&
|
|
216
|
+
guestCheckoutCellPhone?.required_with_guest) ||
|
|
217
|
+
configs?.verification_phone_required?.value === '1')
|
|
218
|
+
) {
|
|
219
|
+
requiredFieldsCode.push('cellphone')
|
|
220
|
+
}
|
|
221
|
+
setRequiredFields(requiredFieldsCode)
|
|
222
|
+
}
|
|
223
|
+
|
|
201
224
|
const togglePhoneUpdate = (val: boolean) => {
|
|
202
225
|
setPhoneUpdate(val)
|
|
203
226
|
}
|
|
@@ -208,7 +231,7 @@ const MultiCheckoutUI = (props: any) => {
|
|
|
208
231
|
return
|
|
209
232
|
}
|
|
210
233
|
|
|
211
|
-
if (!userErrors.length &&
|
|
234
|
+
if (!userErrors.length && !requiredFields?.length) {
|
|
212
235
|
handleGroupPlaceOrder && handleGroupPlaceOrder(confirmPayment)
|
|
213
236
|
return
|
|
214
237
|
}
|
|
@@ -255,10 +278,13 @@ const MultiCheckoutUI = (props: any) => {
|
|
|
255
278
|
}
|
|
256
279
|
|
|
257
280
|
useEffect(() => {
|
|
258
|
-
if (
|
|
281
|
+
if (checkoutFieldsState?.loading || userLoading) return
|
|
282
|
+
if (user?.guest_id) {
|
|
283
|
+
checkGuestValidationFields()
|
|
284
|
+
} else {
|
|
259
285
|
checkValidationFields()
|
|
260
286
|
}
|
|
261
|
-
}, [
|
|
287
|
+
}, [checkoutFieldsState, user, options?.type])
|
|
262
288
|
|
|
263
289
|
useEffect(() => {
|
|
264
290
|
if (cartsToShow?.length === 1) {
|
|
@@ -394,15 +420,11 @@ const MultiCheckoutUI = (props: any) => {
|
|
|
394
420
|
</OText>
|
|
395
421
|
<OButton
|
|
396
422
|
text={t('SIGN_UP', 'Sign up')}
|
|
397
|
-
textStyle={{ color: theme.colors.white }}
|
|
398
423
|
style={{ borderRadius: 7.6, marginTop: 20 }}
|
|
399
424
|
onClick={() => setOpenModal({ ...openModal, signup: true })}
|
|
400
425
|
/>
|
|
401
426
|
<OButton
|
|
402
427
|
text={t('LOGIN', 'Login')}
|
|
403
|
-
textStyle={{ color: theme.colors.primary }}
|
|
404
|
-
bgColor={theme.colors.white}
|
|
405
|
-
borderColor={theme.colors.primary}
|
|
406
428
|
style={{ borderRadius: 7.6, marginTop: 20 }}
|
|
407
429
|
onClick={() => setOpenModal({ ...openModal, login: true })}
|
|
408
430
|
/>
|
|
@@ -424,6 +446,9 @@ const MultiCheckoutUI = (props: any) => {
|
|
|
424
446
|
isCheckout
|
|
425
447
|
phoneUpdate={phoneUpdate}
|
|
426
448
|
togglePhoneUpdate={togglePhoneUpdate}
|
|
449
|
+
isOrderTypeValidationField
|
|
450
|
+
requiredFields={requiredFields}
|
|
451
|
+
checkoutFields={checkoutFields}
|
|
427
452
|
/>
|
|
428
453
|
)}
|
|
429
454
|
</ChUserDetails>
|
|
@@ -660,9 +685,12 @@ const MultiCheckoutUI = (props: any) => {
|
|
|
660
685
|
isEdit
|
|
661
686
|
phoneUpdate={phoneUpdate}
|
|
662
687
|
togglePhoneUpdate={togglePhoneUpdate}
|
|
663
|
-
requiredFields={requiredFields}
|
|
664
688
|
hideUpdateButton
|
|
665
689
|
handlePlaceOrderAsGuest={handlePlaceOrderAsGuest}
|
|
690
|
+
isCheckoutPlace
|
|
691
|
+
isOrderTypeValidationField
|
|
692
|
+
requiredFields={requiredFields}
|
|
693
|
+
checkoutFields={checkoutFields}
|
|
666
694
|
onClose={() => {
|
|
667
695
|
setIsOpen(false)
|
|
668
696
|
handlePlaceOrder()
|
|
@@ -101,11 +101,6 @@ export const MyOrders = (props: any) => {
|
|
|
101
101
|
showCall={false}
|
|
102
102
|
paddingTop={30}
|
|
103
103
|
btnStyle={{ paddingLeft: 0 }}
|
|
104
|
-
buttonProps={{
|
|
105
|
-
bgColor: theme.colors.white,
|
|
106
|
-
borderColor: theme.colors.white,
|
|
107
|
-
textStyle: { color: theme.colors.btnFont }
|
|
108
|
-
}}
|
|
109
104
|
/>
|
|
110
105
|
)}
|
|
111
106
|
</View>
|
|
@@ -208,9 +203,9 @@ export const MyOrders = (props: any) => {
|
|
|
208
203
|
setOrdersLength={setOrdersLength}
|
|
209
204
|
/>
|
|
210
205
|
)}
|
|
211
|
-
|
|
206
|
+
|
|
212
207
|
{selectedOption === 'giftCards' && (
|
|
213
|
-
<View style={{ paddingHorizontal: 20
|
|
208
|
+
<View style={{ paddingHorizontal: 20 }}>
|
|
214
209
|
<GiftCardOrdersList
|
|
215
210
|
onNavigationRedirect={props?.onNavigationRedirect}
|
|
216
211
|
/>
|