ordering-ui-react-native 0.16.71 → 0.16.72-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 -5
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/ActiveOrders/styles.tsx +8 -14
- package/src/components/BusinessInformation/index.tsx +19 -4
- package/src/components/BusinessInformation/styles.tsx +2 -2
- package/src/components/BusinessProductsList/index.tsx +10 -10
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +2 -1
- package/src/components/LanguageSelector/index.tsx +21 -16
- package/src/components/Messages/index.tsx +2 -2
- package/src/components/OrdersOption/index.tsx +54 -56
- package/src/components/PaymentOptions/index.tsx +298 -345
- package/src/components/PaymentOptionsWebView/index.tsx +119 -120
- package/src/components/SingleProductReview/index.tsx +7 -4
- package/src/components/StripeElementsForm/index.tsx +25 -16
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OToast.tsx +4 -4
- package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
- package/src/utils/index.tsx +2 -1
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +260 -238
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
- package/themes/business/src/components/BusinessController/index.tsx +2 -2
- package/themes/business/src/components/Chat/index.tsx +31 -31
- package/themes/business/src/components/DriverMap/index.tsx +7 -5
- package/themes/business/src/components/LoginForm/index.tsx +111 -74
- package/themes/business/src/components/MapView/index.tsx +14 -3
- package/themes/business/src/components/MessagesOption/index.tsx +11 -1
- package/themes/business/src/components/NewOrderNotification/index.tsx +31 -41
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +70 -43
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +3 -3
- package/themes/business/src/components/OrdersOption/index.tsx +63 -73
- package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
- package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
- package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
- package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
- package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
- package/themes/business/src/components/PreviousOrders/index.tsx +440 -245
- package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
- package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
- package/themes/business/src/components/ReviewCustomer/index.tsx +39 -15
- package/themes/business/src/components/shared/ODropDown.tsx +42 -8
- package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
- package/themes/business/src/components/shared/OLink.tsx +33 -13
- package/themes/business/src/components/shared/OText.tsx +8 -2
- package/themes/business/src/types/index.tsx +14 -3
- package/themes/business/src/utils/index.tsx +10 -0
- 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/BusinessesListing/index.tsx +2 -1
- package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
- package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
- package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -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/ProductForm/index.tsx +1 -14
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/kiosk/src/types/index.d.ts +2 -0
- package/themes/original/index.tsx +6 -0
- package/themes/original/src/components/AddressDetails/index.tsx +10 -8
- package/themes/original/src/components/AddressForm/index.tsx +153 -137
- package/themes/original/src/components/AddressList/index.tsx +18 -18
- package/themes/original/src/components/AddressList/styles.tsx +4 -2
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +47 -22
- package/themes/original/src/components/BusinessController/index.tsx +101 -70
- package/themes/original/src/components/BusinessController/styles.tsx +14 -9
- package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -6
- package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
- package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
- package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
- package/themes/original/src/components/BusinessListingSearch/index.tsx +87 -142
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
- package/themes/original/src/components/BusinessProductsList/index.tsx +41 -62
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +560 -496
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +13 -12
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +83 -92
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
- package/themes/original/src/components/BusinessesListing/index.tsx +7 -6
- package/themes/original/src/components/Cart/index.tsx +75 -42
- package/themes/original/src/components/CartContent/index.tsx +80 -18
- package/themes/original/src/components/CartContent/styles.tsx +11 -1
- package/themes/original/src/components/Checkout/index.tsx +92 -105
- package/themes/original/src/components/Checkout/styles.tsx +4 -3
- package/themes/original/src/components/CitiesControl/index.tsx +89 -0
- package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
- package/themes/original/src/components/DriverTips/index.tsx +47 -37
- package/themes/original/src/components/DriverTips/styles.tsx +2 -1
- package/themes/original/src/components/Favorite/index.tsx +7 -4
- package/themes/original/src/components/Favorite/styles.tsx +1 -1
- package/themes/original/src/components/FavoriteList/index.tsx +70 -80
- package/themes/original/src/components/FloatingButton/index.tsx +1 -2
- package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
- package/themes/original/src/components/GPSButton/index.tsx +20 -19
- package/themes/original/src/components/GPSButton/styles.ts +3 -3
- package/themes/original/src/components/GoogleMap/index.tsx +10 -1
- package/themes/original/src/components/Help/index.tsx +7 -7
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +14 -20
- package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
- package/themes/original/src/components/HelpGuide/index.tsx +12 -11
- package/themes/original/src/components/HelpGuide/styles.tsx +5 -0
- package/themes/original/src/components/HelpOrder/index.tsx +12 -20
- package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
- package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
- package/themes/original/src/components/LastOrder/index.tsx +1 -34
- package/themes/original/src/components/LoginForm/Otp/index.tsx +89 -73
- package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
- package/themes/original/src/components/LoginForm/index.tsx +98 -41
- package/themes/original/src/components/LottieAnimation/index.tsx +78 -0
- package/themes/original/src/components/MessageListing/index.tsx +7 -40
- package/themes/original/src/components/Messages/index.tsx +35 -20
- package/themes/original/src/components/MomentOption/index.tsx +17 -11
- package/themes/original/src/components/MultiCart/index.tsx +50 -0
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -93
- package/themes/original/src/components/MultiCheckout/index.tsx +158 -77
- package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +85 -34
- package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
- package/themes/original/src/components/MyOrders/index.tsx +86 -20
- package/themes/original/src/components/NavBar/index.tsx +7 -6
- package/themes/original/src/components/NetworkError/index.tsx +5 -3
- package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
- package/themes/original/src/components/Notifications/index.tsx +144 -0
- package/themes/original/src/components/Notifications/styles.tsx +20 -0
- package/themes/original/src/components/OrderDetails/index.tsx +100 -215
- package/themes/original/src/components/OrderDetails/styles.tsx +10 -1
- package/themes/original/src/components/OrderItAgain/index.tsx +46 -43
- package/themes/original/src/components/OrderProgress/index.tsx +79 -100
- package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
- package/themes/original/src/components/OrderSummary/index.tsx +2 -2
- package/themes/original/src/components/OrderTypeSelector/index.tsx +13 -6
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +94 -98
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
- package/themes/original/src/components/OrdersOption/index.tsx +97 -88
- package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +1 -2
- package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
- package/themes/original/src/components/PlaceSpot/index.tsx +22 -8
- package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
- package/themes/original/src/components/ProductForm/index.tsx +212 -253
- package/themes/original/src/components/ProductForm/styles.tsx +5 -8
- package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +17 -9
- package/themes/original/src/components/ProductOptionSubOption/styles.tsx +1 -2
- package/themes/original/src/components/ProfessionalFilter/index.tsx +2 -1
- package/themes/original/src/components/ProfessionalProfile/index.tsx +19 -8
- package/themes/original/src/components/Promotions/index.tsx +234 -220
- package/themes/original/src/components/Promotions/styles.tsx +7 -2
- package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
- package/themes/original/src/components/ReviewOrder/index.tsx +43 -11
- package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
- package/themes/original/src/components/ReviewProducts/index.tsx +8 -5
- package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
- package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
- package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
- package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
- package/themes/original/src/components/ServiceForm/index.tsx +328 -264
- package/themes/original/src/components/SignupForm/index.tsx +134 -89
- package/themes/original/src/components/SingleOrderCard/index.tsx +125 -56
- package/themes/original/src/components/SingleOrderCard/styles.tsx +10 -8
- package/themes/original/src/components/SingleProductCard/index.tsx +84 -80
- package/themes/original/src/components/SingleProductCard/styles.tsx +2 -9
- package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
- package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
- package/themes/original/src/components/StripeCardsList/index.tsx +1 -1
- package/themes/original/src/components/StripeElementsForm/index.tsx +13 -2
- package/themes/original/src/components/UpsellingProducts/index.tsx +244 -215
- package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
- package/themes/original/src/components/UserDetails/index.tsx +5 -3
- package/themes/original/src/components/UserFormDetails/index.tsx +6 -48
- package/themes/original/src/components/UserProfile/index.tsx +58 -35
- package/themes/original/src/components/UserProfile/styles.ts +17 -0
- package/themes/original/src/components/UserProfileForm/index.tsx +19 -28
- package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
- package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
- package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
- package/themes/original/src/components/Wallets/index.tsx +176 -164
- package/themes/original/src/components/Wallets/styles.tsx +12 -8
- package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
- package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
- package/themes/original/src/components/shared/OBottomPopup.tsx +6 -4
- package/themes/original/src/components/shared/OButton.tsx +9 -4
- package/themes/original/src/components/shared/OIcon.tsx +8 -1
- package/themes/original/src/components/shared/OInput.tsx +10 -1
- package/themes/original/src/layouts/Container.tsx +13 -9
- package/themes/original/src/types/index.tsx +35 -5
- package/themes/original/src/utils/index.tsx +305 -58
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -16,11 +16,12 @@ import {
|
|
|
16
16
|
PlaceholderLine,
|
|
17
17
|
Fade
|
|
18
18
|
} from "rn-placeholder";
|
|
19
|
-
import { View, BackHandler } from 'react-native'
|
|
19
|
+
import { View, BackHandler, Platform } from 'react-native'
|
|
20
20
|
import {
|
|
21
21
|
MessageListingWrapper,
|
|
22
22
|
MessageContainer
|
|
23
23
|
} from './styles';
|
|
24
|
+
import { getOrderStatus } from '../../utils'
|
|
24
25
|
|
|
25
26
|
const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
26
27
|
const {
|
|
@@ -51,40 +52,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
51
52
|
: theme.images.general.emptyPastOrders
|
|
52
53
|
const orders = customArray || values || []
|
|
53
54
|
|
|
54
|
-
const getOrderStatus = (s: string) => {
|
|
55
|
-
const status = parseInt(s)
|
|
56
|
-
const orderStatus = [
|
|
57
|
-
{ key: 0, value: t('PENDING', 'Pending') },
|
|
58
|
-
{ key: 1, value: t('COMPLETED', 'Completed') },
|
|
59
|
-
{ key: 2, value: t('REJECTED', 'Rejected') },
|
|
60
|
-
{ key: 3, value: t('DRIVER_IN_BUSINESS', 'Driver in business') },
|
|
61
|
-
{ key: 4, value: t('PREPARATION_COMPLETED', 'Preparation Completed') },
|
|
62
|
-
{ key: 5, value: t('REJECTED_BY_BUSINESS', 'Rejected by business') },
|
|
63
|
-
{ key: 6, value: t('REJECTED_BY_DRIVER', 'Rejected by Driver') },
|
|
64
|
-
{ key: 7, value: t('ACCEPTED_BY_BUSINESS', 'Accepted by business') },
|
|
65
|
-
{ key: 8, value: t('ACCEPTED_BY_DRIVER', 'Accepted by driver') },
|
|
66
|
-
{ key: 9, value: t('PICK_UP_COMPLETED_BY_DRIVER', 'Pick up completed by driver') },
|
|
67
|
-
{ key: 10, value: t('PICK_UP_FAILED_BY_DRIVER', 'Pick up Failed by driver') },
|
|
68
|
-
{ key: 11, value: t('DELIVERY_COMPLETED_BY_DRIVER', 'Delivery completed by driver') },
|
|
69
|
-
{ key: 12, value: t('DELIVERY_FAILED_BY_DRIVER', 'Delivery Failed by driver') },
|
|
70
|
-
{ key: 13, value: t('PREORDER', 'PreOrder') },
|
|
71
|
-
{ key: 14, value: t('ORDER_NOT_READY', 'Order not ready') },
|
|
72
|
-
{ key: 15, value: t('ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER', 'Order picked up completed by customer') },
|
|
73
|
-
{ key: 16, value: t('CANCELLED_BY_CUSTOMER', 'Cancelled by customer') },
|
|
74
|
-
{ key: 17, value: t('ORDER_NOT_PICKEDUP_BY_CUSTOMER', 'Order not picked up by customer') },
|
|
75
|
-
{ key: 18, value: t('DRIVER_ALMOST_ARRIVED_TO_BUSINESS', 'Driver almost arrived to business') },
|
|
76
|
-
{ key: 19, value: t('DRIVER_ALMOST_ARRIVED_TO_CUSTOMER', 'Driver almost arrived to customer') },
|
|
77
|
-
{ key: 20, value: t('ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', 'Customer almost arrived to business') },
|
|
78
|
-
{ key: 21, value: t('ORDER_CUSTOMER_ARRIVED_BUSINESS', 'Customer arrived to business') },
|
|
79
|
-
{ key: 22, value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver') },
|
|
80
|
-
{ key: 23, value: t('ORDER_DRIVER_ON_WAY', 'Driver on way') }
|
|
81
|
-
]
|
|
82
|
-
|
|
83
|
-
const objectStatus = orderStatus.find((o) => o.key === status)
|
|
84
|
-
|
|
85
|
-
return objectStatus && objectStatus
|
|
86
|
-
}
|
|
87
|
-
|
|
88
55
|
const handleClickOrder = (uuid: string) => {
|
|
89
56
|
setSelectedOrderId(uuid)
|
|
90
57
|
setOpenMessges(true)
|
|
@@ -102,7 +69,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
102
69
|
}, [orderList, loading])
|
|
103
70
|
|
|
104
71
|
useEffect(() => {
|
|
105
|
-
if(refreshOrders){
|
|
72
|
+
if (refreshOrders) {
|
|
106
73
|
loadOrders(false, false, false, true)
|
|
107
74
|
setRefreshOrders && setRefreshOrders(false)
|
|
108
75
|
}
|
|
@@ -225,7 +192,7 @@ const OrderMessageUI = (props: any) => {
|
|
|
225
192
|
}
|
|
226
193
|
|
|
227
194
|
export const OrderListing = (props: OrdersOptionParams) => {
|
|
228
|
-
|
|
195
|
+
const [businessState] = useBusiness();
|
|
229
196
|
const OrderListingProps = {
|
|
230
197
|
...props,
|
|
231
198
|
UIComponent: OrdersOptionUI,
|
|
@@ -236,7 +203,7 @@ export const OrderListing = (props: OrdersOptionParams) => {
|
|
|
236
203
|
pageSize: 10,
|
|
237
204
|
controlType: 'infinity'
|
|
238
205
|
},
|
|
239
|
-
|
|
206
|
+
businessId: businessState?.business?.id,
|
|
240
207
|
profileMessages: true,
|
|
241
208
|
orderBy: 'last_direct_message_at',
|
|
242
209
|
orderDirection: 'asc'
|
|
@@ -292,7 +259,7 @@ export const MessageListing = (props: MessageListingParams) => {
|
|
|
292
259
|
titleAlign={'center'}
|
|
293
260
|
onActionLeft={goToBack}
|
|
294
261
|
showCall={false}
|
|
295
|
-
paddingTop={10}
|
|
262
|
+
paddingTop={Platform.OS === 'ios' ? 20 : 10}
|
|
296
263
|
btnStyle={{ paddingLeft: 0 }}
|
|
297
264
|
/>
|
|
298
265
|
<OrderListing
|
|
@@ -300,7 +267,7 @@ export const MessageListing = (props: MessageListingParams) => {
|
|
|
300
267
|
setSelectedOrderId={setSelectedOrderId}
|
|
301
268
|
setOrderList={setOrderListStatus}
|
|
302
269
|
setOpenMessges={setOpenMessges}
|
|
303
|
-
|
|
270
|
+
franchiseId={props.franchiseId}
|
|
304
271
|
/>
|
|
305
272
|
{openMessages && seletedOrder && (
|
|
306
273
|
<OModal
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react'
|
|
2
|
+
import Clipboard from '@react-native-clipboard/clipboard';
|
|
2
3
|
import { Messages as MessagesController, useSession, useUtils, useLanguage, ToastType, useToast } from 'ordering-components/native'
|
|
3
4
|
import { useTheme } from 'styled-components/native';
|
|
4
5
|
import { launchImageLibrary } from 'react-native-image-picker'
|
|
5
6
|
import { GiftedChat, Actions, ActionsProps, InputToolbar, Composer, Send, Bubble, MessageImage, InputToolbarProps, ComposerProps } from 'react-native-gifted-chat'
|
|
6
7
|
import { USER_TYPE } from '../../config/constants'
|
|
7
8
|
import MaterialCommunityIcon from 'react-native-vector-icons/MaterialCommunityIcons'
|
|
9
|
+
import AntDesignIcon from 'react-native-vector-icons/AntDesign'
|
|
8
10
|
import { OIcon, OIconButton, OText, OButton } from '../shared'
|
|
9
11
|
import { TouchableOpacity, ActivityIndicator, StyleSheet, View, Platform, Keyboard } from 'react-native'
|
|
10
12
|
import { Header, TitleHeader, Wrapper, QuickMessageContainer, ProfileMessageHeader, MessageTypeItem } from './styles'
|
|
@@ -36,7 +38,7 @@ const ORDER_STATUS: any = {
|
|
|
36
38
|
20: 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
|
|
37
39
|
21: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
|
|
38
40
|
22: 'ORDER_LOOKING_FOR_DRIVER',
|
|
39
|
-
|
|
41
|
+
23: 'ORDER_DRIVER_ON_WAY'
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
const filterSpecialStatus = ['prepared_in', 'delivered_in', 'delivery_datetime']
|
|
@@ -122,18 +124,17 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
122
124
|
|
|
123
125
|
const messageConsole = (message: any) => {
|
|
124
126
|
return message.change?.attribute !== 'driver_id'
|
|
125
|
-
?
|
|
126
|
-
`${t('ORDER', 'Order')} ${t(message.change.attribute.toUpperCase(), message.change.attribute.replace('_', ' '))} ${t('CHANGED_FROM', 'Changed from')} ${
|
|
127
|
-
filterSpecialStatus.includes(message.change.attribute) ?
|
|
128
|
-
`${message.change.old === null ? '0' : message.change.old} ${t('TO', 'to')} ${message.change.new} ${t('MINUTES', 'Minutes')}` :
|
|
129
|
-
`${message.change.old !== null && t(ORDER_STATUS[parseInt(message.change.old, 10)])} ${t('TO', 'to')} ${t(ORDER_STATUS[parseInt(message.change.new, 10)])}`
|
|
130
|
-
}`
|
|
131
|
-
: message.change.new
|
|
132
127
|
?
|
|
133
|
-
`${
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
128
|
+
`${t('ORDER', 'Order')} ${t(message.change.attribute.toUpperCase(), message.change.attribute.replace('_', ' '))} ${t('CHANGED_FROM', 'Changed from')} ${filterSpecialStatus.includes(message.change.attribute) ?
|
|
129
|
+
`${message.change.old === null ? '0' : message.change.old} ${t('TO', 'to')} ${message.change.new} ${t('MINUTES', 'Minutes')}` :
|
|
130
|
+
`${message.change.old !== null && t(ORDER_STATUS[parseInt(message.change.old, 10)])} ${t('TO', 'to')} ${t(ORDER_STATUS[parseInt(message.change.new, 10)])}`
|
|
131
|
+
}`
|
|
132
|
+
: message.change.new
|
|
133
|
+
?
|
|
134
|
+
`${message.driver?.name} ${message.driver?.lastname !== null ? message.driver.lastname : ''} ${t('WAS_ASSIGNED_AS_DRIVER', 'Was assigned as driver')} ${message.comment ? message.comment.length : ''}`
|
|
135
|
+
:
|
|
136
|
+
`${t('DRIVER_UNASSIGNED', 'Driver unassigned')}`
|
|
137
|
+
}
|
|
137
138
|
|
|
138
139
|
useEffect(() => {
|
|
139
140
|
let newMessages: Array<any> = []
|
|
@@ -141,7 +142,7 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
141
142
|
const firstMessage = {
|
|
142
143
|
_id: 0,
|
|
143
144
|
text: _console,
|
|
144
|
-
createdAt: order?.created_at,
|
|
145
|
+
createdAt: parseDate(order?.created_at, { outputFormat: 'YYYY-MM-DD HH:mm:ss' }),
|
|
145
146
|
system: true
|
|
146
147
|
}
|
|
147
148
|
const newMessage: any = [];
|
|
@@ -150,7 +151,7 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
150
151
|
newMessage.push({
|
|
151
152
|
_id: message?.id,
|
|
152
153
|
text: message.type === 1 ? messageConsole(message) : message.comment,
|
|
153
|
-
createdAt: message.type !== 0 && message
|
|
154
|
+
createdAt: message.type !== 0 && parseDate(message?.created_at, { outputFormat: 'YYYY-MM-DD HH:mm:ss' }),
|
|
154
155
|
image: message.source,
|
|
155
156
|
system: message.type === 1,
|
|
156
157
|
user: {
|
|
@@ -165,7 +166,7 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
165
166
|
newMessage.push({
|
|
166
167
|
_id: message?.id,
|
|
167
168
|
text: message.type === 1 ? messageConsole(message) : message.comment,
|
|
168
|
-
createdAt: message.type !== 0 && message
|
|
169
|
+
createdAt: message.type !== 0 && parseDate(message?.created_at, { outputFormat: 'YYYY-MM-DD HH:mm:ss' }),
|
|
169
170
|
image: message.source,
|
|
170
171
|
system: message.type === 1,
|
|
171
172
|
user: {
|
|
@@ -397,12 +398,27 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
397
398
|
}
|
|
398
399
|
}
|
|
399
400
|
|
|
401
|
+
const onLongPress = (context: any, message: any) => {
|
|
402
|
+
const options = [
|
|
403
|
+
t('COPY_TEXT', 'Copy text'),
|
|
404
|
+
t('CANCEL', 'Cancel'),
|
|
405
|
+
];
|
|
406
|
+
const cancelButtonIndex = options.length - 1;
|
|
407
|
+
context.actionSheet().showActionSheetWithOptions({
|
|
408
|
+
options,
|
|
409
|
+
cancelButtonIndex
|
|
410
|
+
}, (buttonIndex: any) => buttonIndex === 0 && Clipboard.setString(message.text)
|
|
411
|
+
);
|
|
412
|
+
}
|
|
413
|
+
|
|
400
414
|
return (
|
|
401
415
|
<View style={{ height: getViewHeight(), width: '100%', paddingTop: 12, backgroundColor: 'white' }}>
|
|
402
416
|
<Wrapper>
|
|
403
417
|
{!isMeesageListing ? (
|
|
404
418
|
<Header>
|
|
405
|
-
<
|
|
419
|
+
<TouchableOpacity onPress={onClose} style={{ paddingStart: 10, borderColor: theme.colors.clear }}>
|
|
420
|
+
<AntDesignIcon name='arrowleft' size={26} />
|
|
421
|
+
</TouchableOpacity>
|
|
406
422
|
<View style={{ marginRight: 10, shadowColor: theme.colors.black, shadowOpacity: 0.1, shadowOffset: { width: 0, height: 1 }, shadowRadius: 2 }}>
|
|
407
423
|
<OIcon
|
|
408
424
|
url={type === USER_TYPE.DRIVER ? order?.driver?.photo : order?.business?.logo}
|
|
@@ -419,10 +435,8 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
419
435
|
) : (
|
|
420
436
|
<ProfileMessageHeader>
|
|
421
437
|
<View style={{ ...styles.headerTitle }}>
|
|
422
|
-
<TouchableOpacity
|
|
423
|
-
|
|
424
|
-
onPress={onClose}>
|
|
425
|
-
<OIcon src={theme.images.general.arrow_left} width={16} />
|
|
438
|
+
<TouchableOpacity onPress={onClose} style={styles.headerItem}>
|
|
439
|
+
<AntDesignIcon name='arrowleft' size={26} />
|
|
426
440
|
</TouchableOpacity>
|
|
427
441
|
<OText size={18}>{t('ORDER', theme?.defaultLanguages?.ORDER || 'Order')} #{order?.id}</OText>
|
|
428
442
|
</View>
|
|
@@ -473,6 +487,7 @@ const MessagesUI = (props: MessagesParams) => {
|
|
|
473
487
|
onSend={onSubmit}
|
|
474
488
|
onInputTextChanged={onChangeMessage}
|
|
475
489
|
alignTop
|
|
490
|
+
onLongPress={(context: any, message: any) => onLongPress(context, message)}
|
|
476
491
|
scrollToBottom
|
|
477
492
|
renderAvatarOnTop
|
|
478
493
|
renderUsernameOnMessage
|
|
@@ -13,7 +13,8 @@ import IconAntDesign from 'react-native-vector-icons/AntDesign'
|
|
|
13
13
|
import {
|
|
14
14
|
StyleSheet,
|
|
15
15
|
View,
|
|
16
|
-
TouchableOpacity
|
|
16
|
+
TouchableOpacity,
|
|
17
|
+
Platform
|
|
17
18
|
} from 'react-native';
|
|
18
19
|
import Spinner from 'react-native-loading-spinner-overlay';
|
|
19
20
|
import { MomentOptionParams } from '../../types';
|
|
@@ -28,6 +29,7 @@ import {
|
|
|
28
29
|
TimeItem
|
|
29
30
|
} from './styles';
|
|
30
31
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
32
|
+
import { locale, monthsEnum } from '../../utils';
|
|
31
33
|
|
|
32
34
|
const MomentOptionUI = (props: MomentOptionParams) => {
|
|
33
35
|
const {
|
|
@@ -252,19 +254,22 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
252
254
|
|
|
253
255
|
return (
|
|
254
256
|
<>
|
|
255
|
-
<Container
|
|
256
|
-
|
|
257
|
+
<Container
|
|
258
|
+
style={{
|
|
259
|
+
paddingLeft: 40,
|
|
260
|
+
paddingRight: 40
|
|
261
|
+
}}>
|
|
262
|
+
<View style={{ paddingBottom: 90, paddingRight: 20 }}>
|
|
257
263
|
<NavBar
|
|
258
264
|
onActionLeft={() => goToBack()}
|
|
259
265
|
btnStyle={{ paddingLeft: 0 }}
|
|
260
|
-
|
|
261
|
-
|
|
266
|
+
style={{ paddingBottom: 0 }}
|
|
267
|
+
paddingTop={Platform.OS === 'ios' ? 10 : 0}
|
|
262
268
|
title={t('QUESTION_WHEN_ORDER', 'When do you want your order?')}
|
|
263
269
|
titleAlign={'center'}
|
|
264
270
|
titleStyle={{ fontSize: 14, marginRight: 0, marginLeft: 0 }}
|
|
265
271
|
titleWrapStyle={{ paddingHorizontal: 0 }}
|
|
266
272
|
/>
|
|
267
|
-
|
|
268
273
|
<WrapSelectOption
|
|
269
274
|
onPress={() => _handleAsap()}
|
|
270
275
|
disabled={orderState.loading} style={{ alignItems: 'flex-start' }}>
|
|
@@ -281,7 +286,7 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
281
286
|
style={{ marginEnd: 24 }}
|
|
282
287
|
/>
|
|
283
288
|
)}
|
|
284
|
-
<OText color={optionSelected.isAsap ? theme.colors.textNormal : theme.colors.disabled}>{t('ASAP_ABBREVIATION', 'ASAP') + ` (${moment().format('dddd, MMM D, yyyy h:mm A')} + delivery time)`}</OText>
|
|
289
|
+
<OText color={optionSelected.isAsap ? theme.colors.textNormal : theme.colors.disabled}>{t('ASAP_ABBREVIATION', 'ASAP') + ` (${t(moment().format('dddd')?.toLocaleUpperCase(), moment().format('dddd'))}, ${t(monthsEnum[moment().format('MMM')], moment().format('MMM'))}${moment().format(' D, yyyy h:mm A')} + ${t('DELIVERY_TIME', 'delivery time')})`}</OText>
|
|
285
290
|
</WrapSelectOption>
|
|
286
291
|
<WrapSelectOption
|
|
287
292
|
onPress={() => setOptionSelected({ isAsap: false, isSchedule: true })}
|
|
@@ -308,6 +313,7 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
308
313
|
{selectDate && datesWhitelist[0]?.start !== null && (
|
|
309
314
|
<CalendarStrip
|
|
310
315
|
scrollable
|
|
316
|
+
locale={locale}
|
|
311
317
|
style={styles.calendar}
|
|
312
318
|
calendarHeaderContainerStyle={styles.calendarHeaderContainer}
|
|
313
319
|
calendarHeaderStyle={styles.calendarHeader}
|
|
@@ -342,12 +348,12 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
342
348
|
style={{
|
|
343
349
|
lineHeight: 24
|
|
344
350
|
}}
|
|
345
|
-
>{is12hours ? (
|
|
346
|
-
time.startTime.includes('12')
|
|
351
|
+
>{is12hours ? (
|
|
352
|
+
time.startTime.includes('12')
|
|
347
353
|
? `${time.startTime}PM`
|
|
348
354
|
: parseTime(moment(time.startTime, 'HH:mm'), { outputFormat: 'hh:mma' })
|
|
349
|
-
|
|
350
|
-
|
|
355
|
+
) : time.startTime
|
|
356
|
+
}</OText>
|
|
351
357
|
</TimeItem>
|
|
352
358
|
</TouchableOpacity>
|
|
353
359
|
))}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { View } from 'react-native'
|
|
3
|
+
import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder'
|
|
4
|
+
import { useTheme } from 'styled-components/native';
|
|
5
|
+
import { MultiCartCreate } from 'ordering-components/native'
|
|
6
|
+
|
|
7
|
+
import { Container } from '../../layouts/Container';
|
|
8
|
+
import { ChContainer, ChSection, ChUserDetails } from '../Checkout/styles'
|
|
9
|
+
|
|
10
|
+
export const MultiCartUI = () => {
|
|
11
|
+
const theme = useTheme();
|
|
12
|
+
return (
|
|
13
|
+
<Container noPadding>
|
|
14
|
+
<ChContainer style={{ paddingHorizontal: 40 }}>
|
|
15
|
+
<ChSection>
|
|
16
|
+
<ChUserDetails>
|
|
17
|
+
<Placeholder Animation={Fade}>
|
|
18
|
+
<PlaceholderLine height={20} />
|
|
19
|
+
<PlaceholderLine height={20} />
|
|
20
|
+
<PlaceholderLine height={20} />
|
|
21
|
+
<PlaceholderLine height={20} style={{ marginBottom: 20 }} />
|
|
22
|
+
</Placeholder>
|
|
23
|
+
<View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100, marginHorizontal: -40, marginBottom: 20 }} />
|
|
24
|
+
<Placeholder Animation={Fade}>
|
|
25
|
+
<PlaceholderLine height={20} />
|
|
26
|
+
<PlaceholderLine height={20} />
|
|
27
|
+
<PlaceholderLine height={20} />
|
|
28
|
+
<PlaceholderLine height={20} style={{ marginBottom: 20 }} />
|
|
29
|
+
</Placeholder>
|
|
30
|
+
<View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100, marginHorizontal: -40, marginBottom: 20 }} />
|
|
31
|
+
<Placeholder Animation={Fade}>
|
|
32
|
+
<PlaceholderLine height={20} />
|
|
33
|
+
<PlaceholderLine height={120} style={{ marginBottom: 20, borderRadius: 8 }} />
|
|
34
|
+
<PlaceholderLine height={20} />
|
|
35
|
+
<PlaceholderLine height={20} />
|
|
36
|
+
</Placeholder>
|
|
37
|
+
</ChUserDetails>
|
|
38
|
+
</ChSection>
|
|
39
|
+
</ChContainer>
|
|
40
|
+
</Container>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const MultiCart = (props: any) => {
|
|
45
|
+
const mulcartProps = {
|
|
46
|
+
...props,
|
|
47
|
+
UIComponent: MultiCartUI
|
|
48
|
+
}
|
|
49
|
+
return <MultiCartCreate {...mulcartProps} />
|
|
50
|
+
}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from 'ordering-components/native'
|
|
8
8
|
import { useTheme } from 'styled-components/native'
|
|
9
9
|
import { View, TouchableOpacity, FlatList, StyleSheet, KeyboardAvoidingView, Platform } from 'react-native'
|
|
10
|
-
import { Placeholder,
|
|
10
|
+
import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder'
|
|
11
11
|
import { OText, OIcon, OModal, OButton } from '../shared'
|
|
12
12
|
import { getIconCard, flatArray } from '../../utils'
|
|
13
13
|
import { StripeElementsForm } from '../StripeElementsForm'
|
|
@@ -25,7 +25,6 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
|
|
|
25
25
|
businessIds,
|
|
26
26
|
paymethodsAndWallets,
|
|
27
27
|
walletsState,
|
|
28
|
-
businessPaymethods,
|
|
29
28
|
paymethodSelected,
|
|
30
29
|
handleSelectPaymethod,
|
|
31
30
|
handleSelectWallet,
|
|
@@ -37,7 +36,7 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
|
|
|
37
36
|
const [{ configs }] = useConfig()
|
|
38
37
|
const [{ parsePrice }] = useUtils()
|
|
39
38
|
|
|
40
|
-
|
|
39
|
+
const [addCardOpen, setAddCardOpen] = useState({ stripe: false, stripeConnect: false });
|
|
41
40
|
|
|
42
41
|
const isWalletCashEnabled = configs?.wallet_cash_enabled?.value === '1'
|
|
43
42
|
const isWalletPointsEnabled = configs?.wallet_credit_point_enabled?.value === '1'
|
|
@@ -54,52 +53,52 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
|
|
|
54
53
|
}
|
|
55
54
|
|
|
56
55
|
const getPayIcon = (method: string) => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
56
|
+
switch (method) {
|
|
57
|
+
case 'cash':
|
|
58
|
+
return theme.images.general.cash
|
|
59
|
+
case 'card_delivery':
|
|
60
|
+
return theme.images.general.carddelivery
|
|
61
|
+
case 'paypal':
|
|
62
|
+
return theme.images.general.paypal
|
|
63
|
+
case 'stripe':
|
|
64
|
+
return theme.images.general.creditCard
|
|
65
|
+
case 'stripe_direct':
|
|
66
|
+
return theme.images.general.stripecc
|
|
67
|
+
case 'stripe_connect':
|
|
68
|
+
return theme.images.general.stripes
|
|
69
|
+
case 'stripe_redirect':
|
|
70
|
+
return theme.images.general.stripesb
|
|
71
|
+
default:
|
|
72
|
+
return theme.images.general.creditCard
|
|
73
|
+
}
|
|
74
|
+
}
|
|
76
75
|
|
|
77
76
|
const renderPaymethods = ({ item }: any) => {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
77
|
+
return (
|
|
78
|
+
<TouchableOpacity
|
|
79
|
+
onPress={() => handleSelectPaymethod({ ...item, paymethod: { gateway: item.gateway }, paymethod_id: item?.id })}
|
|
80
|
+
>
|
|
81
|
+
<PMItem
|
|
82
|
+
key={item.id}
|
|
83
|
+
isActive={paymethodSelected?.id === item.id}
|
|
84
|
+
>
|
|
85
|
+
<OIcon
|
|
86
|
+
src={getPayIcon(item?.gateway ?? item.paymethod?.gateway)}
|
|
87
|
+
width={20}
|
|
88
|
+
height={20}
|
|
89
|
+
color={paymethodSelected?.id === item.id ? theme.colors.white : theme.colors.backgroundDark}
|
|
90
|
+
/>
|
|
91
|
+
<OText
|
|
92
|
+
size={10}
|
|
93
|
+
style={{ margin: 0, marginTop: 4 }}
|
|
94
|
+
color={paymethodSelected?.id === item.id ? theme.colors.white : '#000'}
|
|
95
|
+
>
|
|
96
|
+
{t(item?.gateway.toUpperCase(), item?.name)}
|
|
97
|
+
</OText>
|
|
98
|
+
</PMItem>
|
|
99
|
+
</TouchableOpacity>
|
|
100
|
+
)
|
|
101
|
+
}
|
|
103
102
|
|
|
104
103
|
return (
|
|
105
104
|
<PMContainer>
|
|
@@ -123,10 +122,10 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
|
|
|
123
122
|
) : (
|
|
124
123
|
<FlatList
|
|
125
124
|
horizontal
|
|
126
|
-
|
|
127
|
-
data={
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
showsHorizontalScrollIndicator={false}
|
|
126
|
+
data={paymethodsAndWallets.paymethods}
|
|
127
|
+
renderItem={renderPaymethods}
|
|
128
|
+
keyExtractor={(paymethod: any) => paymethod?.id?.toString?.()}
|
|
130
129
|
/>
|
|
131
130
|
)}
|
|
132
131
|
{!paymethodsAndWallets.loading && !paymethodsAndWallets.error && paymethodsAndWallets.paymethods.length === 0 && (
|
|
@@ -138,22 +137,22 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
|
|
|
138
137
|
{paymethodSelected?.paymethod?.gateway === 'stripe' && (
|
|
139
138
|
<View>
|
|
140
139
|
<OButton
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
140
|
+
text={t('ADD_PAYMENT_CARD', 'Add New Payment Card')}
|
|
141
|
+
bgColor={theme.colors.white}
|
|
142
|
+
borderColor={theme.colors.primary}
|
|
143
|
+
style={styles.btnAddStyle}
|
|
144
|
+
textStyle={{ color: theme.colors.primary, fontSize: 12 }}
|
|
145
|
+
imgRightSrc={null}
|
|
146
|
+
onClick={() => setAddCardOpen({ ...addCardOpen, stripe: true })}
|
|
147
|
+
/>
|
|
149
148
|
<StripeCardsList
|
|
150
|
-
|
|
151
|
-
|
|
149
|
+
paymethod={paymethodSelected?.paymethod}
|
|
150
|
+
businessId={businessIds[0]}
|
|
152
151
|
businessIds={businessIds}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
152
|
+
publicKey={paymethodSelected?.data?.publishable}
|
|
153
|
+
payType={paymethodSelected?.paymethod?.name}
|
|
154
|
+
onSelectCard={handlePaymethodDataChange}
|
|
155
|
+
/>
|
|
157
156
|
</View>
|
|
158
157
|
)}
|
|
159
158
|
|
|
@@ -170,7 +169,7 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
|
|
|
170
169
|
</>
|
|
171
170
|
) : (
|
|
172
171
|
<>
|
|
173
|
-
{walletsState
|
|
172
|
+
{walletsState?.result?.filter((wallet: any) => paymethodsAndWallets.wallets.find((item: any) => item.type === wallet.type)).map((wallet: any, idx: any) => walletName[wallet.type]?.isActive && (
|
|
174
173
|
<WalletItem
|
|
175
174
|
key={wallet.type}
|
|
176
175
|
isBottomBorder={idx === paymethodsAndWallets.wallets?.length - 1}
|
|
@@ -197,40 +196,40 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
|
|
|
197
196
|
)}
|
|
198
197
|
|
|
199
198
|
<OModal
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
199
|
+
entireModal
|
|
200
|
+
title={t('ADD_CREDIT_OR_DEBIT_CARD', 'Add credit or debit card')}
|
|
201
|
+
open={addCardOpen.stripe}
|
|
202
|
+
onClose={() => setAddCardOpen({ ...addCardOpen, stripe: false })}
|
|
203
|
+
style={{ backgroundColor: 'red' }}
|
|
204
|
+
>
|
|
205
|
+
<KeyboardAvoidingView
|
|
206
|
+
behavior={Platform.OS == 'ios' ? 'padding' : 'height'}
|
|
207
|
+
keyboardVerticalOffset={Platform.OS == 'ios' ? 0 : 0}
|
|
208
|
+
enabled={Platform.OS === 'ios' ? true : false}
|
|
209
|
+
>
|
|
210
|
+
<StripeElementsForm
|
|
211
|
+
toSave
|
|
212
|
+
businessId={businessIds[0]}
|
|
214
213
|
businessIds={businessIds}
|
|
215
214
|
publicKey={paymethodSelected?.data?.publishable}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
215
|
+
requirements={props.clientSecret}
|
|
216
|
+
onSelectCard={handlePaymethodDataChange}
|
|
217
|
+
onCancel={() => setAddCardOpen({ ...addCardOpen, stripe: false })}
|
|
218
|
+
/>
|
|
219
|
+
</KeyboardAvoidingView>
|
|
220
|
+
</OModal>
|
|
222
221
|
</PMContainer>
|
|
223
222
|
)
|
|
224
223
|
}
|
|
225
224
|
|
|
226
225
|
const styles = StyleSheet.create({
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
226
|
+
btnAddStyle: {
|
|
227
|
+
marginVertical: 20,
|
|
228
|
+
borderRadius: 7.6,
|
|
229
|
+
shadowOpacity: 0,
|
|
230
|
+
height: 44,
|
|
231
|
+
borderWidth: 1
|
|
232
|
+
},
|
|
234
233
|
})
|
|
235
234
|
|
|
236
235
|
|