ordering-ui-react-native 0.15.42 → 0.15.44-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 -3
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/AddressForm/index.tsx +18 -2
- package/src/components/BusinessController/index.tsx +8 -2
- package/src/components/BusinessTypeFilter/index.tsx +3 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +23 -2
- package/src/components/DriverTips/index.tsx +11 -6
- package/src/components/LanguageSelector/index.tsx +7 -2
- package/src/components/LoginForm/index.tsx +3 -1
- package/src/components/OrderDetails/index.tsx +9 -23
- package/src/components/PaymentOptions/index.tsx +1 -1
- package/src/components/PaymentOptionsWebView/index.tsx +123 -124
- package/src/components/SignupForm/index.tsx +3 -1
- package/src/components/SingleProductCard/index.tsx +16 -4
- package/src/components/StripeMethodForm/index.tsx +1 -2
- package/src/components/UpsellingProducts/index.tsx +1 -1
- package/src/components/UserProfileForm/index.tsx +63 -6
- package/src/components/UserProfileForm/styles.tsx +8 -0
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OModal.tsx +1 -1
- package/src/hooks/useCountdownTimer.tsx +26 -0
- package/src/navigators/CheckoutNavigator.tsx +6 -0
- package/src/navigators/HomeNavigator.tsx +12 -0
- package/src/pages/BusinessesListing.tsx +1 -1
- package/src/pages/MultiCheckout.tsx +31 -0
- package/src/pages/MultiOrdersDetails.tsx +27 -0
- package/src/pages/Sessions.tsx +22 -0
- package/src/theme.json +0 -1
- package/src/types/index.tsx +5 -2
- package/src/utils/index.tsx +68 -1
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +103 -15
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -0
- package/themes/business/src/components/Chat/index.tsx +42 -90
- package/themes/business/src/components/DriverMap/index.tsx +6 -5
- package/themes/business/src/components/Home/index.tsx +128 -55
- package/themes/business/src/components/Home/styles.tsx +8 -1
- package/themes/business/src/components/LoginForm/index.tsx +89 -2
- package/themes/business/src/components/LoginForm/styles.tsx +6 -0
- package/themes/business/src/components/LogoutButton/index.tsx +1 -1
- package/themes/business/src/components/NewOrderNotification/index.tsx +79 -105
- package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
- package/themes/business/src/components/OrderDetails/Delivery.tsx +35 -18
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +159 -91
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +6 -0
- package/themes/business/src/components/OrderDetails/styles.tsx +7 -0
- package/themes/business/src/components/OrdersListManager/index.tsx +52 -49
- package/themes/business/src/components/OrdersOption/index.tsx +57 -50
- package/themes/business/src/components/PreviousOrders/index.tsx +50 -14
- package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/business/src/components/shared/OModal.tsx +1 -1
- package/themes/business/src/types/index.tsx +5 -1
- 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/BusinessMenu/index.tsx +39 -28
- package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -3
- package/themes/kiosk/src/components/Cart/index.tsx +99 -26
- package/themes/kiosk/src/components/Cart/styles.tsx +6 -0
- package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
- package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
- package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
- package/themes/kiosk/src/components/CategoriesMenu/index.tsx +107 -62
- package/themes/kiosk/src/components/Checkout/index.tsx +40 -22
- package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
- package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
- package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
- package/themes/kiosk/src/components/NavBar/index.tsx +29 -20
- package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderDetails/index.tsx +165 -65
- package/themes/kiosk/src/components/OrderDetails/styles.tsx +5 -0
- package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +9 -11
- package/themes/kiosk/src/components/PaymentOptions/index.tsx +56 -54
- package/themes/kiosk/src/components/ProductForm/index.tsx +8 -9
- package/themes/kiosk/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/kiosk/src/components/ProductOption/index.tsx +1 -1
- package/themes/kiosk/src/components/ProductOptionSubOption/index.tsx +3 -1
- package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/kiosk/src/types/index.d.ts +3 -0
- package/themes/original/index.tsx +180 -3
- package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
- package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
- package/themes/original/src/components/AddressForm/index.tsx +1 -1
- package/themes/original/src/components/AddressList/index.tsx +30 -18
- package/themes/original/src/components/AppleLogin/index.tsx +117 -78
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +70 -41
- package/themes/original/src/components/BusinessController/index.tsx +50 -12
- package/themes/original/src/components/BusinessController/styles.tsx +27 -0
- package/themes/original/src/components/BusinessFeaturedController/index.tsx +20 -1
- package/themes/original/src/components/BusinessFeaturedController/styles.tsx +23 -0
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +8 -5
- package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
- package/themes/original/src/components/BusinessListingSearch/index.tsx +196 -58
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +22 -2
- package/themes/original/src/components/BusinessPreorder/index.tsx +2 -2
- package/themes/original/src/components/BusinessProductsCategories/index.tsx +8 -6
- package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
- package/themes/original/src/components/BusinessProductsList/index.tsx +120 -36
- package/themes/original/src/components/BusinessProductsList/styles.tsx +12 -4
- package/themes/original/src/components/BusinessProductsListing/index.tsx +116 -26
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +22 -0
- package/themes/original/src/components/BusinessReviews/index.tsx +4 -25
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +1 -2
- package/themes/original/src/components/BusinessesListing/index.tsx +127 -66
- package/themes/original/src/components/BusinessesListing/styles.tsx +11 -3
- package/themes/original/src/components/Cart/index.tsx +60 -43
- package/themes/original/src/components/Checkout/index.tsx +50 -33
- package/themes/original/src/components/DriverTips/index.tsx +17 -12
- package/themes/original/src/components/Favorite/index.tsx +91 -0
- package/themes/original/src/components/Favorite/styles.tsx +22 -0
- package/themes/original/src/components/FavoriteList/index.tsx +287 -0
- package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +84 -4
- package/themes/original/src/components/GPSButton/index.tsx +15 -8
- package/themes/original/src/components/GoogleMap/index.tsx +1 -0
- package/themes/original/src/components/Help/index.tsx +21 -4
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
- package/themes/original/src/components/Home/index.tsx +1 -1
- package/themes/original/src/components/LastOrders/index.tsx +12 -1
- package/themes/original/src/components/LoginForm/Otp/index.tsx +90 -0
- package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
- package/themes/original/src/components/LoginForm/index.tsx +394 -155
- package/themes/original/src/components/LoginForm/styles.tsx +7 -4
- package/themes/original/src/components/LogoutButton/index.tsx +7 -1
- package/themes/original/src/components/MessageListing/index.tsx +10 -1
- package/themes/original/src/components/Messages/index.tsx +1 -1
- package/themes/original/src/components/MomentOption/index.tsx +10 -1
- package/themes/original/src/components/MomentOption/styles.tsx +1 -1
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
- package/themes/original/src/components/MultiCheckout/index.tsx +298 -0
- package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
- package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +258 -0
- package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
- package/themes/original/src/components/MyOrders/index.tsx +120 -32
- package/themes/original/src/components/MyOrders/styles.tsx +8 -1
- package/themes/original/src/components/OrderDetails/index.tsx +64 -44
- package/themes/original/src/components/OrderDetails/styles.tsx +1 -2
- package/themes/original/src/components/OrderProgress/index.tsx +3 -3
- package/themes/original/src/components/OrderProgress/styles.tsx +1 -0
- package/themes/original/src/components/OrderSummary/index.tsx +3 -3
- package/themes/original/src/components/OrderTypeSelector/index.tsx +4 -2
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +153 -0
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +53 -0
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
- package/themes/original/src/components/OrdersOption/index.tsx +133 -41
- package/themes/original/src/components/OrdersOption/styles.tsx +4 -7
- package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +22 -24
- package/themes/original/src/components/PaymentOptionWallet/styles.tsx +1 -1
- package/themes/original/src/components/PaymentOptions/index.tsx +19 -15
- package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
- package/themes/original/src/components/PreviousOrders/index.tsx +18 -145
- package/themes/original/src/components/ProductForm/index.tsx +74 -66
- package/themes/original/src/components/ProductForm/styles.tsx +0 -1
- package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -12
- package/themes/original/src/components/Promotions/index.tsx +250 -0
- package/themes/original/src/components/Promotions/styles.tsx +60 -0
- package/themes/original/src/components/SearchBar/index.tsx +10 -4
- package/themes/original/src/components/Sessions/index.tsx +160 -0
- package/themes/original/src/components/Sessions/styles.tsx +15 -0
- package/themes/original/src/components/SignupForm/index.tsx +79 -6
- package/themes/original/src/components/SingleOrderCard/index.tsx +282 -0
- package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
- package/themes/original/src/components/SingleProductCard/index.tsx +59 -17
- package/themes/original/src/components/StripeElementsForm/index.tsx +10 -2
- package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
- package/themes/original/src/components/TaxInformation/index.tsx +10 -4
- package/themes/original/src/components/UpsellingProducts/index.tsx +86 -74
- package/themes/original/src/components/UserDetails/index.tsx +5 -96
- package/themes/original/src/components/UserFormDetails/index.tsx +34 -24
- package/themes/original/src/components/UserProfile/index.tsx +59 -5
- package/themes/original/src/components/UserProfileForm/index.tsx +20 -18
- package/themes/original/src/components/UserVerification/index.tsx +178 -192
- package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
- package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
- package/themes/original/src/components/Wallets/index.tsx +76 -9
- package/themes/original/src/components/Wallets/styles.tsx +21 -0
- package/themes/original/src/components/shared/HeaderTitle.tsx +2 -1
- package/themes/original/src/components/shared/OModal.tsx +4 -2
- package/themes/original/src/config/constants.tsx +6 -6
- package/themes/original/src/types/index.tsx +132 -9
- package/themes/original/src/utils/index.tsx +19 -2
- package/themes/single-business/src/components/AddressList/index.tsx +1 -1
- package/themes/single-business/src/components/OrderTypeSelector/index.tsx +1 -1
- package/themes/single-business/src/components/UserProfile/index.tsx +1 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//React & React Native
|
|
2
2
|
import React, { useState, useEffect } from 'react';
|
|
3
|
-
import { StyleSheet, View
|
|
3
|
+
import { StyleSheet, View } from 'react-native';
|
|
4
4
|
|
|
5
5
|
// Thirds
|
|
6
6
|
import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
|
|
@@ -29,7 +29,6 @@ import { NotFoundSource } from '../NotFoundSource';
|
|
|
29
29
|
import { getOrderStatus } from '../../utils';
|
|
30
30
|
import { OrderHeaderComponent } from './OrderHeaderComponent';
|
|
31
31
|
import { OrderContentComponent } from './OrderContentComponent';
|
|
32
|
-
|
|
33
32
|
//Styles
|
|
34
33
|
import { OrderDetailsContainer, Pickup } from './styles';
|
|
35
34
|
|
|
@@ -51,7 +50,9 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
51
50
|
orderTitle,
|
|
52
51
|
appTitle,
|
|
53
52
|
handleClickLogisticOrder,
|
|
54
|
-
forceUpdate
|
|
53
|
+
forceUpdate,
|
|
54
|
+
getPermissions,
|
|
55
|
+
isGrantedPermissions
|
|
55
56
|
} = props;
|
|
56
57
|
const [, { showToast }] = useToast();
|
|
57
58
|
const { order } = props.order
|
|
@@ -72,6 +73,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
72
73
|
key?: string | null;
|
|
73
74
|
}>({ open: false, content: [], key: null });
|
|
74
75
|
|
|
76
|
+
const validStatusComplete = [9, 19, 23]
|
|
77
|
+
|
|
75
78
|
const logisticOrderStatus = [4, 6, 7]
|
|
76
79
|
|
|
77
80
|
const showFloatButtonsPickUp: any = {
|
|
@@ -101,9 +104,18 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
101
104
|
};
|
|
102
105
|
|
|
103
106
|
const handleOpenMapView = async () => {
|
|
104
|
-
if (
|
|
107
|
+
if (!isGrantedPermissions) {
|
|
108
|
+
navigation.navigate('RequestPermissions')
|
|
109
|
+
return
|
|
110
|
+
}
|
|
111
|
+
const _permissions = await getPermissions()
|
|
112
|
+
|
|
113
|
+
const isBlocked = _permissions.some((_permission: string) => permissions?.locationStatus?.[_permission] === 'blocked')
|
|
114
|
+
const isGranted = _permissions.reduce((allPermissions: boolean, _permission: string) => allPermissions && permissions?.locationStatus?.[_permission] === 'granted', true)
|
|
115
|
+
|
|
116
|
+
if (isGranted) {
|
|
105
117
|
setOpenModalForMapView(!openModalForMapView);
|
|
106
|
-
} else if (
|
|
118
|
+
} else if (isBlocked) {
|
|
107
119
|
// redirectToSettings();
|
|
108
120
|
showToast(
|
|
109
121
|
ToastType.Error,
|
|
@@ -114,13 +126,18 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
114
126
|
);
|
|
115
127
|
} else {
|
|
116
128
|
const response = await askLocationPermission();
|
|
117
|
-
|
|
118
|
-
|
|
129
|
+
const isGranted = _permissions.reduce((allPermissions: boolean, _permission: string) => allPermissions && response?.locationStatus?.[_permission] === 'granted', true)
|
|
130
|
+
if (isGranted) {
|
|
131
|
+
setOpenModalForMapView(true)
|
|
119
132
|
}
|
|
120
133
|
}
|
|
121
134
|
};
|
|
122
135
|
|
|
123
136
|
const handleViewActionOrder = (action: string) => {
|
|
137
|
+
if (!isGrantedPermissions) {
|
|
138
|
+
navigation.navigate('RequestPermissions')
|
|
139
|
+
return
|
|
140
|
+
}
|
|
124
141
|
if (openModalForMapView) {
|
|
125
142
|
setOpenModalForMapView(false);
|
|
126
143
|
}
|
|
@@ -141,9 +158,9 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
141
158
|
handleArrowBack()
|
|
142
159
|
}
|
|
143
160
|
|
|
144
|
-
const handleAcceptLogisticOrder = (order
|
|
161
|
+
const handleAcceptLogisticOrder = (order: any) => {
|
|
145
162
|
handleClickLogisticOrder?.(1, order?.logistic_order_id)
|
|
146
|
-
if(order?.order_group){
|
|
163
|
+
if (order?.order_group) {
|
|
147
164
|
handleArrowBack()
|
|
148
165
|
}
|
|
149
166
|
}
|
|
@@ -166,10 +183,10 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
166
183
|
];
|
|
167
184
|
|
|
168
185
|
useEffect(() => {
|
|
169
|
-
if (permissions
|
|
186
|
+
if (permissions?.locationStatus !== 'granted' && openModalForMapView) {
|
|
170
187
|
setOpenModalForMapView(false);
|
|
171
188
|
}
|
|
172
|
-
}, [permissions
|
|
189
|
+
}, [permissions?.locationStatus]);
|
|
173
190
|
|
|
174
191
|
useEffect(() => {
|
|
175
192
|
if (openModalForAccept) {
|
|
@@ -215,8 +232,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
215
232
|
}, [messagesReadList]);
|
|
216
233
|
|
|
217
234
|
useEffect(() => {
|
|
218
|
-
forceUpdate && handleViewActionOrder && handleViewActionOrder(forceUpdate === 9 ? 'forcePickUp': 'forceDelivery')
|
|
219
|
-
},[forceUpdate])
|
|
235
|
+
forceUpdate && handleViewActionOrder && handleViewActionOrder(forceUpdate === 9 ? 'forcePickUp' : 'forceDelivery')
|
|
236
|
+
}, [forceUpdate])
|
|
220
237
|
|
|
221
238
|
const styles = StyleSheet.create({
|
|
222
239
|
btnPickUp: {
|
|
@@ -230,17 +247,17 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
230
247
|
let isToFollow = false;
|
|
231
248
|
let isBusinessMarker = false;
|
|
232
249
|
|
|
233
|
-
if (order?.status === 7 || order?.status === 8) {
|
|
250
|
+
if (order?.status === 7 || order?.status === 8 || order?.status === 18) {
|
|
234
251
|
const markerBusiness = 'Business';
|
|
235
252
|
isBusinessMarker = true;
|
|
236
253
|
locationMarker = locations.find(
|
|
237
254
|
(location: any) => location.type === markerBusiness,
|
|
238
255
|
);
|
|
239
256
|
|
|
240
|
-
if (order?.status === 8) {
|
|
257
|
+
if (order?.status === 8 || order?.status === 18) {
|
|
241
258
|
isToFollow = true;
|
|
242
259
|
}
|
|
243
|
-
} else if (order?.status === 3 || order?.status === 9) {
|
|
260
|
+
} else if (order?.status === 3 || order?.status === 9 || order?.status === 19 || order?.status === 23) {
|
|
244
261
|
const markerCustomer = 'Customer';
|
|
245
262
|
isToFollow = true;
|
|
246
263
|
isBusinessMarker = false;
|
|
@@ -254,7 +271,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
254
271
|
);
|
|
255
272
|
}
|
|
256
273
|
|
|
257
|
-
const OrderDetailsInformation = (props
|
|
274
|
+
const OrderDetailsInformation = (props: { order: any, isOrderGroup?: boolean, lastOrder?: boolean }) => {
|
|
258
275
|
const {
|
|
259
276
|
order,
|
|
260
277
|
isOrderGroup,
|
|
@@ -378,7 +395,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
378
395
|
widthButton={'45%'}
|
|
379
396
|
/>
|
|
380
397
|
)}
|
|
381
|
-
{(order?.status
|
|
398
|
+
{(validStatusComplete.includes(order?.status)) && (
|
|
382
399
|
<>
|
|
383
400
|
<FloatingButton
|
|
384
401
|
disabled={props.order?.loading}
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
Table,
|
|
12
12
|
OrderBill,
|
|
13
13
|
Total,
|
|
14
|
+
OSRow,
|
|
14
15
|
} from './styles';
|
|
15
16
|
|
|
16
17
|
import { ProductItemAccordion } from '../ProductItemAccordion';
|
|
@@ -75,11 +76,53 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
75
76
|
}
|
|
76
77
|
})
|
|
77
78
|
|
|
79
|
+
const getIncludedTaxes = () => {
|
|
80
|
+
if (!order?.taxes) return 0
|
|
81
|
+
if (order?.taxes?.length === 0) {
|
|
82
|
+
return order.tax_type === 1 ? order?.summary?.tax ?? 0 : 0
|
|
83
|
+
} else {
|
|
84
|
+
return order?.taxes.reduce((taxIncluded: number, tax: any) => {
|
|
85
|
+
return taxIncluded + (tax.type === 1 ? tax.summary?.tax : 0)
|
|
86
|
+
}, 0)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const getIncludedTaxesDiscounts = () => {
|
|
91
|
+
return order?.taxes?.filter((tax: any) => tax?.type === 1)?.reduce((carry: number, tax: any) => carry + (tax?.summary?.tax_after_discount ?? tax?.summary?.tax), 0)
|
|
92
|
+
}
|
|
93
|
+
|
|
78
94
|
return (
|
|
79
95
|
<OrderContent isOrderGroup={isOrderGroup} lastOrder={lastOrder}>
|
|
80
96
|
{isOrderGroup && (
|
|
81
97
|
<OText size={18}>{t('ORDER', 'Order')} #{isOrderGroup ? order?.order_group_id : order?.id}</OText>
|
|
82
98
|
)}
|
|
99
|
+
|
|
100
|
+
{order?.metafields?.length > 0 && (
|
|
101
|
+
<OrderBusiness>
|
|
102
|
+
<OText style={{ marginBottom: 5 }} size={16} weight="600">
|
|
103
|
+
{t('CUSTOM_FIELDS', 'Custom fields')}
|
|
104
|
+
</OText>
|
|
105
|
+
|
|
106
|
+
{order.metafields.map((field: any) => (
|
|
107
|
+
<View
|
|
108
|
+
key={field.id}
|
|
109
|
+
style={{
|
|
110
|
+
width: '100%',
|
|
111
|
+
flexDirection: 'row',
|
|
112
|
+
marginBottom: 5
|
|
113
|
+
}}
|
|
114
|
+
>
|
|
115
|
+
<OText style={{ width: '50%' }}>
|
|
116
|
+
{field.key}
|
|
117
|
+
</OText>
|
|
118
|
+
<OText style={{ width: '45%', textAlign: 'right' }}>
|
|
119
|
+
{field.value}
|
|
120
|
+
</OText>
|
|
121
|
+
</View>
|
|
122
|
+
))}
|
|
123
|
+
</OrderBusiness>
|
|
124
|
+
)}
|
|
125
|
+
|
|
83
126
|
<OrderBusiness>
|
|
84
127
|
<OText style={{ marginBottom: 5 }} size={16} weight="600">
|
|
85
128
|
{t('BUSINESS_DETAILS', 'Business details')}
|
|
@@ -231,8 +274,8 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
231
274
|
<View style={styles.linkWithIcons}>
|
|
232
275
|
<OLink
|
|
233
276
|
PressStyle={styles.linkWithIcons}
|
|
234
|
-
url={`tel:${order?.customer?.cellphone}`}
|
|
235
|
-
shorcut={order?.customer?.cellphone}
|
|
277
|
+
url={`tel:${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''} ${order?.customer?.cellphone}`}
|
|
278
|
+
shorcut={`${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''} ${order?.customer?.cellphone}`}
|
|
236
279
|
TextStyle={styles.textLink}
|
|
237
280
|
/>
|
|
238
281
|
</View>
|
|
@@ -280,15 +323,21 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
280
323
|
{order?.customer?.zipcode}
|
|
281
324
|
</OText>
|
|
282
325
|
)}
|
|
326
|
+
|
|
327
|
+
{!!order?.on_behalf_of && (
|
|
328
|
+
<OText numberOfLines={1} mBottom={4} ellipsizeMode="tail">
|
|
329
|
+
{t('ON_BEHALF_OF', 'On behalf of')}{': '} {order?.on_behalf_of}
|
|
330
|
+
</OText>
|
|
331
|
+
)}
|
|
283
332
|
{((order?.delivery_option !== undefined && order?.delivery_type === 1) || !!order?.comment) && (
|
|
284
|
-
<View style={{marginTop: 10}}>
|
|
333
|
+
<View style={{ marginTop: 10 }}>
|
|
285
334
|
{order?.delivery_option !== undefined && order?.delivery_type === 1 && (
|
|
286
335
|
<OText>
|
|
287
336
|
{order?.delivery_option?.name}
|
|
288
337
|
</OText>
|
|
289
338
|
)}
|
|
290
339
|
{!!order?.comment && (
|
|
291
|
-
<OText style={{fontStyle: 'italic', opacity: 0.6, marginBottom: 5}}>
|
|
340
|
+
<OText style={{ fontStyle: 'italic', opacity: 0.6, marginBottom: 5 }}>
|
|
292
341
|
{order?.comment}
|
|
293
342
|
</OText>
|
|
294
343
|
)}
|
|
@@ -323,84 +372,109 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
323
372
|
<Table>
|
|
324
373
|
<OText mBottom={4}>{t('SUBTOTAL', 'Subtotal')}</OText>
|
|
325
374
|
<OText mBottom={4}>
|
|
326
|
-
{parsePrice(
|
|
327
|
-
order.tax_type === 1
|
|
328
|
-
? order?.summary?.subtotal + order?.summary?.tax ?? 0
|
|
329
|
-
: order?.summary?.subtotal ?? 0,
|
|
330
|
-
)}
|
|
375
|
+
{parsePrice(((order?.summary?.subtotal ?? order?.subtotal) + getIncludedTaxes()))}
|
|
331
376
|
</OText>
|
|
332
377
|
</Table>
|
|
333
|
-
|
|
334
|
-
|
|
378
|
+
{(order?.summary?.discount > 0 ?? order?.discount > 0) && order?.offers?.length === 0 && (
|
|
379
|
+
<Table>
|
|
380
|
+
{order?.offer_type === 1 ? (
|
|
381
|
+
<OText mBottom={4}>
|
|
382
|
+
{t('DISCOUNT', theme?.defaultLanguages?.DISCOUNT || 'Discount')}{' '}
|
|
383
|
+
<OText>{`(${verifyDecimals(order?.offer_rate, parsePrice)}%)`}</OText>
|
|
384
|
+
</OText>
|
|
385
|
+
) : (
|
|
386
|
+
<OText mBottom={4}>{t('DISCOUNT', theme?.defaultLanguages?.DISCOUNT || 'Discount')}</OText>
|
|
387
|
+
)}
|
|
388
|
+
<OText>- {parsePrice(order?.summary?.discount ?? order?.discount)}</OText>
|
|
389
|
+
</Table>
|
|
390
|
+
)}
|
|
391
|
+
{
|
|
392
|
+
order?.offers?.length > 0 && order?.offers?.filter((offer: any) => offer?.target === 1)?.map((offer: any) => (
|
|
393
|
+
<Table key={offer.id}>
|
|
394
|
+
<OSRow>
|
|
395
|
+
<OText mBottom={4}>
|
|
396
|
+
{offer.name}
|
|
397
|
+
{offer.rate_type === 1 && (
|
|
398
|
+
<OText>{`(${verifyDecimals(offer?.rate, parsePrice)}%)`}</OText>
|
|
399
|
+
)}
|
|
400
|
+
</OText>
|
|
401
|
+
</OSRow>
|
|
402
|
+
<OText mBottom={4}>- {parsePrice(offer?.summary?.discount)}</OText>
|
|
403
|
+
</Table>
|
|
404
|
+
))
|
|
405
|
+
}
|
|
406
|
+
{order?.summary?.subtotal_with_discount > 0 && order?.summary?.discount > 0 && order?.summary?.total >= 0 && (
|
|
407
|
+
<Table>
|
|
408
|
+
<OText mBottom={4}>{t('SUBTOTAL_WITH_DISCOUNT', 'Subtotal with discount')}</OText>
|
|
409
|
+
{order?.tax_type === 1 ? (
|
|
410
|
+
<OText mBottom={4}>{parsePrice((order?.summary?.subtotal_with_discount + getIncludedTaxesDiscounts() ?? 0))}</OText>
|
|
411
|
+
) : (
|
|
412
|
+
<OText mBottom={4}>{parsePrice(order?.summary?.subtotal_with_discount ?? 0)}</OText>
|
|
413
|
+
)}
|
|
414
|
+
</Table>
|
|
415
|
+
)}
|
|
416
|
+
{order?.taxes?.length === 0 && order?.tax_type === 2 && order?.summary?.tax > 0 && (
|
|
335
417
|
<Table>
|
|
336
418
|
<OText mBottom={4}>
|
|
337
|
-
{t('TAX', 'Tax')}
|
|
338
|
-
{`(${verifyDecimals(
|
|
339
|
-
order?.summary?.tax_rate,
|
|
340
|
-
parseNumber,
|
|
341
|
-
)}%)`}
|
|
419
|
+
{t('TAX', 'Tax')} {`(${verifyDecimals(order?.tax, parseNumber)}%)`}
|
|
342
420
|
</OText>
|
|
343
|
-
|
|
344
421
|
<OText mBottom={4}>
|
|
345
422
|
{parsePrice(order?.summary?.tax ?? 0)}
|
|
346
423
|
</OText>
|
|
347
|
-
</Table
|
|
424
|
+
</Table>
|
|
348
425
|
)}
|
|
349
|
-
|
|
350
426
|
{
|
|
351
|
-
order?.summary?.
|
|
427
|
+
order?.fees?.length === 0 && order?.summary?.service_fee > 0 && (
|
|
352
428
|
<Table>
|
|
353
|
-
{order?.offer_type === 1 ? (
|
|
354
|
-
<OText mBottom={4}>
|
|
355
|
-
<OText>{t('DISCOUNT', 'Discount')}</OText>
|
|
356
|
-
|
|
357
|
-
<OText>
|
|
358
|
-
{`(${verifyDecimals(
|
|
359
|
-
order?.offer_rate,
|
|
360
|
-
parsePrice,
|
|
361
|
-
)}%)`}
|
|
362
|
-
</OText>
|
|
363
|
-
</OText>
|
|
364
|
-
) : (
|
|
365
|
-
<OText mBottom={4}>{t('DISCOUNT', 'Discount')}</OText>
|
|
366
|
-
)}
|
|
367
|
-
|
|
368
429
|
<OText mBottom={4}>
|
|
369
|
-
|
|
430
|
+
{t('SERVICE_FEE', 'Service fee')}
|
|
431
|
+
{`(${verifyDecimals(order?.service_fee, parseNumber)}%)`}
|
|
370
432
|
</OText>
|
|
433
|
+
<OText mBottom={4}>{parsePrice(order?.summary?.service_fee ?? 0)}</OText>
|
|
371
434
|
</Table>
|
|
372
435
|
)
|
|
373
436
|
}
|
|
374
|
-
|
|
375
437
|
{
|
|
376
|
-
order?.
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
<Table>
|
|
380
|
-
<OText mBottom={4}>
|
|
381
|
-
{t(
|
|
382
|
-
'SUBTOTAL_WITH_DISCOUNT',
|
|
383
|
-
'Subtotal with discount',
|
|
384
|
-
)}
|
|
385
|
-
</OText>
|
|
386
|
-
{order?.tax_type === 1 ? (
|
|
438
|
+
order?.taxes?.length > 0 && order?.taxes?.filter((tax: any) => tax?.type === 2 && tax?.rate !== 0).map((tax: any) => (
|
|
439
|
+
<Table key={tax.id}>
|
|
440
|
+
<OSRow>
|
|
387
441
|
<OText mBottom={4}>
|
|
388
|
-
{
|
|
389
|
-
|
|
390
|
-
order?.summary?.tax ?? 0,
|
|
391
|
-
)}
|
|
442
|
+
{tax.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
|
|
443
|
+
{`(${verifyDecimals(tax?.rate, parseNumber)}%)`}{' '}
|
|
392
444
|
</OText>
|
|
393
|
-
|
|
445
|
+
</OSRow>
|
|
446
|
+
<OText mBottom={4}>{parsePrice(tax?.summary?.tax_after_discount ?? tax?.summary?.tax ?? 0)}</OText>
|
|
447
|
+
</Table>
|
|
448
|
+
))
|
|
449
|
+
}
|
|
450
|
+
{
|
|
451
|
+
order?.fees?.length > 0 && order?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0))?.map((fee: any) => (
|
|
452
|
+
<Table key={fee.id}>
|
|
453
|
+
<OSRow>
|
|
454
|
+
<OText mBottom={4}>
|
|
455
|
+
{fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
|
|
456
|
+
({fee?.fixed > 0 && `${parsePrice(fee?.fixed)} + `}{fee.percentage}%){' '}
|
|
457
|
+
</OText>
|
|
458
|
+
</OSRow>
|
|
459
|
+
<OText mBottom={4}>{parsePrice(fee?.summary?.fixed + (fee?.summary?.percentage_after_discount ?? fee?.summary?.percentage) ?? 0)}</OText>
|
|
460
|
+
</Table>
|
|
461
|
+
))
|
|
462
|
+
}
|
|
463
|
+
{
|
|
464
|
+
order?.offers?.length > 0 && order?.offers?.filter((offer: any) => offer?.target === 3)?.map((offer: any) => (
|
|
465
|
+
<Table key={offer.id}>
|
|
466
|
+
<OSRow>
|
|
394
467
|
<OText mBottom={4}>
|
|
395
|
-
{
|
|
396
|
-
|
|
468
|
+
{offer.name}
|
|
469
|
+
{offer.rate_type === 1 && (
|
|
470
|
+
<OText>{`(${verifyDecimals(offer?.rate, parsePrice)}%)`}</OText>
|
|
397
471
|
)}
|
|
398
472
|
</OText>
|
|
399
|
-
|
|
473
|
+
</OSRow>
|
|
474
|
+
<OText mBottom={4}>- {parsePrice(offer?.summary?.discount)}</OText>
|
|
400
475
|
</Table>
|
|
401
|
-
)
|
|
476
|
+
))
|
|
402
477
|
}
|
|
403
|
-
|
|
404
478
|
{
|
|
405
479
|
order?.summary?.delivery_price > 0 && (
|
|
406
480
|
<Table>
|
|
@@ -414,41 +488,35 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
414
488
|
</Table>
|
|
415
489
|
)
|
|
416
490
|
}
|
|
417
|
-
|
|
418
|
-
<Table>
|
|
419
|
-
<OText mBottom={4}>
|
|
420
|
-
{t('DRIVER_TIP', 'Driver tip')}{' '}
|
|
421
|
-
{order?.summary?.driver_tip > 0 &&
|
|
422
|
-
parseInt(configs?.driver_tip_type?.value, 10) === 2 &&
|
|
423
|
-
!parseInt(configs?.driver_tip_use_custom?.value, 10) &&
|
|
424
|
-
`(${verifyDecimals(
|
|
425
|
-
order?.summary?.driver_tip,
|
|
426
|
-
parseNumber,
|
|
427
|
-
)}%)`}
|
|
428
|
-
</OText>
|
|
429
|
-
|
|
430
|
-
<OText mBottom={4}>
|
|
431
|
-
{parsePrice(order?.summary?.driver_tip ?? 0)}
|
|
432
|
-
</OText>
|
|
433
|
-
</Table>
|
|
434
|
-
|
|
435
491
|
{
|
|
436
|
-
order?.
|
|
437
|
-
<Table>
|
|
438
|
-
<
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
<OText mBottom={4}>
|
|
447
|
-
{parsePrice(order?.summary?.service_fee)}
|
|
448
|
-
</OText>
|
|
492
|
+
order?.offers?.length > 0 && order?.offers?.filter((offer: any) => offer?.target === 2)?.map((offer: any) => (
|
|
493
|
+
<Table key={offer.id}>
|
|
494
|
+
<OSRow>
|
|
495
|
+
<OText mBottom={4}>
|
|
496
|
+
{offer.name}
|
|
497
|
+
{offer.rate_type === 1 && (
|
|
498
|
+
<OText>{`(${verifyDecimals(offer?.rate, parsePrice)}%)`}</OText>
|
|
499
|
+
)}
|
|
500
|
+
</OText>
|
|
501
|
+
</OSRow>
|
|
502
|
+
<OText mBottom={4}>- {parsePrice(offer?.summary?.discount)}</OText>
|
|
449
503
|
</Table>
|
|
450
|
-
)
|
|
504
|
+
))
|
|
451
505
|
}
|
|
506
|
+
{order?.summary?.driver_tip > 0 && (
|
|
507
|
+
<Table>
|
|
508
|
+
<OText mBottom={4}>
|
|
509
|
+
{t('DRIVER_TIP', 'Driver tip')}
|
|
510
|
+
{order?.summary?.driver_tip > 0 &&
|
|
511
|
+
parseInt(configs?.driver_tip_type?.value, 10) === 2 &&
|
|
512
|
+
!parseInt(configs?.driver_tip_use_custom?.value, 10) &&
|
|
513
|
+
(
|
|
514
|
+
`(${verifyDecimals(order?.summary?.driver_tip, parseNumber)}%)`
|
|
515
|
+
)}
|
|
516
|
+
</OText>
|
|
517
|
+
<OText mBottom={4}>{parsePrice(order?.summary?.driver_tip ?? order?.totalDriverTip)}</OText>
|
|
518
|
+
</Table>
|
|
519
|
+
)}
|
|
452
520
|
|
|
453
521
|
<Total style={{ paddingBottom: 10 }}>
|
|
454
522
|
<Table>
|
|
@@ -460,7 +528,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
460
528
|
mBottom={4}
|
|
461
529
|
style={styles.textBold}
|
|
462
530
|
color={theme.colors.primary}>
|
|
463
|
-
{parsePrice(order?.summary?.total ??
|
|
531
|
+
{parsePrice(order?.summary?.total ?? order?.total)}
|
|
464
532
|
</OText>
|
|
465
533
|
</Table>
|
|
466
534
|
</Total>
|
|
@@ -268,6 +268,12 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
|
268
268
|
<OText size={13} weight='bold'>{`${t('ORDER_TYPE', 'Order Type')}: `}</OText>
|
|
269
269
|
{orderTypes(order.delivery_type)}
|
|
270
270
|
</OText>
|
|
271
|
+
{order?.delivery_option && (
|
|
272
|
+
<OText size={13}>
|
|
273
|
+
<OText size={13} weight='bold'>{`${t('DELIVERY_PREFERENCE', 'Delivery Preference')}: `}</OText>
|
|
274
|
+
{order?.delivery_option?.name}
|
|
275
|
+
</OText>
|
|
276
|
+
)}
|
|
271
277
|
{order?.payment_events?.length > 0 && (
|
|
272
278
|
<View>
|
|
273
279
|
<OText size={13}>
|
|
@@ -77,6 +77,7 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
|
|
|
77
77
|
const [openSearchModal, setOpenSearchModal] = useState(false)
|
|
78
78
|
const [openSLASettingModal, setOpenSLASettingModal] = useState(false)
|
|
79
79
|
const [slaSettingTime, setSlaSettingTime] = useState(6000)
|
|
80
|
+
const [configState] = useConfig()
|
|
80
81
|
const [currentDeliveryType, setCurrentDeliveryType] = useState('Delivery')
|
|
81
82
|
const [search, setSearch] = useState(defaultSearchList)
|
|
82
83
|
const [selectedTabStatus, setSelectedTabStatus] = useState<any>([])
|
|
@@ -311,55 +312,57 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
|
|
|
311
312
|
/>
|
|
312
313
|
</IconWrapper>
|
|
313
314
|
</View>
|
|
314
|
-
|
|
315
|
-
<View style={
|
|
316
|
-
<
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
<
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
315
|
+
{configState?.configs?.order_deadlines_enabled?.value === '1' && (
|
|
316
|
+
<View style={styles.SLAwrapper}>
|
|
317
|
+
<View style={{ flex: 0.5 }}>
|
|
318
|
+
<OButton
|
|
319
|
+
text={t('SLA_SETTING', 'SLA’s Settings')}
|
|
320
|
+
textStyle={{ color: theme.colors.backArrow }}
|
|
321
|
+
imgRightSrc={null}
|
|
322
|
+
style={{
|
|
323
|
+
backgroundColor: theme.colors.inputChat,
|
|
324
|
+
borderRadius: 7.6,
|
|
325
|
+
zIndex: 10,
|
|
326
|
+
borderWidth: 0,
|
|
327
|
+
minHeight: 40
|
|
328
|
+
}}
|
|
329
|
+
onClick={onClickSetting}
|
|
330
|
+
/>
|
|
331
|
+
</View>
|
|
332
|
+
<View style={{ width: 10, height: '100%' }} />
|
|
333
|
+
<View style={{ flex: 0.5, justifyContent: 'center' }}>
|
|
334
|
+
<SelectDropdown
|
|
335
|
+
defaultButtonText={t('SLA', 'SLA\'s')}
|
|
336
|
+
data={preorderTypeList}
|
|
337
|
+
onSelect={(selectedItem, index) => {
|
|
338
|
+
onFiltered && onFiltered({ ...search, timeStatus: selectedItem?.key })
|
|
339
|
+
}}
|
|
340
|
+
buttonTextAfterSelection={(selectedItem, index) => {
|
|
341
|
+
return selectedItem.name
|
|
342
|
+
}}
|
|
343
|
+
rowTextForSelection={(item, index) => {
|
|
344
|
+
return item.key
|
|
345
|
+
}}
|
|
346
|
+
buttonStyle={styles.selectOption}
|
|
347
|
+
buttonTextStyle={styles.buttonTextStyle}
|
|
348
|
+
renderDropdownIcon={isOpened => {
|
|
349
|
+
return <FeatherIcon name={isOpened ? 'chevron-up' : 'chevron-down'} color={'#444'} size={18} />;
|
|
350
|
+
}}
|
|
351
|
+
dropdownStyle={styles.dropdownStyle}
|
|
352
|
+
dropdownOverlayColor='transparent'
|
|
353
|
+
rowStyle={styles.rowStyle}
|
|
354
|
+
renderCustomizedRowChild={(item, index) => {
|
|
355
|
+
return (
|
|
356
|
+
<SlaOption>
|
|
357
|
+
{index !== 0 && <OrderStatus timeState={item?.key} />}
|
|
358
|
+
<View><OText size={14} color={'#748194'} >{item?.name}</OText></View>
|
|
359
|
+
</SlaOption>
|
|
360
|
+
);
|
|
361
|
+
}}
|
|
362
|
+
/>
|
|
363
|
+
</View>
|
|
361
364
|
</View>
|
|
362
|
-
|
|
365
|
+
)}
|
|
363
366
|
|
|
364
367
|
<Sides>
|
|
365
368
|
<LeftSide>
|
|
@@ -614,7 +617,7 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
|
|
|
614
617
|
</RightSide>
|
|
615
618
|
</Sides>
|
|
616
619
|
|
|
617
|
-
<NewOrderNotification />
|
|
620
|
+
<NewOrderNotification isBusinessApp={isBusinessApp} />
|
|
618
621
|
{(openSearchModal || openSLASettingModal) && (
|
|
619
622
|
<OModal open={openSearchModal || openSLASettingModal} entireModal customClose>
|
|
620
623
|
<ModalContainer
|