ordering-ui-react-native 0.17.91 → 0.17.92-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 +8 -7
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/BusinessInformation/index.tsx +10 -9
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/OrderCreating/index.tsx +0 -20
- package/src/components/PaymentOptionsWebView/index.tsx +29 -8
- package/src/components/PhoneInputNumber/index.tsx +6 -2
- package/src/components/StripeMethodForm/index.tsx +136 -102
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OToast.tsx +3 -2
- package/src/types/index.tsx +5 -0
- package/src/utils/index.tsx +5 -0
- package/themes/business/index.tsx +2 -0
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +36 -26
- package/themes/business/src/components/BusinessController/index.tsx +0 -1
- package/themes/business/src/components/Chat/index.tsx +163 -123
- package/themes/business/src/components/DriverMap/index.tsx +17 -6
- package/themes/business/src/components/DriverSchedule/index.tsx +45 -8
- package/themes/business/src/components/FloatingButton/index.tsx +34 -31
- package/themes/business/src/components/GoogleMap/index.tsx +58 -57
- package/themes/business/src/components/LoginForm/index.tsx +5 -2
- package/themes/business/src/components/MapView/index.tsx +14 -10
- package/themes/business/src/components/MessagesOption/index.tsx +20 -93
- package/themes/business/src/components/NewOrderNotification/index.tsx +123 -96
- package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
- package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
- package/themes/business/src/components/OrderDetails/Delivery.tsx +202 -12
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +84 -37
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +81 -66
- package/themes/business/src/components/OrderDetailsLogistic/index.tsx +200 -0
- package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
- package/themes/business/src/components/OrderMessage/index.tsx +19 -18
- package/themes/business/src/components/OrderSummary/index.tsx +114 -123
- package/themes/business/src/components/OrdersOption/index.tsx +22 -22
- package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
- package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +17 -12
- package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
- package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
- package/themes/business/src/components/PreviousOrders/index.tsx +198 -221
- package/themes/business/src/components/ProductItemAccordion/index.tsx +7 -1
- package/themes/business/src/components/ReviewCustomer/index.tsx +18 -13
- package/themes/business/src/components/StoresList/index.tsx +3 -4
- package/themes/business/src/components/UserProfileForm/index.tsx +14 -15
- package/themes/business/src/components/shared/OModal.tsx +16 -9
- package/themes/business/src/types/index.tsx +24 -10
- package/themes/business/src/utils/index.tsx +29 -2
- package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
- package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
- package/themes/kiosk/src/components/Intro/index.tsx +16 -1
- package/themes/kiosk/src/components/LoginForm/index.tsx +7 -5
- 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/PhoneInputNumber/index.tsx +2 -2
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +1 -1
- package/themes/original/src/components/AddressDetails/index.tsx +19 -3
- package/themes/original/src/components/AddressForm/index.tsx +35 -17
- package/themes/original/src/components/AddressList/index.tsx +5 -8
- package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +73 -37
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
- package/themes/original/src/components/BusinessController/index.tsx +35 -44
- package/themes/original/src/components/BusinessController/styles.tsx +12 -5
- package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
- package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
- package/themes/original/src/components/BusinessInformation/index.tsx +140 -85
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
- package/themes/original/src/components/BusinessListingSearch/index.tsx +347 -341
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -18
- package/themes/original/src/components/BusinessPreorder/index.tsx +103 -19
- package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -2
- package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
- package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
- package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
- package/themes/original/src/components/BusinessProductsListing/index.tsx +664 -556
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -3
- package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
- package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
- package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +38 -405
- package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
- package/themes/original/src/components/Cart/index.tsx +56 -56
- package/themes/original/src/components/CartContent/index.tsx +102 -58
- package/themes/original/src/components/CartContent/styles.tsx +6 -6
- package/themes/original/src/components/Checkout/index.tsx +277 -33
- package/themes/original/src/components/CitiesControl/index.tsx +1 -1
- package/themes/original/src/components/CouponControl/index.tsx +10 -3
- package/themes/original/src/components/DriverTips/index.tsx +14 -6
- package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
- package/themes/original/src/components/Favorite/index.tsx +1 -5
- package/themes/original/src/components/GPSButton/index.tsx +6 -4
- package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +42 -5
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +2 -0
- package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +86 -10
- package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
- package/themes/original/src/components/GoogleMap/index.tsx +63 -7
- package/themes/original/src/components/Home/index.tsx +13 -4
- package/themes/original/src/components/LastOrder/index.tsx +2 -1
- package/themes/original/src/components/LastOrders/index.tsx +2 -1
- package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
- package/themes/original/src/components/LoginForm/index.tsx +64 -34
- package/themes/original/src/components/LottieAnimation/index.tsx +88 -63
- package/themes/original/src/components/MessageListing/index.tsx +9 -2
- package/themes/original/src/components/Messages/index.tsx +15 -4
- package/themes/original/src/components/MomentOption/index.tsx +193 -92
- package/themes/original/src/components/MomentSelector/index.tsx +1 -1
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +162 -50
- package/themes/original/src/components/MultiCheckout/index.tsx +385 -46
- package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +23 -19
- package/themes/original/src/components/MyOrders/index.tsx +15 -4
- package/themes/original/src/components/NavBar/index.tsx +20 -13
- package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
- package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +21 -5
- package/themes/original/src/components/OrderDetails/index.tsx +50 -38
- package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
- package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
- package/themes/original/src/components/OrderProgress/index.tsx +34 -25
- package/themes/original/src/components/OrderSummary/index.tsx +83 -57
- package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +13 -13
- package/themes/original/src/components/OrdersOption/index.tsx +43 -20
- package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
- package/themes/original/src/components/PageBanner/index.tsx +65 -29
- package/themes/original/src/components/PageBanner/styles.tsx +0 -3
- package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
- package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +100 -34
- package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
- package/themes/original/src/components/ProductForm/index.tsx +87 -31
- package/themes/original/src/components/ProductForm/styles.tsx +3 -3
- package/themes/original/src/components/ProductItemAccordion/index.tsx +8 -6
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +49 -20
- package/themes/original/src/components/ProductOptionSubOption/styles.tsx +10 -9
- package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
- package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
- package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
- package/themes/original/src/components/Promotions/index.tsx +2 -2
- package/themes/original/src/components/Promotions/styles.tsx +3 -1
- package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
- package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
- package/themes/original/src/components/ServiceForm/index.tsx +63 -20
- package/themes/original/src/components/SignupForm/index.tsx +43 -27
- package/themes/original/src/components/SingleOrderCard/index.tsx +44 -20
- package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
- package/themes/original/src/components/SingleProductCard/index.tsx +14 -11
- package/themes/original/src/components/SingleProductCard/styles.tsx +8 -3
- package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
- package/themes/original/src/components/StripeCardsList/index.tsx +61 -5
- package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
- package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
- package/themes/original/src/components/UpsellingProducts/index.tsx +5 -10
- package/themes/original/src/components/UserDetails/index.tsx +3 -1
- package/themes/original/src/components/UserFormDetails/index.tsx +78 -9
- package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
- package/themes/original/src/components/UserProfile/index.tsx +8 -26
- package/themes/original/src/components/UserProfileForm/index.tsx +30 -31
- package/themes/original/src/components/UserVerification/index.tsx +55 -50
- package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
- package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
- package/themes/original/src/components/Wallets/index.tsx +52 -62
- package/themes/original/src/components/Wallets/styles.tsx +2 -4
- package/themes/original/src/components/shared/OButton.tsx +3 -3
- package/themes/original/src/components/shared/OInput.tsx +4 -5
- package/themes/original/src/components/shared/OModal.tsx +3 -3
- package/themes/original/src/types/index.tsx +37 -10
- package/themes/original/src/utils/index.tsx +185 -13
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
- package/src/navigators/BottomNavigator.tsx +0 -117
- package/src/navigators/CheckoutNavigator.tsx +0 -66
- package/src/navigators/HomeNavigator.tsx +0 -202
- package/src/navigators/NavigationRef.tsx +0 -7
- package/src/navigators/RootNavigator.tsx +0 -269
- package/src/pages/Account.tsx +0 -34
- package/src/pages/AddressForm.tsx +0 -62
- package/src/pages/AddressList.tsx +0 -24
- package/src/pages/BusinessProductsList.tsx +0 -81
- package/src/pages/BusinessesListing.tsx +0 -43
- package/src/pages/CartList.tsx +0 -49
- package/src/pages/Checkout.tsx +0 -101
- package/src/pages/ForgotPassword.tsx +0 -24
- package/src/pages/Help.tsx +0 -23
- package/src/pages/HelpAccountAndPayment.tsx +0 -23
- package/src/pages/HelpGuide.tsx +0 -23
- package/src/pages/HelpOrder.tsx +0 -23
- package/src/pages/Home.tsx +0 -36
- package/src/pages/IntroductoryTutorial.tsx +0 -170
- package/src/pages/Login.tsx +0 -47
- package/src/pages/MomentOption.tsx +0 -30
- package/src/pages/MultiCheckout.tsx +0 -31
- package/src/pages/MultiOrdersDetails.tsx +0 -27
- package/src/pages/MyOrders.tsx +0 -40
- package/src/pages/NetworkError.tsx +0 -24
- package/src/pages/NotFound.tsx +0 -22
- package/src/pages/OrderDetails.tsx +0 -25
- package/src/pages/ProductDetails.tsx +0 -55
- package/src/pages/Profile.tsx +0 -36
- package/src/pages/ReviewDriver.tsx +0 -30
- package/src/pages/ReviewOrder.tsx +0 -32
- package/src/pages/ReviewProducts.tsx +0 -30
- package/src/pages/Sessions.tsx +0 -22
- package/src/pages/Signup.tsx +0 -53
- package/src/pages/SpinnerLoader.tsx +0 -10
- package/src/pages/Splash.tsx +0 -21
|
@@ -2,7 +2,8 @@ import React, { useEffect, useState } from 'react'
|
|
|
2
2
|
import {
|
|
3
3
|
OrderList,
|
|
4
4
|
useLanguage,
|
|
5
|
-
useUtils
|
|
5
|
+
useUtils,
|
|
6
|
+
useConfig
|
|
6
7
|
} from 'ordering-components/native'
|
|
7
8
|
import { useTheme } from 'styled-components/native';
|
|
8
9
|
import IconAntDesign from 'react-native-vector-icons/AntDesign'
|
|
@@ -12,6 +13,7 @@ import { NotFoundSource } from '../NotFoundSource'
|
|
|
12
13
|
import { View, StyleSheet, TouchableOpacity, Platform } from 'react-native'
|
|
13
14
|
import { Placeholder, Fade, PlaceholderLine } from "rn-placeholder";
|
|
14
15
|
import FastImage from 'react-native-fast-image'
|
|
16
|
+
import { OrderEta } from '../OrderDetails/OrderEta'
|
|
15
17
|
import {
|
|
16
18
|
ProgressContentWrapper,
|
|
17
19
|
ProgressBar,
|
|
@@ -20,7 +22,7 @@ import {
|
|
|
20
22
|
OrderInfoWrapper,
|
|
21
23
|
OrderProgressWrapper
|
|
22
24
|
} from './styles'
|
|
23
|
-
import { getOrderStatus } from '../../utils'
|
|
25
|
+
import { getOrderStatuPickUp, getOrderStatus } from '../../utils'
|
|
24
26
|
|
|
25
27
|
const OrderProgressUI = (props: any) => {
|
|
26
28
|
const {
|
|
@@ -33,10 +35,12 @@ const OrderProgressUI = (props: any) => {
|
|
|
33
35
|
const theme = useTheme();
|
|
34
36
|
|
|
35
37
|
const [, t] = useLanguage()
|
|
36
|
-
const [{ optimizeImage,
|
|
38
|
+
const [{ optimizeImage, parseTime, parseDate }] = useUtils()
|
|
39
|
+
const [{ configs }] = useConfig()
|
|
37
40
|
const [lastOrder, setLastOrder] = useState<any>(null)
|
|
38
41
|
const imageFails = theme.images.general.emptyActiveOrders
|
|
39
42
|
const [initialLoaded, setInitialLoaded] = useState(false)
|
|
43
|
+
const statusToShow = [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23]
|
|
40
44
|
|
|
41
45
|
const styles = StyleSheet.create({
|
|
42
46
|
main: {
|
|
@@ -76,15 +80,6 @@ const OrderProgressUI = (props: any) => {
|
|
|
76
80
|
}
|
|
77
81
|
});
|
|
78
82
|
|
|
79
|
-
const convertDiffToHours = (order: any) => {
|
|
80
|
-
const minute = order?.eta_time
|
|
81
|
-
const deliveryTime = order?.delivery_datetime_utc
|
|
82
|
-
? parseDate(order?.delivery_datetime_utc, { outputFormat: 'YYYY-MM-DD HH:mm' })
|
|
83
|
-
: parseDate(order?.delivery_datetime, { utc: false, outputFormat: 'YYYY-MM-DD HH:mm' })
|
|
84
|
-
const returnedDate = moment(deliveryTime).add(minute, 'minutes').format('hh:mm A')
|
|
85
|
-
return returnedDate
|
|
86
|
-
}
|
|
87
|
-
|
|
88
83
|
const handleGoToOrder = (index: string) => {
|
|
89
84
|
navigation && navigation.navigate(index)
|
|
90
85
|
}
|
|
@@ -92,7 +87,15 @@ const OrderProgressUI = (props: any) => {
|
|
|
92
87
|
useEffect(() => {
|
|
93
88
|
if (orderList?.orders.length > 0) {
|
|
94
89
|
const sortedOrders = orderList.orders.sort((a: any, b: any) => a.id > b.id ? -1 : 1)
|
|
95
|
-
|
|
90
|
+
const orderInProgress = sortedOrders.find((order: any) => (statusToShow.includes(order.status)))
|
|
91
|
+
|
|
92
|
+
let _lastOrder = null
|
|
93
|
+
if (orderInProgress) {
|
|
94
|
+
_lastOrder = orderInProgress
|
|
95
|
+
} else {
|
|
96
|
+
_lastOrder = sortedOrders[0]
|
|
97
|
+
}
|
|
98
|
+
setLastOrder(_lastOrder)
|
|
96
99
|
}
|
|
97
100
|
}, [orderList?.orders])
|
|
98
101
|
|
|
@@ -107,6 +110,8 @@ const OrderProgressUI = (props: any) => {
|
|
|
107
110
|
setInitialLoaded(true)
|
|
108
111
|
}, [orderList.loading, initialLoaded])
|
|
109
112
|
|
|
113
|
+
const progressBarObjt = lastOrder?.delivery_type && lastOrder?.delivery_type === 2 ? getOrderStatuPickUp : getOrderStatus
|
|
114
|
+
|
|
110
115
|
return (
|
|
111
116
|
<>
|
|
112
117
|
{(orderList?.loading && !initialLoaded) && (
|
|
@@ -125,11 +130,11 @@ const OrderProgressUI = (props: any) => {
|
|
|
125
130
|
<View style={styles.logoWrapper}>
|
|
126
131
|
<FastImage
|
|
127
132
|
style={{ width: 50, height: 50 }}
|
|
128
|
-
source={{
|
|
133
|
+
source={orderList?.orders.length === 1 ? {
|
|
129
134
|
uri: optimizeImage(lastOrder?.business?.logo, 'h_50,c_limit'),
|
|
130
135
|
priority: FastImage.priority.normal,
|
|
131
|
-
}}
|
|
132
|
-
resizeMode={FastImage.resizeMode.
|
|
136
|
+
} : theme.images.logos.logotype}
|
|
137
|
+
resizeMode={FastImage.resizeMode.contain}
|
|
133
138
|
/>
|
|
134
139
|
</View>
|
|
135
140
|
<View style={{
|
|
@@ -143,8 +148,7 @@ const OrderProgressUI = (props: any) => {
|
|
|
143
148
|
fontWeight: 'bold',
|
|
144
149
|
marginBottom: 3
|
|
145
150
|
}}
|
|
146
|
-
>{t('ORDER_IN_PROGRESS', 'Order in progress')}</OText>
|
|
147
|
-
<OText size={11} numberOfLines={1} ellipsizeMode='tail'>{t('RESTAURANT_PREPARING_YOUR_ORDER', 'The restaurant is preparing your order')}</OText>
|
|
151
|
+
>{statusToShow.includes(lastOrder?.status) ? t('ORDER_IN_PROGRESS', 'Order in progress') : t('ORDER', 'Order')}</OText>
|
|
148
152
|
<TouchableOpacity onPress={() => handleGoToOrder('MyOrders')}>
|
|
149
153
|
<View style={styles.navigationButton}>
|
|
150
154
|
<OText size={11} color={theme.colors.primary}>{t('GO_TO_MY_ORDERS', 'Go to my orders')}</OText>
|
|
@@ -160,18 +164,22 @@ const OrderProgressUI = (props: any) => {
|
|
|
160
164
|
</OrderInfoWrapper>
|
|
161
165
|
<View style={{ flex: 1 }}>
|
|
162
166
|
<ProgressContentWrapper>
|
|
163
|
-
<ProgressBar style={{ width:
|
|
167
|
+
<ProgressBar style={{ width: progressBarObjt(lastOrder.status)?.percentage ? `${(progressBarObjt(lastOrder.status) as any).percentage * 100}%` : '0%' }} />
|
|
164
168
|
</ProgressContentWrapper>
|
|
165
169
|
<ProgressTextWrapper>
|
|
166
|
-
<OText size={12} style={{ width: '50%' }}>{
|
|
170
|
+
<OText size={12} style={{ width: '50%' }}>{progressBarObjt(lastOrder.status)?.value}</OText>
|
|
167
171
|
<TimeWrapper>
|
|
168
|
-
<OText size={11}>{t('ESTIMATED_DELIVERY', 'Estimated delivery')}</OText>
|
|
172
|
+
<OText size={11}>{lastOrder?.delivery_type === 1 ? t('ESTIMATED_DELIVERY', 'Estimated delivery') : t('ESTIMATED_TIME', 'Estimated time')}</OText>
|
|
169
173
|
<OText size={11}>
|
|
170
174
|
{lastOrder?.delivery_datetime_utc
|
|
171
|
-
? parseTime(lastOrder?.delivery_datetime_utc, { outputFormat: '
|
|
175
|
+
? parseTime(lastOrder?.delivery_datetime_utc, { outputFormat: configs?.general_hour_format?.value || 'HH:mm' })
|
|
172
176
|
: parseTime(lastOrder?.delivery_datetime, { utc: false })}
|
|
173
177
|
-
|
|
174
|
-
{
|
|
178
|
+
{statusToShow.includes(lastOrder?.status) ? (
|
|
179
|
+
<OrderEta order={lastOrder} outputFormat={configs?.general_hour_format?.value || 'HH:mm'} />
|
|
180
|
+
) : (
|
|
181
|
+
parseDate(lastOrder?.reporting_data?.at[`status:${lastOrder.status}`], { outputFormat: configs?.general_hour_format?.value })
|
|
182
|
+
)}
|
|
175
183
|
</OText>
|
|
176
184
|
</TimeWrapper>
|
|
177
185
|
</ProgressTextWrapper>
|
|
@@ -198,9 +206,10 @@ export const OrderProgress = (props: any) => {
|
|
|
198
206
|
useDefualtSessionManager: true,
|
|
199
207
|
paginationSettings: {
|
|
200
208
|
initialPage: 1,
|
|
201
|
-
pageSize:
|
|
209
|
+
pageSize: 10,
|
|
202
210
|
controlType: 'infinity'
|
|
203
|
-
}
|
|
211
|
+
},
|
|
212
|
+
noGiftCardOrders: true
|
|
204
213
|
}
|
|
205
214
|
|
|
206
215
|
return <OrderList {...orderProgressProps} />
|
|
@@ -20,12 +20,12 @@ import {
|
|
|
20
20
|
|
|
21
21
|
import { ProductItemAccordion } from '../ProductItemAccordion';
|
|
22
22
|
import { CouponControl } from '../CouponControl';
|
|
23
|
-
import { OInput, OModal, OText } from '../shared';
|
|
23
|
+
import { OInput, OModal, OText, OAlert } from '../shared';
|
|
24
24
|
import { verifyDecimals } from '../../utils';
|
|
25
25
|
import AntIcon from 'react-native-vector-icons/AntDesign'
|
|
26
26
|
import { TaxInformation } from '../TaxInformation';
|
|
27
27
|
import { TouchableOpacity } from 'react-native';
|
|
28
|
-
import {
|
|
28
|
+
import { MomentOption } from '../MomentOption';
|
|
29
29
|
|
|
30
30
|
const OrderSummaryUI = (props: any) => {
|
|
31
31
|
const {
|
|
@@ -38,7 +38,16 @@ const OrderSummaryUI = (props: any) => {
|
|
|
38
38
|
commentState,
|
|
39
39
|
handleChangeComment,
|
|
40
40
|
onNavigationRedirect,
|
|
41
|
-
handleRemoveOfferClick
|
|
41
|
+
handleRemoveOfferClick,
|
|
42
|
+
preorderSlotInterval,
|
|
43
|
+
preorderLeadTime,
|
|
44
|
+
preorderTimeRange,
|
|
45
|
+
preorderMaximumDays,
|
|
46
|
+
preorderMinimumDays,
|
|
47
|
+
cateringTypes,
|
|
48
|
+
hideDeliveryFee,
|
|
49
|
+
loyaltyRewardRate,
|
|
50
|
+
maxDate
|
|
42
51
|
} = props;
|
|
43
52
|
|
|
44
53
|
const theme = useTheme()
|
|
@@ -48,8 +57,32 @@ const OrderSummaryUI = (props: any) => {
|
|
|
48
57
|
const [{ parsePrice, parseNumber }] = useUtils();
|
|
49
58
|
const [validationFields] = useValidationFields();
|
|
50
59
|
const [openTaxModal, setOpenTaxModal] = useState<any>({ open: false, data: null, type: '' })
|
|
51
|
-
const [confirm, setConfirm] = useState<any>({ open: false, content: null, handleOnAccept: null, id: null, title: null })
|
|
52
60
|
const isCouponEnabled = validationFields?.fields?.checkout?.coupon?.enabled;
|
|
61
|
+
const hideCartComments = !validationFields?.fields?.checkout?.comments?.enabled
|
|
62
|
+
|
|
63
|
+
const cart = orderState?.carts?.[`businessId:${props.cart.business_id}`]
|
|
64
|
+
|
|
65
|
+
const walletName: any = {
|
|
66
|
+
cash: {
|
|
67
|
+
name: t('PAY_WITH_CASH_WALLET', 'Pay with Cash Wallet'),
|
|
68
|
+
},
|
|
69
|
+
credit_point: {
|
|
70
|
+
name: t('PAY_WITH_CREDITS_POINTS_WALLET', 'Pay with Credit Points Wallet'),
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const getIncludedTaxes = () => {
|
|
75
|
+
if (cart?.taxes === null || !cart?.taxes) {
|
|
76
|
+
return cart?.business?.tax_type === 1 ? cart?.tax : 0
|
|
77
|
+
} else {
|
|
78
|
+
return cart?.taxes.reduce((taxIncluded: number, tax: any) => {
|
|
79
|
+
return taxIncluded + (tax.type === 1 ? tax.summary?.tax : 0)
|
|
80
|
+
}, 0)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const clearAmount = (value: any) => parseFloat((Math.trunc(value * 100) / 100).toFixed(configs.format_number_decimal_length?.value ?? 2))
|
|
85
|
+
const loyaltyRewardValue = clearAmount((cart?.subtotal + getIncludedTaxes()) * loyaltyRewardRate)
|
|
53
86
|
|
|
54
87
|
const handleDeleteClick = (product: any) => {
|
|
55
88
|
removeProduct(product, cart)
|
|
@@ -67,41 +100,20 @@ const OrderSummaryUI = (props: any) => {
|
|
|
67
100
|
})
|
|
68
101
|
}
|
|
69
102
|
|
|
70
|
-
const getIncludedTaxes = () => {
|
|
71
|
-
if (cart?.taxes === null || !cart?.taxes) {
|
|
72
|
-
return cart.business.tax_type === 1 ? cart?.tax : 0
|
|
73
|
-
} else {
|
|
74
|
-
return cart?.taxes.reduce((taxIncluded: number, tax: any) => {
|
|
75
|
-
return taxIncluded + (tax.type === 1 ? tax.summary?.tax : 0)
|
|
76
|
-
}, 0)
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
103
|
const getIncludedTaxesDiscounts = () => {
|
|
81
104
|
return cart?.taxes?.filter((tax: any) => tax?.type === 1)?.reduce((carry: number, tax: any) => carry + (tax?.summary?.tax_after_discount ?? tax?.summary?.tax), 0)
|
|
82
105
|
}
|
|
83
106
|
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const cart = orderState?.carts?.[`businessId:${props.cart.business_id}`]
|
|
97
|
-
|
|
98
|
-
const walletName: any = {
|
|
99
|
-
cash: {
|
|
100
|
-
name: t('PAY_WITH_CASH_WALLET', 'Pay with Cash Wallet'),
|
|
101
|
-
},
|
|
102
|
-
credit_point: {
|
|
103
|
-
name: t('PAY_WITH_CREDITS_POINTS_WALLET', 'Pay with Credit Points Wallet'),
|
|
104
|
-
}
|
|
107
|
+
const OfferAlert = ({ offerId }: any) => {
|
|
108
|
+
return (
|
|
109
|
+
<OAlert
|
|
110
|
+
title={t('OFFER', 'Offer')}
|
|
111
|
+
message={t('QUESTION_DELETE_OFFER', 'Are you sure that you want to delete the offer?')}
|
|
112
|
+
onAccept={() => handleRemoveOfferClick(offerId)}
|
|
113
|
+
>
|
|
114
|
+
<AntIcon style={{ marginLeft: 3 }} name='closecircle' size={16} color={theme.colors.primary} />
|
|
115
|
+
</OAlert>
|
|
116
|
+
)
|
|
105
117
|
}
|
|
106
118
|
|
|
107
119
|
return (
|
|
@@ -157,9 +169,9 @@ const OrderSummaryUI = (props: any) => {
|
|
|
157
169
|
<TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_1' })}>
|
|
158
170
|
<AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
|
|
159
171
|
</TouchableOpacity>
|
|
160
|
-
|
|
161
|
-
<
|
|
162
|
-
|
|
172
|
+
{!!offer?.id && (
|
|
173
|
+
<OfferAlert offerId={offer?.id} />
|
|
174
|
+
)}
|
|
163
175
|
</OSRow>
|
|
164
176
|
<OText size={12}>
|
|
165
177
|
- {parsePrice(offer?.summary?.discount)}
|
|
@@ -197,8 +209,8 @@ const OrderSummaryUI = (props: any) => {
|
|
|
197
209
|
))
|
|
198
210
|
}
|
|
199
211
|
{
|
|
200
|
-
cart?.fees?.length > 0 && cart?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0)).map((fee: any) => (
|
|
201
|
-
<OSTable key={fee?.id}>
|
|
212
|
+
cart?.fees?.length > 0 && cart?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0)).map((fee: any, i: number) => (
|
|
213
|
+
<OSTable key={fee?.id + i}>
|
|
202
214
|
<OSRow>
|
|
203
215
|
<OText size={12} numberOfLines={1}>
|
|
204
216
|
{fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}{' '}
|
|
@@ -223,9 +235,9 @@ const OrderSummaryUI = (props: any) => {
|
|
|
223
235
|
<TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_3' })}>
|
|
224
236
|
<AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
|
|
225
237
|
</TouchableOpacity>
|
|
226
|
-
|
|
227
|
-
<
|
|
228
|
-
|
|
238
|
+
{!!offer?.id && (
|
|
239
|
+
<OfferAlert offerId={offer?.id} />
|
|
240
|
+
)}
|
|
229
241
|
</OSRow>
|
|
230
242
|
<OText size={12}>
|
|
231
243
|
- {parsePrice(offer?.summary?.discount)}
|
|
@@ -233,10 +245,10 @@ const OrderSummaryUI = (props: any) => {
|
|
|
233
245
|
</OSTable>
|
|
234
246
|
))
|
|
235
247
|
}
|
|
236
|
-
{orderState?.options?.type === 1 &&
|
|
248
|
+
{orderState?.options?.type === 1 && !hideDeliveryFee && (
|
|
237
249
|
<OSTable>
|
|
238
250
|
<OText size={12}>{t('DELIVERY_FEE', 'Delivery Fee')}</OText>
|
|
239
|
-
<OText size={12}>{parsePrice(cart?.
|
|
251
|
+
<OText size={12}>{parsePrice(cart?.delivery_price_with_discount)}</OText>
|
|
240
252
|
</OSTable>
|
|
241
253
|
)}
|
|
242
254
|
{
|
|
@@ -250,9 +262,9 @@ const OrderSummaryUI = (props: any) => {
|
|
|
250
262
|
<TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_2' })}>
|
|
251
263
|
<AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
|
|
252
264
|
</TouchableOpacity>
|
|
253
|
-
|
|
254
|
-
<
|
|
255
|
-
|
|
265
|
+
{!!offer?.id && (
|
|
266
|
+
<OfferAlert offerId={offer?.id} />
|
|
267
|
+
)}
|
|
256
268
|
</OSRow>
|
|
257
269
|
<OText size={12}>
|
|
258
270
|
- {parsePrice(offer?.summary?.discount)}
|
|
@@ -302,9 +314,16 @@ const OrderSummaryUI = (props: any) => {
|
|
|
302
314
|
{parsePrice(cart?.balance >= 0 ? cart?.balance : 0)}
|
|
303
315
|
</OText>
|
|
304
316
|
</OSTable>
|
|
317
|
+
{!!loyaltyRewardValue && (
|
|
318
|
+
<OSTable style={{ justifyContent: 'flex-end' }}>
|
|
319
|
+
<OText size={12} color={theme.colors.textNormal}>
|
|
320
|
+
{t('REWARD_LOYALTY_POINT', 'Reward :amount: on loyalty points').replace(':amount:', loyaltyRewardValue)}
|
|
321
|
+
</OText>
|
|
322
|
+
</OSTable>
|
|
323
|
+
)}
|
|
305
324
|
</View>
|
|
306
325
|
)}
|
|
307
|
-
{cart?.business_id && cart?.status !== 2 && (
|
|
326
|
+
{cart?.business_id && cart?.status !== 2 && !hideCartComments && (
|
|
308
327
|
<OSTable>
|
|
309
328
|
<View style={{ width: '100%', marginTop: 20 }}>
|
|
310
329
|
<OText size={12}>{t('COMMENTS', 'Comments')}</OText>
|
|
@@ -339,6 +358,21 @@ const OrderSummaryUI = (props: any) => {
|
|
|
339
358
|
)}
|
|
340
359
|
</OSBill>
|
|
341
360
|
)}
|
|
361
|
+
{cateringTypes.includes(orderState?.options?.type) && maxDate && cart?.business && (
|
|
362
|
+
<View>
|
|
363
|
+
<MomentOption
|
|
364
|
+
maxDate={maxDate}
|
|
365
|
+
cateringPreorder
|
|
366
|
+
isCart
|
|
367
|
+
preorderSlotInterval={preorderSlotInterval}
|
|
368
|
+
preorderLeadTime={preorderLeadTime}
|
|
369
|
+
preorderTimeRange={preorderTimeRange}
|
|
370
|
+
preorderMaximumDays={preorderMaximumDays}
|
|
371
|
+
preorderMinimumDays={preorderMinimumDays}
|
|
372
|
+
business={cart?.business}
|
|
373
|
+
/>
|
|
374
|
+
</View>
|
|
375
|
+
)}
|
|
342
376
|
<OModal
|
|
343
377
|
open={openTaxModal.open}
|
|
344
378
|
onClose={() => setOpenTaxModal({ open: false, data: null, type: '' })}
|
|
@@ -352,14 +386,6 @@ const OrderSummaryUI = (props: any) => {
|
|
|
352
386
|
products={cart?.products}
|
|
353
387
|
/>
|
|
354
388
|
</OModal>
|
|
355
|
-
<OAlert
|
|
356
|
-
open={confirm.open}
|
|
357
|
-
title={confirm.title}
|
|
358
|
-
content={confirm.content}
|
|
359
|
-
onAccept={confirm.handleOnAccept}
|
|
360
|
-
onCancel={() => setConfirm({ ...confirm, open: false, title: null })}
|
|
361
|
-
onClose={() => setConfirm({ ...confirm, open: false, title: null })}
|
|
362
|
-
/>
|
|
363
389
|
</>
|
|
364
390
|
)}
|
|
365
391
|
</OSContainer>
|
|
@@ -31,14 +31,12 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
|
|
|
31
31
|
const [orderState] = useOrder();
|
|
32
32
|
const [, t] = useLanguage();
|
|
33
33
|
const _orderTypes = orderTypes.filter((type: any) => configTypes?.includes(type.value));
|
|
34
|
-
|
|
35
|
-
const orderTypeDescription = (type : string) => theme?.header?.components?.order_types?.components?.[type]?.components?.description
|
|
36
|
-
const orderTypeCallAction = (type : string) => theme?.header?.components?.order_types?.components?.[type]?.components?.call_to_action
|
|
34
|
+
|
|
37
35
|
const items = _orderTypes.map((type) => {
|
|
38
36
|
return {
|
|
39
37
|
value: type.value,
|
|
40
|
-
label:
|
|
41
|
-
description:
|
|
38
|
+
label: t(type.content, type.content),
|
|
39
|
+
description: t(type.description, 'Lorem ipsum dolor sit amet, consectetur.')
|
|
42
40
|
}
|
|
43
41
|
})
|
|
44
42
|
|
|
@@ -102,6 +100,7 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
|
|
|
102
100
|
style={{ paddingBottom: 0 }}
|
|
103
101
|
title={t('HOW_WILL_YOU_DELIVERY_TYPE', 'How will your order type?')}
|
|
104
102
|
titleAlign={'center'}
|
|
103
|
+
titleStyle={{ fontSize: 14 }}
|
|
105
104
|
noMargin
|
|
106
105
|
/>
|
|
107
106
|
{
|
|
@@ -115,7 +114,7 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
|
|
|
115
114
|
<OText size={12} lineHeight={18} color={theme.colors.white} weight={Platform.OS === 'android' ? 'bold' : '600'}>{item?.label}</OText>
|
|
116
115
|
<OText size={10} lineHeight={15} color={theme.colors.white}>{item?.description}</OText>
|
|
117
116
|
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
|
118
|
-
<OText size={10} lineHeight={15} color={theme.colors.white}>{
|
|
117
|
+
<OText size={10} lineHeight={15} color={theme.colors.white}>{t('START_MY_ORDER', 'Start my order')}</OText>
|
|
119
118
|
<AntDesignIcon name='arrowleft' size={26} color={theme.colors.white} style={{ transform: [{ rotate: '180deg' }], marginStart: 4 }} />
|
|
120
119
|
</View>
|
|
121
120
|
</MaskCont>
|
|
@@ -23,21 +23,21 @@ export const PreviousProductsOrdered = (props: PreviousProductsOrderedParams) =>
|
|
|
23
23
|
},
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
-
const ProductList = (
|
|
26
|
+
const ProductList = () => {
|
|
27
27
|
return (
|
|
28
28
|
<>
|
|
29
29
|
{products?.filter((product : any) => product?.business?.available)?.map((product: any) => (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
<SingleProductCard
|
|
31
|
+
key={product?.id}
|
|
32
|
+
isProductId
|
|
33
|
+
isSoldOut={(product.inventoried && !product.quantity)}
|
|
34
|
+
product={product}
|
|
35
|
+
businessId={product?.business?.id}
|
|
36
|
+
onProductClick={onProductClick}
|
|
37
|
+
style={{ width: windowWidth - (products?.length > 1 ? 120 : 80), marginRight: 20 }}
|
|
38
|
+
productAddedToCartLength={0}
|
|
39
|
+
handleUpdateProducts={handleUpdateProducts}
|
|
40
|
+
/>
|
|
41
41
|
))}
|
|
42
42
|
</>
|
|
43
43
|
)
|
|
@@ -45,7 +45,7 @@ export const PreviousProductsOrdered = (props: PreviousProductsOrderedParams) =>
|
|
|
45
45
|
return (
|
|
46
46
|
<ScrollView horizontal={isBusinessesSearchList} style={styles.container} showsVerticalScrollIndicator={false}>
|
|
47
47
|
{isBusinessesSearchList ? (
|
|
48
|
-
<ProductList
|
|
48
|
+
<ProductList />
|
|
49
49
|
) : (
|
|
50
50
|
<ListWrapper isBusinessesSearchList={isBusinessesSearchList}>
|
|
51
51
|
<ProductList />
|
|
@@ -10,6 +10,7 @@ import { PreviousProductsOrdered } from './PreviousProductsOrdered'
|
|
|
10
10
|
import { OptionTitle, NoOrdersWrapper } from './styles'
|
|
11
11
|
import { OrdersOptionParams } from '../../types'
|
|
12
12
|
import { _setStoreData } from '../../providers/StoreUtil';
|
|
13
|
+
import { NotFoundSource } from '../NotFoundSource';
|
|
13
14
|
import {
|
|
14
15
|
Placeholder,
|
|
15
16
|
PlaceholderLine,
|
|
@@ -17,7 +18,7 @@ import {
|
|
|
17
18
|
} from "rn-placeholder";
|
|
18
19
|
|
|
19
20
|
import { View, ScrollView } from 'react-native'
|
|
20
|
-
import { getOrderStatus } from '../../utils'
|
|
21
|
+
import { getOrderStatus, flatArray } from '../../utils'
|
|
21
22
|
|
|
22
23
|
const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
23
24
|
const {
|
|
@@ -50,7 +51,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
50
51
|
businesses,
|
|
51
52
|
businessPaginationProps,
|
|
52
53
|
handleUpdateProducts,
|
|
53
|
-
handleUpdateBusinesses
|
|
54
|
+
handleUpdateBusinesses,
|
|
55
|
+
businessId
|
|
54
56
|
} = props
|
|
55
57
|
|
|
56
58
|
const theme = useTheme();
|
|
@@ -98,7 +100,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
98
100
|
return false
|
|
99
101
|
})
|
|
100
102
|
setOrders(orders)
|
|
101
|
-
}, [_orders
|
|
103
|
+
}, [JSON.stringify(_orders)])
|
|
102
104
|
|
|
103
105
|
const onProductClick = (product: any) => {
|
|
104
106
|
if (product?.product_id && product?.category_id && product?.businessId &&
|
|
@@ -120,6 +122,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
120
122
|
}
|
|
121
123
|
|
|
122
124
|
useEffect(() => {
|
|
125
|
+
if (reorderState?.loading) return
|
|
123
126
|
const _businessId = 'businessId:' + reorderState?.result?.business_id
|
|
124
127
|
if (reorderState?.error) {
|
|
125
128
|
if (reorderState?.result?.business_id) {
|
|
@@ -127,21 +130,39 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
127
130
|
navigation.navigate('Business', { store: reorderState?.result?.business?.slug })
|
|
128
131
|
}
|
|
129
132
|
}
|
|
130
|
-
if (!reorderState?.error && reorderState.loading
|
|
133
|
+
if (!reorderState?.error && !reorderState.loading && reorderState?.result?.business_id) {
|
|
131
134
|
const cartProducts = carts?.[_businessId]?.products
|
|
132
|
-
const available = cartProducts.every((product: any) => product.valid === true)
|
|
133
|
-
const orderProducts = orders.find((order: any) => order?.id === reorderState?.result?.orderId)?.products
|
|
134
135
|
|
|
135
|
-
|
|
136
|
-
|
|
136
|
+
const available = cartProducts.every((product: any) => product.valid)
|
|
137
|
+
const orderProducts = orders.find(
|
|
138
|
+
(order: any) => Array.isArray(order?.id)
|
|
139
|
+
? order?.id?.includes(reorderState?.result?.orderId)
|
|
140
|
+
: order?.id === reorderState?.result?.orderId
|
|
141
|
+
)?.products
|
|
142
|
+
|
|
143
|
+
const productsFlatten = orderProducts?.length && flatArray(orderProducts)?.filter(product => product?.order_id === reorderState?.result?.orderId)
|
|
144
|
+
|
|
145
|
+
if (available && reorderState?.result?.uuid && (cartProducts?.length === productsFlatten?.length)) {
|
|
146
|
+
const multiOrders = flatArray(orderProducts)?.map(product => product.order_id)
|
|
147
|
+
const params = multiOrders?.length > 1
|
|
148
|
+
? { screen: 'MultiCheckout', checkCarts: true }
|
|
149
|
+
: { cartUuid: reorderState?.result.uuid }
|
|
150
|
+
|
|
151
|
+
onNavigationRedirect && onNavigationRedirect('CheckoutNavigator', params)
|
|
137
152
|
} else {
|
|
138
153
|
_setStoreData('adjust-cart-products', JSON.stringify(_businessId))
|
|
139
|
-
cartProducts?.length !==
|
|
154
|
+
cartProducts?.length !== productsFlatten?.length && _setStoreData('already-removed', JSON.stringify('removed'))
|
|
140
155
|
navigation.navigate('Business', { store: reorderState?.result?.business?.slug })
|
|
141
156
|
}
|
|
142
157
|
}
|
|
143
158
|
}, [reorderState])
|
|
144
159
|
|
|
160
|
+
useEffect(() => {
|
|
161
|
+
if (reorderState?.error) {
|
|
162
|
+
showToast(ToastType.Error, reorderState?.result)
|
|
163
|
+
}
|
|
164
|
+
}, [reorderState])
|
|
165
|
+
|
|
145
166
|
useFocusEffect(
|
|
146
167
|
React.useCallback(() => {
|
|
147
168
|
if (!businessesSearchList) {
|
|
@@ -166,6 +187,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
166
187
|
setOrdersLength && setOrdersLength({ ...ordersLength, activeOrdersLength: updateOrders?.length })
|
|
167
188
|
} else if (!preOrders) {
|
|
168
189
|
setOrdersLength && setOrdersLength({ ...ordersLength, previousOrdersLength: updateOrders?.length })
|
|
190
|
+
} else {
|
|
191
|
+
setOrdersLength && setOrdersLength({ ...ordersLength, preordersLength: updateOrders?.length })
|
|
169
192
|
}
|
|
170
193
|
}, [_orders, activeOrders, preOrders])
|
|
171
194
|
|
|
@@ -178,21 +201,21 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
178
201
|
|
|
179
202
|
return (
|
|
180
203
|
<>
|
|
181
|
-
{!loading && ordersLength.activeOrdersLength === 0 && ordersLength.previousOrdersLength === 0 && !activeOrders && (
|
|
204
|
+
{!loading && ordersLength.activeOrdersLength === 0 && ordersLength.previousOrdersLength === 0 && ordersLength?.preordersLength === 0 && !activeOrders && !preOrders && (
|
|
182
205
|
<NoOrdersWrapper>
|
|
183
|
-
<
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
textStyle={{ color: 'white', fontSize: 14 }}
|
|
190
|
-
style={{ borderRadius: 7.6, marginBottom: 10, marginTop: 10, height: 44, paddingLeft: 10, paddingRight: 10 }}
|
|
206
|
+
<NotFoundSource
|
|
207
|
+
hideImage
|
|
208
|
+
btnStyle={{ borderRadius: 8 }}
|
|
209
|
+
content={t('YOU_DONT_HAVE_ORDERS', 'You don\'t have any orders')}
|
|
210
|
+
btnTitle={t('ORDER_NOW', 'Order now')}
|
|
211
|
+
onClickButton={() => onNavigationRedirect && (businessId ? onNavigationRedirect('Business') : onNavigationRedirect('BusinessList'))}
|
|
191
212
|
/>
|
|
192
|
-
|
|
193
213
|
</NoOrdersWrapper>
|
|
194
214
|
)}
|
|
195
|
-
{((ordersLength?.activeOrdersLength > 0 && activeOrders) ||
|
|
215
|
+
{((ordersLength?.activeOrdersLength > 0 && activeOrders) ||
|
|
216
|
+
(ordersLength?.previousOrdersLength > 0 && !activeOrders && !preOrders) ||
|
|
217
|
+
(ordersLength?.preordersLength > 0 && preOrders)
|
|
218
|
+
) && (
|
|
196
219
|
<>
|
|
197
220
|
{((titleContent && ((isBusiness && businessOrderIds?.length > 0) || isProducts)) || !titleContent) && (
|
|
198
221
|
<OptionTitle titleContent={!!titleContent} isBusinessesSearchList={!!businessesSearchList}>
|