ordering-ui-react-native 0.15.53 → 0.15.55-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 -3
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/AddressForm/index.tsx +18 -2
- package/src/components/BusinessController/index.tsx +16 -8
- 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 +120 -30
- package/src/components/LoginForm/styles.tsx +6 -0
- package/src/components/OrderDetails/index.tsx +9 -23
- package/src/components/PaymentOptions/index.tsx +67 -50
- package/src/components/PaymentOptionsWebView/index.tsx +123 -124
- package/src/components/SignupForm/index.tsx +145 -61
- 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 +18 -11
- 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 +2 -2
- 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 +1 -1
- package/themes/business/src/components/OrdersOption/index.tsx +5 -2
- 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 +7 -8
- 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 +169 -4
- 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 +54 -21
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +136 -45
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +4 -0
- package/themes/original/src/components/BusinessController/index.tsx +48 -11
- 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 +1 -1
- package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
- package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
- package/themes/original/src/components/BusinessProductsList/index.tsx +119 -35
- package/themes/original/src/components/BusinessProductsList/styles.tsx +12 -4
- package/themes/original/src/components/BusinessProductsListing/index.tsx +109 -21
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +22 -0
- package/themes/original/src/components/BusinessReviews/index.tsx +10 -26
- 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 -41
- package/themes/original/src/components/Checkout/index.tsx +48 -32
- package/themes/original/src/components/DriverTips/index.tsx +17 -12
- package/themes/original/src/components/Favorite/index.tsx +92 -0
- package/themes/original/src/components/Favorite/styles.tsx +22 -0
- package/themes/original/src/components/FavoriteList/index.tsx +298 -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 +11 -11
- 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 +91 -0
- package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
- package/themes/original/src/components/LoginForm/index.tsx +332 -164
- package/themes/original/src/components/LoginForm/styles.tsx +1 -3
- 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/OrderHistory.tsx +167 -0
- package/themes/original/src/components/OrderDetails/index.tsx +117 -46
- package/themes/original/src/components/OrderDetails/styles.tsx +1 -2
- 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 +130 -38
- package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
- package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +17 -23
- package/themes/original/src/components/PaymentOptionWallet/styles.tsx +1 -1
- package/themes/original/src/components/PaymentOptions/index.tsx +57 -36
- package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
- package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
- package/themes/original/src/components/ProductForm/index.tsx +70 -62
- 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 +151 -133
- package/themes/original/src/components/Promotions/styles.tsx +3 -23
- 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 +269 -130
- 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 +16 -8
- package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
- 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 +53 -6
- 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/OModal.tsx +4 -2
- package/themes/original/src/config/constants.tsx +6 -6
- package/themes/original/src/types/index.tsx +192 -33
- package/themes/original/src/utils/index.tsx +85 -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}>
|
|
@@ -617,7 +617,7 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
|
|
|
617
617
|
</RightSide>
|
|
618
618
|
</Sides>
|
|
619
619
|
|
|
620
|
-
<NewOrderNotification />
|
|
620
|
+
<NewOrderNotification isBusinessApp={isBusinessApp} />
|
|
621
621
|
{(openSearchModal || openSLASettingModal) && (
|
|
622
622
|
<OModal open={openSearchModal || openSLASettingModal} entireModal customClose>
|
|
623
623
|
<ModalContainer
|
|
@@ -725,8 +725,11 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
725
725
|
</ScrollView>
|
|
726
726
|
</View>
|
|
727
727
|
{/* </GestureRecognizer> */}
|
|
728
|
-
|
|
729
|
-
|
|
728
|
+
|
|
729
|
+
{isBusinessApp && (
|
|
730
|
+
<NewOrderNotification isBusinessApp={isBusinessApp} />
|
|
731
|
+
)}
|
|
732
|
+
|
|
730
733
|
{(openSearchModal || openSLASettingModal) && (
|
|
731
734
|
<OModal open={openSearchModal || openSLASettingModal} entireModal customClose>
|
|
732
735
|
<ModalContainer
|
|
@@ -153,7 +153,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
153
153
|
{(
|
|
154
154
|
productInfo?.()?.ingredients?.length > 0 ||
|
|
155
155
|
productInfo?.()?.options?.length > 0 ||
|
|
156
|
-
product.comment
|
|
156
|
+
!!product.comment
|
|
157
157
|
) && !isClickableEvent && (
|
|
158
158
|
<MaterialCommunityIcon name="chevron-down" size={12} />
|
|
159
159
|
)}
|
|
@@ -278,7 +278,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
278
278
|
</ProductOptionsList>
|
|
279
279
|
)}
|
|
280
280
|
|
|
281
|
-
{product.comment && (
|
|
281
|
+
{!!product.comment && (
|
|
282
282
|
<ProductComment>
|
|
283
283
|
<OText
|
|
284
284
|
size={12}
|
|
@@ -20,6 +20,9 @@ export interface LoginParams {
|
|
|
20
20
|
passwordInputIcon?: any;
|
|
21
21
|
allowedLevels?: any;
|
|
22
22
|
useRootPoint?: any;
|
|
23
|
+
notificationState?: any;
|
|
24
|
+
handleReCaptcha?: any;
|
|
25
|
+
enableReCaptcha?: any;
|
|
23
26
|
}
|
|
24
27
|
export interface ProfileParams {
|
|
25
28
|
navigation?: any;
|
|
@@ -373,6 +376,7 @@ export interface OrderDetailsParams {
|
|
|
373
376
|
handleClickLogisticOrder?: (status: number, orderId: number) => void;
|
|
374
377
|
orderTitle?: any;
|
|
375
378
|
forceUpdate?: number;
|
|
379
|
+
getPermissions?: any
|
|
376
380
|
}
|
|
377
381
|
export interface ProductItemAccordionParams {
|
|
378
382
|
isCartPending?: boolean;
|
|
@@ -578,4 +582,4 @@ export interface ReviewCustomerParams {
|
|
|
578
582
|
|
|
579
583
|
export interface NoNetworkParams {
|
|
580
584
|
image?: any;
|
|
581
|
-
}
|
|
585
|
+
}
|
|
@@ -197,7 +197,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
197
197
|
{isFarAway && (
|
|
198
198
|
<FarAwayMessage style={styles.farAwayMsg}>
|
|
199
199
|
<Ionicons name='md-warning-outline' style={styles.iconStyle} />
|
|
200
|
-
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', '
|
|
200
|
+
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
|
|
201
201
|
</FarAwayMessage>
|
|
202
202
|
)}
|
|
203
203
|
{!auth && (
|
|
@@ -410,8 +410,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
410
410
|
textInputProps={{
|
|
411
411
|
returnKeyType: 'next',
|
|
412
412
|
onSubmitEditing: () => inputRef?.current?.focus?.(),
|
|
413
|
-
style: { borderWidth: 0, fontSize: 12 }
|
|
414
|
-
maxLength: 10
|
|
413
|
+
style: { borderWidth: 0, fontSize: 12 }
|
|
415
414
|
}}
|
|
416
415
|
textWrapStyle={{ borderColor: theme.colors.clear, borderWidth: 0, height: 40, paddingStart: 0 }}
|
|
417
416
|
/>
|
|
@@ -155,7 +155,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
155
155
|
{isFarAway && (
|
|
156
156
|
<FarAwayMessage style={styles.farAwayMsg}>
|
|
157
157
|
<Ionicons name='md-warning-outline' style={styles.iconStyle} />
|
|
158
|
-
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', '
|
|
158
|
+
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
|
|
159
159
|
</FarAwayMessage>
|
|
160
160
|
)}
|
|
161
161
|
<View style={styles.wrapperOrderOptions}>
|