ordering-ui-react-native 0.17.72 → 0.17.73-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 +1 -21
- 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 +28 -24
- package/themes/business/src/components/BusinessController/index.tsx +0 -1
- package/themes/business/src/components/Chat/index.tsx +149 -118
- 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/GoogleMap/index.tsx +58 -57
- package/themes/business/src/components/LoginForm/Otp/index.tsx +31 -3
- package/themes/business/src/components/LoginForm/index.tsx +15 -22
- package/themes/business/src/components/MapView/index.tsx +10 -10
- package/themes/business/src/components/MessagesOption/index.tsx +20 -93
- package/themes/business/src/components/NewOrderNotification/index.tsx +37 -21
- 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 +191 -6
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +103 -39
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +61 -60
- package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -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 +17 -15
- 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 +88 -0
- package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
- package/themes/business/src/components/PreviousOrders/index.tsx +186 -114
- package/themes/business/src/components/PreviousOrders/styles.tsx +1 -1
- package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
- 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/OLink.tsx +11 -3
- package/themes/business/src/components/shared/OModal.tsx +16 -9
- package/themes/business/src/components/shared/OText.tsx +6 -1
- package/themes/business/src/types/index.tsx +25 -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 -9
- 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 +61 -39
- package/themes/original/src/components/AddressList/index.tsx +25 -24
- package/themes/original/src/components/AddressList/styles.tsx +4 -2
- 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 +153 -96
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
- package/themes/original/src/components/BusinessController/index.tsx +80 -66
- 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 +139 -85
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
- package/themes/original/src/components/BusinessListingSearch/index.tsx +349 -339
- 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 +684 -557
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
- package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +69 -38
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +0 -1
- package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
- package/themes/original/src/components/Cart/index.tsx +77 -79
- package/themes/original/src/components/CartContent/index.tsx +117 -20
- package/themes/original/src/components/CartContent/styles.tsx +17 -7
- package/themes/original/src/components/Checkout/index.tsx +355 -123
- 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 +52 -34
- package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
- package/themes/original/src/components/Favorite/index.tsx +2 -6
- package/themes/original/src/components/FavoriteList/index.tsx +1 -35
- package/themes/original/src/components/FloatingButton/index.tsx +10 -13
- package/themes/original/src/components/GPSButton/index.tsx +6 -4
- package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
- package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
- package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +191 -0
- package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
- package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
- package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
- package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
- package/themes/original/src/components/GoogleMap/index.tsx +60 -5
- package/themes/original/src/components/Help/index.tsx +2 -2
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +10 -31
- package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +5 -3
- package/themes/original/src/components/HelpGuide/index.tsx +6 -6
- package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
- package/themes/original/src/components/HelpOrder/index.tsx +6 -15
- package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
- package/themes/original/src/components/Home/index.tsx +13 -4
- package/themes/original/src/components/LastOrder/index.tsx +1 -34
- 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 +16 -42
- package/themes/original/src/components/Messages/index.tsx +14 -7
- package/themes/original/src/components/MomentOption/index.tsx +193 -90
- package/themes/original/src/components/MomentSelector/index.tsx +1 -1
- package/themes/original/src/components/MultiCart/index.tsx +41 -54
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +162 -50
- package/themes/original/src/components/MultiCheckout/index.tsx +329 -100
- package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
- package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +54 -21
- package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
- package/themes/original/src/components/MyOrders/index.tsx +40 -29
- package/themes/original/src/components/NavBar/index.tsx +20 -17
- package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
- package/themes/original/src/components/Notifications/index.tsx +42 -52
- package/themes/original/src/components/Notifications/styles.tsx +6 -3
- 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 +191 -363
- 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 +30 -56
- package/themes/original/src/components/OrderSummary/index.tsx +88 -59
- package/themes/original/src/components/OrderTypeSelector/index.tsx +2 -1
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
- package/themes/original/src/components/OrdersOption/index.tsx +67 -85
- package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
- package/themes/original/src/components/PageBanner/index.tsx +98 -38
- package/themes/original/src/components/PageBanner/styles.tsx +0 -10
- package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
- package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +78 -35
- package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
- package/themes/original/src/components/ProductForm/index.tsx +104 -29
- package/themes/original/src/components/ProductForm/styles.tsx +5 -5
- package/themes/original/src/components/ProductItemAccordion/index.tsx +12 -9
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +20 -18
- package/themes/original/src/components/ProductOptionSubOption/styles.tsx +5 -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/Sessions/index.tsx +11 -8
- package/themes/original/src/components/Sessions/styles.tsx +5 -0
- package/themes/original/src/components/SignupForm/index.tsx +43 -27
- package/themes/original/src/components/SingleOrderCard/index.tsx +102 -63
- package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
- package/themes/original/src/components/SingleProductCard/index.tsx +72 -31
- package/themes/original/src/components/SingleProductCard/styles.tsx +20 -4
- package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
- package/themes/original/src/components/StripeCardsList/index.tsx +49 -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 +238 -224
- package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
- package/themes/original/src/components/UserDetails/index.tsx +3 -1
- package/themes/original/src/components/UserFormDetails/index.tsx +76 -7
- package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
- package/themes/original/src/components/UserProfile/index.tsx +88 -79
- package/themes/original/src/components/UserProfileForm/index.tsx +17 -21
- package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
- 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 +66 -30
- package/themes/original/src/components/Wallets/styles.tsx +3 -4
- package/themes/original/src/components/shared/OButton.tsx +6 -2
- package/themes/original/src/components/shared/OInput.tsx +6 -1
- package/themes/original/src/components/shared/OModal.tsx +3 -3
- package/themes/original/src/types/index.tsx +40 -11
- package/themes/original/src/utils/index.tsx +273 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -7,7 +7,7 @@ export const TopHeader = styled.View`
|
|
|
7
7
|
width: 100%;
|
|
8
8
|
flex-direction: row;
|
|
9
9
|
align-items: center;
|
|
10
|
-
justify-content: space-between;
|
|
10
|
+
justify-content: ${({ hideArrow }: any) => hideArrow ? 'flex-end' : 'space-between'};
|
|
11
11
|
z-index: 1;
|
|
12
12
|
height: 60px;
|
|
13
13
|
min-height: 60px;
|
|
@@ -24,7 +24,7 @@ export const WrapSearchBar = styled.View`
|
|
|
24
24
|
flex: 1;
|
|
25
25
|
`
|
|
26
26
|
export const WrapContent = styled.View`
|
|
27
|
-
padding: 10px
|
|
27
|
+
padding-vertical: 10px;
|
|
28
28
|
`
|
|
29
29
|
|
|
30
30
|
export const BusinessProductsListingContainer = styled.ScrollView`
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
BusinessReviews as BusinessReviewController,
|
|
4
4
|
useLanguage,
|
|
5
5
|
useOrder,
|
|
6
|
+
useUtils
|
|
6
7
|
} from 'ordering-components/native';
|
|
7
8
|
import { useTheme } from 'styled-components/native';
|
|
8
9
|
import IconAntDesign from 'react-native-vector-icons/AntDesign';
|
|
@@ -30,6 +31,7 @@ const BusinessReviewsUI = (props: BusinessReviewsParams) => {
|
|
|
30
31
|
const theme = useTheme();
|
|
31
32
|
const [searchReview, setSearchReview] = useState('')
|
|
32
33
|
const [orderState] = useOrder();
|
|
34
|
+
const [{ parseDate }] = useUtils()
|
|
33
35
|
|
|
34
36
|
const styles = StyleSheet.create({
|
|
35
37
|
starIcon: {
|
|
@@ -94,7 +96,7 @@ const BusinessReviewsUI = (props: BusinessReviewsParams) => {
|
|
|
94
96
|
const ReviewItem = ({ comment, created_at, total }: any) => (
|
|
95
97
|
<View style={{ marginBottom: 30 }}>
|
|
96
98
|
<OText size={12} color={theme.colors.textSecondary}>
|
|
97
|
-
{
|
|
99
|
+
{parseDate(created_at, { outputFormat: 'MMMM D, YYYY • hh:mm A' })}
|
|
98
100
|
</OText>
|
|
99
101
|
<OText size={12} color={theme.colors.textNormal}>{comment}</OText>
|
|
100
102
|
</View>
|
|
@@ -18,8 +18,7 @@ import {
|
|
|
18
18
|
useSession,
|
|
19
19
|
useOrder,
|
|
20
20
|
useConfig,
|
|
21
|
-
useUtils
|
|
22
|
-
useOrderingTheme
|
|
21
|
+
useUtils
|
|
23
22
|
} from 'ordering-components/native';
|
|
24
23
|
import { useTheme } from 'styled-components/native';
|
|
25
24
|
import Ionicons from 'react-native-vector-icons/Ionicons'
|
|
@@ -74,13 +73,26 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
74
73
|
logosLayout
|
|
75
74
|
} = props;
|
|
76
75
|
const theme = useTheme();
|
|
77
|
-
const [orderingTheme] = useOrderingTheme()
|
|
78
76
|
const isFocused = useIsFocused();
|
|
77
|
+
|
|
78
|
+
const [, t] = useLanguage();
|
|
79
|
+
const [{ user, auth }] = useSession();
|
|
80
|
+
const [orderState, { changeCityFilter }] = useOrder();
|
|
81
|
+
const [{ configs }] = useConfig();
|
|
82
|
+
const [{ parseDate }] = useUtils();
|
|
83
|
+
|
|
79
84
|
const appState = useRef(AppState.currentState)
|
|
80
|
-
const isChewLayout = theme?.header?.components?.layout?.type === 'chew'
|
|
81
|
-
const hideCities = theme?.business_listing_view?.components?.cities?.hidden ?? true
|
|
85
|
+
const isChewLayout = theme?.header?.components?.layout?.type?.toLowerCase() === 'chew'
|
|
82
86
|
const [refreshing] = useState(false);
|
|
83
|
-
const
|
|
87
|
+
const allCitiesDisabled = citiesState?.cities?.every((city: any) => !city.enabled)
|
|
88
|
+
const hideCities = (theme?.business_listing_view?.components?.cities?.hidden || orderState?.options?.type !== 2 || allCitiesDisabled) ?? true
|
|
89
|
+
const hideHero = theme?.business_listing_view?.components?.business_hero?.hidden
|
|
90
|
+
const hidePreviousOrders = theme?.business_listing_view?.components?.previous_orders_block?.hidden
|
|
91
|
+
const hideHighestBusiness = theme?.business_listing_view?.components?.highest_rated_business_block?.hidden
|
|
92
|
+
const isAllCategoriesHidden = theme?.business_listing_view?.components?.categories?.hidden
|
|
93
|
+
const bgHeader = theme?.business_listing_view?.components?.business_hero?.components?.image
|
|
94
|
+
const bgHeaderHeight = theme?.business_listing_view?.components?.business_hero?.components?.style?.height
|
|
95
|
+
|
|
84
96
|
const styles = StyleSheet.create({
|
|
85
97
|
container: {
|
|
86
98
|
marginBottom: 0,
|
|
@@ -144,19 +156,12 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
144
156
|
},
|
|
145
157
|
});
|
|
146
158
|
|
|
147
|
-
|
|
148
|
-
const [, t] = useLanguage();
|
|
149
|
-
const [{ user, auth }] = useSession();
|
|
150
|
-
const [orderState, { changeCityFilter }] = useOrder();
|
|
151
|
-
const [{ configs }] = useConfig();
|
|
152
|
-
const [{ parseDate }] = useUtils();
|
|
153
|
-
|
|
154
159
|
const { top } = useSafeAreaInsets();
|
|
155
160
|
|
|
156
161
|
const [featuredBusiness, setFeaturedBusinesses] = useState(Array);
|
|
157
162
|
const [isFarAway, setIsFarAway] = useState(false)
|
|
158
163
|
const [businessTypes, setBusinessTypes] = useState(null)
|
|
159
|
-
const [orderTypeValue, setOrderTypeValue] = useState(orderState?.options
|
|
164
|
+
const [orderTypeValue, setOrderTypeValue] = useState(orderState?.options?.value)
|
|
160
165
|
const [isOpenCities, setIsOpenCities] = useState(false)
|
|
161
166
|
const isPreorderEnabled = (configs?.preorder_status_enabled?.value === '1' || configs?.preorder_status_enabled?.value === 'true') &&
|
|
162
167
|
Number(configs?.max_days_preorder?.value) > 0
|
|
@@ -220,7 +225,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
220
225
|
|
|
221
226
|
useEffect(() => {
|
|
222
227
|
if (!businessesList?.loading) {
|
|
223
|
-
const fb = businessesList.businesses.filter((b) => b
|
|
228
|
+
const fb = businessesList.businesses.filter((b) => b?.featured && b?.open);
|
|
224
229
|
const ary = [];
|
|
225
230
|
while (fb.length > 0) {
|
|
226
231
|
ary.push(fb.splice(0, 2));
|
|
@@ -289,6 +294,12 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
289
294
|
setIsOpenCities(false)
|
|
290
295
|
}, [orderState?.options?.city_id])
|
|
291
296
|
|
|
297
|
+
useEffect(() => {
|
|
298
|
+
if (!citiesState?.cities?.length || !orderState?.options?.city_id) return
|
|
299
|
+
const selectedCity = citiesState?.cities?.find((city: any) => city?.id === orderState?.options?.city_id)
|
|
300
|
+
if (!selectedCity || !selectedCity?.enabled) changeCityFilter(null)
|
|
301
|
+
}, [citiesState, orderState?.options?.city_id])
|
|
302
|
+
|
|
292
303
|
if (logosLayout) {
|
|
293
304
|
return (
|
|
294
305
|
<BusinessLogosContainer
|
|
@@ -364,7 +375,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
364
375
|
)}
|
|
365
376
|
<View style={{
|
|
366
377
|
height: !isPreOrderSetting && isChewLayout ? 150 : isChewLayout ? 200 : isFarAway ? 150 : 100,
|
|
367
|
-
marginTop: Platform.OS == 'ios' ? 0 : 50,
|
|
378
|
+
marginTop: isChewLayout ? 0 : Platform.OS == 'ios' ? 0 : 50,
|
|
368
379
|
backgroundColor: isChewLayout ? theme?.colors?.chew : theme.colors?.white
|
|
369
380
|
}}
|
|
370
381
|
>
|
|
@@ -466,18 +477,30 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
466
477
|
)}
|
|
467
478
|
</View>
|
|
468
479
|
{!isChewLayout ? (
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
480
|
+
<>
|
|
481
|
+
{!hideHero ? (
|
|
482
|
+
<HeaderWrapper
|
|
483
|
+
source={bgHeader ? { uri: bgHeader } : theme.images.backgrounds.business_list_header}
|
|
484
|
+
style={{ paddingTop: top + 20 }}
|
|
485
|
+
resizeMode='cover'
|
|
486
|
+
bgHeaderHeight={bgHeaderHeight}
|
|
487
|
+
>
|
|
488
|
+
{!auth && (
|
|
489
|
+
<TouchableOpacity onPress={() => navigation?.canGoBack() && navigation.goBack()} style={{ position: 'absolute', marginStart: 40, paddingVertical: 20 }}>
|
|
490
|
+
<OIcon src={theme.images.general.arrow_left} color={theme.colors.textNormal} />
|
|
491
|
+
</TouchableOpacity>
|
|
492
|
+
)}
|
|
493
|
+
</HeaderWrapper>
|
|
494
|
+
) : (
|
|
495
|
+
<>
|
|
496
|
+
{!auth && (
|
|
497
|
+
<TouchableOpacity onPress={() => navigation?.canGoBack() && navigation.goBack()} style={{ position: 'absolute', marginStart: 40, paddingVertical: 20 }}>
|
|
498
|
+
<OIcon src={theme.images.general.arrow_left} color={theme.colors.textNormal} />
|
|
499
|
+
</TouchableOpacity>
|
|
500
|
+
)}
|
|
501
|
+
</>
|
|
479
502
|
)}
|
|
480
|
-
|
|
503
|
+
</>
|
|
481
504
|
) : (
|
|
482
505
|
<OrderTypesContainer>
|
|
483
506
|
<OrderTypeSelector
|
|
@@ -502,10 +525,12 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
502
525
|
</TouchableOpacity>
|
|
503
526
|
</View>
|
|
504
527
|
)}
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
528
|
+
{!hidePreviousOrders && (
|
|
529
|
+
<OrderProgress
|
|
530
|
+
{...props}
|
|
531
|
+
isFocused={isFocused}
|
|
532
|
+
/>
|
|
533
|
+
)}
|
|
509
534
|
{
|
|
510
535
|
!businessId && !props.franchiseId && featuredBusiness && featuredBusiness.length > 0 && (
|
|
511
536
|
<FeaturedWrapper>
|
|
@@ -538,12 +563,13 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
538
563
|
</FeaturedWrapper>
|
|
539
564
|
)
|
|
540
565
|
}
|
|
541
|
-
{!isChewLayout && (
|
|
566
|
+
{!isChewLayout && !hideHighestBusiness && (
|
|
542
567
|
<>
|
|
543
568
|
<View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100 }} />
|
|
544
569
|
{
|
|
545
570
|
!businessId && !props.franchiseId && (
|
|
546
571
|
<HighestRatedBusinesses
|
|
572
|
+
propsToFetch={props.propsToFetch}
|
|
547
573
|
onBusinessClick={handleBusinessClick}
|
|
548
574
|
navigation={navigation}
|
|
549
575
|
favoriteIds={favoriteIds}
|
|
@@ -554,11 +580,11 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
554
580
|
</>
|
|
555
581
|
)}
|
|
556
582
|
|
|
557
|
-
<PageBanner position='app_business_listing' />
|
|
583
|
+
<PageBanner position='app_business_listing' navigation={navigation} />
|
|
558
584
|
|
|
559
585
|
<View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100 }} />
|
|
560
|
-
<ListWrapper>
|
|
561
|
-
{!businessId && (
|
|
586
|
+
<ListWrapper style={{ paddingHorizontal: isChewLayout ? 20 : 40 }}>
|
|
587
|
+
{!businessId && !isAllCategoriesHidden && (
|
|
562
588
|
<BusinessTypeFilter
|
|
563
589
|
images={props.images}
|
|
564
590
|
businessTypes={props.businessTypes}
|
|
@@ -567,7 +593,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
567
593
|
setBusinessTypes={setBusinessTypes}
|
|
568
594
|
/>
|
|
569
595
|
)}
|
|
570
|
-
{!businessesList.loading && businessesList.businesses.length === 0 && (
|
|
596
|
+
{!businessesList.loading && businessesList.businesses.length === 0 && businessesList?.fetched && (
|
|
571
597
|
<NotFoundSource
|
|
572
598
|
content={t(
|
|
573
599
|
'NOT_FOUND_BUSINESSES',
|
|
@@ -580,7 +606,6 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
580
606
|
<BusinessController
|
|
581
607
|
key={`${business.id}_` + i}
|
|
582
608
|
enableIntersection
|
|
583
|
-
isCustomLayout={isChewLayout}
|
|
584
609
|
business={business}
|
|
585
610
|
isBusinessOpen={business.open}
|
|
586
611
|
handleCustomClick={handleBusinessClick}
|
|
@@ -600,7 +625,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
600
625
|
/>
|
|
601
626
|
)
|
|
602
627
|
)}
|
|
603
|
-
{businessesList.loading && (
|
|
628
|
+
{(businessesList.loading || !businessesList?.fetched) && (
|
|
604
629
|
<>
|
|
605
630
|
{[
|
|
606
631
|
...Array(
|
|
@@ -668,10 +693,16 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
668
693
|
};
|
|
669
694
|
|
|
670
695
|
export const BusinessesListing = (props: BusinessesListingParams) => {
|
|
696
|
+
|
|
671
697
|
const BusinessesListingProps = {
|
|
672
698
|
...props,
|
|
673
699
|
isForceSearch: Platform.OS === 'ios',
|
|
674
700
|
UIComponent: BusinessesListingUI,
|
|
701
|
+
paginationSettings: {
|
|
702
|
+
initialPage: 1,
|
|
703
|
+
pageSize: 50,
|
|
704
|
+
controlType: 'infinity'
|
|
705
|
+
}
|
|
675
706
|
};
|
|
676
707
|
|
|
677
708
|
return <BusinessesListingController {...BusinessesListingProps} />;
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
useValidationFields,
|
|
9
9
|
} from 'ordering-components/native';
|
|
10
10
|
import { useTheme } from 'styled-components/native';
|
|
11
|
-
import { CContainer, CheckoutAction,
|
|
11
|
+
import { CContainer, CheckoutAction, DriverTipsContainer } from './styles';
|
|
12
12
|
|
|
13
13
|
import { OSBill, OSTable, OSCoupon, OSTotal, OSRow } from '../OrderSummary/styles';
|
|
14
14
|
|
|
@@ -23,7 +23,7 @@ import { ActivityIndicator, TouchableOpacity, View } from 'react-native';
|
|
|
23
23
|
import AntIcon from 'react-native-vector-icons/AntDesign'
|
|
24
24
|
import { TaxInformation } from '../TaxInformation';
|
|
25
25
|
import { CartStoresListing } from '../CartStoresListing';
|
|
26
|
-
import { OAlert } from '
|
|
26
|
+
import { OAlert } from '../shared'
|
|
27
27
|
import { PlaceSpot } from '../PlaceSpot'
|
|
28
28
|
import { DriverTips } from '../DriverTips'
|
|
29
29
|
|
|
@@ -41,7 +41,17 @@ const CartUI = (props: any) => {
|
|
|
41
41
|
commentState,
|
|
42
42
|
onNavigationRedirect,
|
|
43
43
|
handleRemoveOfferClick,
|
|
44
|
-
isMultiCheckout
|
|
44
|
+
isMultiCheckout,
|
|
45
|
+
hideDeliveryFee,
|
|
46
|
+
hideDriverTip,
|
|
47
|
+
hideCouponInput,
|
|
48
|
+
preorderSlotInterval,
|
|
49
|
+
preorderLeadTime,
|
|
50
|
+
preorderTimeRange,
|
|
51
|
+
preorderMaximumDays,
|
|
52
|
+
preorderMinimumDays,
|
|
53
|
+
cateringTypes,
|
|
54
|
+
isFromUpselling
|
|
45
55
|
} = props
|
|
46
56
|
|
|
47
57
|
const theme = useTheme();
|
|
@@ -56,18 +66,15 @@ const CartUI = (props: any) => {
|
|
|
56
66
|
const [openChangeStore, setOpenChangeStore] = useState(false)
|
|
57
67
|
const [canOpenUpselling, setCanOpenUpselling] = useState(false)
|
|
58
68
|
const [openTaxModal, setOpenTaxModal] = useState<any>({ open: false, data: null, type: '' })
|
|
59
|
-
const [confirm, setConfirm] = useState<any>({ open: false, content: null, handleOnAccept: null, id: null, title: null })
|
|
60
69
|
const [openPlaceModal, setOpenPlaceModal] = useState(false)
|
|
61
70
|
|
|
62
71
|
const isCartPending = cart?.status === 2
|
|
63
72
|
const isCouponEnabled = validationFields?.fields?.checkout?.coupon?.enabled
|
|
64
|
-
const isCheckoutMultiBusinessEnabled: Boolean = configs?.checkout_multi_business_enabled?.value === '1'
|
|
65
|
-
const openCarts = (Object.values(orderState?.carts)?.filter((cart: any) => cart?.products && cart?.products?.length && cart?.status !== 2 && cart?.valid_schedule && cart?.valid_products && cart?.valid_address && cart?.valid_maximum && cart?.valid_minimum && !cart?.wallets) || null) || []
|
|
66
|
-
|
|
67
73
|
const business: any = (orderState?.carts && Object.values(orderState.carts).find((_cart: any) => _cart?.uuid === props.cartuuid)) ?? {}
|
|
68
74
|
const businessId = business?.business_id ?? null
|
|
69
75
|
const placeSpotTypes = [4]
|
|
70
|
-
|
|
76
|
+
const hideCartComments = theme?.business_view?.components?.cart?.components?.comments?.hidden
|
|
77
|
+
const hideCartDiscount = theme?.business_view?.components?.cart?.components?.discount?.hidden
|
|
71
78
|
const driverTipsOptions = typeof configs?.driver_tip_options?.value === 'string'
|
|
72
79
|
? JSON.parse(configs?.driver_tip_options?.value) || []
|
|
73
80
|
: configs?.driver_tip_options?.value || []
|
|
@@ -101,50 +108,45 @@ const CartUI = (props: any) => {
|
|
|
101
108
|
}
|
|
102
109
|
}
|
|
103
110
|
|
|
104
|
-
const handleUpsellingPage = () => {
|
|
111
|
+
const handleUpsellingPage = (individualCart : any) => {
|
|
112
|
+
const isProductCartParam = !!individualCart?.products?.length
|
|
105
113
|
setOpenUpselling(false)
|
|
106
114
|
setCanOpenUpselling(false)
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
})
|
|
115
|
-
return
|
|
116
|
-
}
|
|
117
|
-
const cartGroupsCount : any = {}
|
|
118
|
-
Object.values(orderState.carts).filter(_cart => cartFilterValidation(_cart))?.forEach((_cart : any) => {
|
|
119
|
-
if (cartGroupsCount[_cart?.group?.uuid]) {
|
|
120
|
-
cartGroupsCount[_cart?.group?.uuid] += 1
|
|
121
|
-
} else {
|
|
122
|
-
cartGroupsCount[_cart?.group?.uuid] = 1
|
|
123
|
-
}
|
|
124
|
-
})
|
|
125
|
-
let groupForTheCart
|
|
126
|
-
const groupForAddCartArray = Object.keys(cartGroupsCount).filter(cartGroupUuid => cartGroupsCount[cartGroupUuid] > 0 && cartGroupsCount[cartGroupUuid] < 5)
|
|
127
|
-
const max = Math.max(...groupForAddCartArray.map(uuid => cartGroupsCount[uuid]))
|
|
128
|
-
const indexes = groupForAddCartArray.filter(uuid => cartGroupsCount[uuid] === max)
|
|
129
|
-
if (indexes?.length > 1) {
|
|
130
|
-
groupForTheCart = indexes.find(uuid => uuid !== 'undefined')
|
|
131
|
-
} else {
|
|
132
|
-
groupForTheCart = indexes[0]
|
|
133
|
-
}
|
|
134
|
-
if (isCheckoutMultiBusinessEnabled && openCarts.length > 1 && groupForTheCart) {
|
|
135
|
-
props.onNavigationRedirect('CheckoutNavigator', {
|
|
136
|
-
screen: 'MultiCart',
|
|
137
|
-
cartUuid: cart.uuid,
|
|
138
|
-
cartGroup: groupForTheCart === 'undefined' ? 'create' : groupForTheCart
|
|
139
|
-
})
|
|
140
|
-
} else {
|
|
141
|
-
props.onNavigationRedirect('CheckoutNavigator', {
|
|
115
|
+
|
|
116
|
+
const cartsAvailable: any = Object.values(orderState?.carts)
|
|
117
|
+
?.filter((_cart: any) => _cart?.valid && _cart?.status !== 2 && _cart?.products?.length)
|
|
118
|
+
?.filter((_c: any) => !isProductCartParam ? _c.uuid !== individualCart?.uuid : _c)
|
|
119
|
+
if (cartsAvailable.length === 1 || !isMultiCheckout) {
|
|
120
|
+
const cart = isMultiCheckout ? cartsAvailable[0] : individualCart
|
|
121
|
+
onNavigationRedirect('CheckoutNavigator', {
|
|
142
122
|
screen: 'CheckoutPage',
|
|
143
123
|
cartUuid: cart?.uuid,
|
|
144
124
|
businessLogo: cart?.business?.logo,
|
|
145
125
|
businessName: cart?.business?.name,
|
|
146
126
|
cartTotal: cart?.total
|
|
127
|
+
}, true)
|
|
128
|
+
} else {
|
|
129
|
+
const groupKeys: any = {}
|
|
130
|
+
cartsAvailable.forEach((_cart: any) => {
|
|
131
|
+
groupKeys[_cart?.group?.uuid]
|
|
132
|
+
? groupKeys[_cart?.group?.uuid] += 1
|
|
133
|
+
: groupKeys[_cart?.group?.uuid ?? 'null'] = 1
|
|
147
134
|
})
|
|
135
|
+
|
|
136
|
+
if (
|
|
137
|
+
(Object.keys(groupKeys).length === 1 && Object.keys(groupKeys)[0] === 'null') ||
|
|
138
|
+
Object.keys(groupKeys).length > 1
|
|
139
|
+
) {
|
|
140
|
+
onNavigationRedirect('CheckoutNavigator', {
|
|
141
|
+
screen: 'MultiCheckout',
|
|
142
|
+
checkCarts: true
|
|
143
|
+
}, true)
|
|
144
|
+
} else {
|
|
145
|
+
onNavigationRedirect('CheckoutNavigator', {
|
|
146
|
+
screen: 'MultiCheckout',
|
|
147
|
+
cartUuid: cartsAvailable[0]?.group?.uuid
|
|
148
|
+
}, true)
|
|
149
|
+
}
|
|
148
150
|
}
|
|
149
151
|
}
|
|
150
152
|
|
|
@@ -162,16 +164,16 @@ const CartUI = (props: any) => {
|
|
|
162
164
|
return cart?.taxes?.filter((tax: any) => tax?.type === 1)?.reduce((carry: number, tax: any) => carry + (tax?.summary?.tax_after_discount ?? tax?.summary?.tax), 0)
|
|
163
165
|
}
|
|
164
166
|
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
167
|
+
const OfferAlert = ({ offerId }: any) => {
|
|
168
|
+
return (
|
|
169
|
+
<OAlert
|
|
170
|
+
title={t('OFFER', 'Offer')}
|
|
171
|
+
message={t('QUESTION_DELETE_OFFER', 'Are you sure that you want to delete the offer?')}
|
|
172
|
+
onAccept={() => handleRemoveOfferClick(offerId)}
|
|
173
|
+
>
|
|
174
|
+
<AntIcon style={{ marginLeft: 3 }} name='closecircle' size={16} color={theme.colors.primary} />
|
|
175
|
+
</OAlert>
|
|
176
|
+
)
|
|
175
177
|
}
|
|
176
178
|
|
|
177
179
|
const walletName: any = {
|
|
@@ -215,12 +217,14 @@ const CartUI = (props: any) => {
|
|
|
215
217
|
handleClickCheckout={() => setOpenUpselling(true)}
|
|
216
218
|
checkoutButtonDisabled={(openUpselling && !canOpenUpselling) || subtotalWithTaxes < cart?.minimum || !cart?.valid_address}
|
|
217
219
|
isMultiCheckout={isMultiCheckout}
|
|
220
|
+
isFromUpselling={isFromUpselling}
|
|
218
221
|
>
|
|
219
222
|
{cart?.products?.length > 0 && cart?.products.map((product: any, i: number) => (
|
|
220
223
|
<ProductItemAccordion
|
|
221
224
|
key={`${product.code}_${i}`}
|
|
222
225
|
isCartPending={isCartPending}
|
|
223
226
|
isCartProduct
|
|
227
|
+
isDisabledEdit={!cart?.business_id}
|
|
224
228
|
product={product}
|
|
225
229
|
changeQuantity={changeQuantity}
|
|
226
230
|
getProductMax={getProductMax}
|
|
@@ -262,9 +266,9 @@ const CartUI = (props: any) => {
|
|
|
262
266
|
<TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_1' })}>
|
|
263
267
|
<AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
|
|
264
268
|
</TouchableOpacity>
|
|
265
|
-
|
|
266
|
-
<
|
|
267
|
-
|
|
269
|
+
{!!offer?.id && (
|
|
270
|
+
<OfferAlert offerId={offer?.id} />
|
|
271
|
+
)}
|
|
268
272
|
</OSRow>
|
|
269
273
|
<OText size={12} lineHeight={18}>
|
|
270
274
|
- {parsePrice(offer?.summary?.discount)}
|
|
@@ -326,9 +330,9 @@ const CartUI = (props: any) => {
|
|
|
326
330
|
<TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_3' })}>
|
|
327
331
|
<AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
|
|
328
332
|
</TouchableOpacity>
|
|
329
|
-
|
|
330
|
-
<
|
|
331
|
-
|
|
333
|
+
{!!offer?.id && (
|
|
334
|
+
<OfferAlert offerId={offer?.id} />
|
|
335
|
+
)}
|
|
332
336
|
</OSRow>
|
|
333
337
|
<OText size={12} lineHeight={18}>
|
|
334
338
|
- {parsePrice(offer?.summary?.discount)}
|
|
@@ -336,10 +340,10 @@ const CartUI = (props: any) => {
|
|
|
336
340
|
</OSTable>
|
|
337
341
|
))
|
|
338
342
|
}
|
|
339
|
-
{orderState?.options?.type === 1 && cart?.
|
|
343
|
+
{orderState?.options?.type === 1 && cart?.delivery_price_with_discount > 0 && !hideDeliveryFee && (
|
|
340
344
|
<OSTable>
|
|
341
345
|
<OText size={12} lineHeight={18}>{t('DELIVERY_FEE', 'Delivery Fee')}</OText>
|
|
342
|
-
<OText size={12} lineHeight={18}>{parsePrice(cart?.
|
|
346
|
+
<OText size={12} lineHeight={18}>{parsePrice(cart?.delivery_price_with_discount)}</OText>
|
|
343
347
|
</OSTable>
|
|
344
348
|
)}
|
|
345
349
|
{
|
|
@@ -353,9 +357,9 @@ const CartUI = (props: any) => {
|
|
|
353
357
|
<TouchableOpacity style={{ marginLeft: 3 }} onPress={() => setOpenTaxModal({ open: true, data: offer, type: 'offer_target_2' })}>
|
|
354
358
|
<AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
|
|
355
359
|
</TouchableOpacity>
|
|
356
|
-
|
|
357
|
-
<
|
|
358
|
-
|
|
360
|
+
{!!offer?.id && (
|
|
361
|
+
<OfferAlert offerId={offer?.id} />
|
|
362
|
+
)}
|
|
359
363
|
</OSRow>
|
|
360
364
|
<OText size={12} lineHeight={18}>
|
|
361
365
|
- {parsePrice(offer?.summary?.discount)}
|
|
@@ -363,7 +367,7 @@ const CartUI = (props: any) => {
|
|
|
363
367
|
</OSTable>
|
|
364
368
|
))
|
|
365
369
|
}
|
|
366
|
-
{cart?.driver_tip > 0 && (
|
|
370
|
+
{cart?.driver_tip > 0 && !hideDriverTip && (
|
|
367
371
|
<OSTable>
|
|
368
372
|
<OText size={12} lineHeight={18}>
|
|
369
373
|
{t('DRIVER_TIP', 'Driver tip')}
|
|
@@ -385,18 +389,19 @@ const CartUI = (props: any) => {
|
|
|
385
389
|
<OText size={12}>-{parsePrice(event.amount, { isTruncable: true })}</OText>
|
|
386
390
|
</OSTable>
|
|
387
391
|
))}
|
|
388
|
-
{isCouponEnabled && !isCartPending && (
|
|
392
|
+
{isCouponEnabled && !isCartPending && !hideCouponInput && (
|
|
389
393
|
<OSTable>
|
|
390
394
|
<OSCoupon>
|
|
391
395
|
<CouponControl
|
|
392
396
|
businessId={businessId}
|
|
393
397
|
price={cart.total}
|
|
398
|
+
cart={cart}
|
|
394
399
|
/>
|
|
395
400
|
</OSCoupon>
|
|
396
401
|
</OSTable>
|
|
397
402
|
)}
|
|
398
403
|
|
|
399
|
-
{isMultiCheckout &&
|
|
404
|
+
{!isMultiCheckout &&
|
|
400
405
|
cart &&
|
|
401
406
|
cart?.valid &&
|
|
402
407
|
orderState?.options?.type === 1 &&
|
|
@@ -411,13 +416,14 @@ const CartUI = (props: any) => {
|
|
|
411
416
|
<DriverTips
|
|
412
417
|
uuid={cart?.uuid}
|
|
413
418
|
businessId={cart?.business_id}
|
|
414
|
-
driverTipsOptions={driverTipsOptions}
|
|
415
|
-
isFixedPrice={parseInt(configs?.driver_tip_type?.value, 10) === 1
|
|
419
|
+
driverTipsOptions={!driverTipsOptions.includes(0) ? [0, ...driverTipsOptions] : driverTipsOptions}
|
|
420
|
+
isFixedPrice={parseInt(configs?.driver_tip_type?.value, 10) === 1}
|
|
416
421
|
isDriverTipUseCustom={!!parseInt(configs?.driver_tip_use_custom?.value, 10)}
|
|
417
|
-
driverTip={parseInt(configs?.driver_tip_type?.value, 10) === 1
|
|
422
|
+
driverTip={parseInt(configs?.driver_tip_type?.value, 10) === 1
|
|
418
423
|
? cart?.driver_tip
|
|
419
424
|
: cart?.driver_tip_rate}
|
|
420
425
|
useOrderContext
|
|
426
|
+
cart={cart}
|
|
421
427
|
/>
|
|
422
428
|
</DriverTipsContainer>
|
|
423
429
|
)}
|
|
@@ -551,14 +557,6 @@ const CartUI = (props: any) => {
|
|
|
551
557
|
setOpenPlaceModal={setOpenPlaceModal}
|
|
552
558
|
/>
|
|
553
559
|
</OModal>
|
|
554
|
-
<OAlert
|
|
555
|
-
open={confirm.open}
|
|
556
|
-
title={confirm.title}
|
|
557
|
-
content={confirm.content}
|
|
558
|
-
onAccept={confirm.handleOnAccept}
|
|
559
|
-
onCancel={() => setConfirm({ ...confirm, open: false, title: null })}
|
|
560
|
-
onClose={() => setConfirm({ ...confirm, open: false, title: null })}
|
|
561
|
-
/>
|
|
562
560
|
</CContainer>
|
|
563
561
|
)
|
|
564
562
|
}
|