ordering-ui-react-native 0.21.47 → 0.21.48-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 -8
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/PaymentOptionsWebView/index.tsx +1 -0
- package/src/components/StripeMethodForm/index.tsx +6 -4
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/types/index.tsx +3 -1
- package/src/utils/index.tsx +2 -2
- package/themes/business/index.tsx +6 -0
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +4 -3
- package/themes/business/src/components/BusinessController/index.tsx +19 -17
- package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
- package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
- package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
- package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
- package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
- package/themes/business/src/components/DriverMap/index.tsx +36 -23
- package/themes/business/src/components/GoogleMap/index.tsx +15 -8
- package/themes/business/src/components/Home/index.tsx +5 -1
- package/themes/business/src/components/LanguageSelector/index.tsx +1 -2
- package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
- package/themes/business/src/components/LogoutButton/index.tsx +1 -1
- package/themes/business/src/components/MapView/index.tsx +30 -15
- package/themes/business/src/components/MessagesOption/index.tsx +2 -1
- package/themes/business/src/components/NewOrderNotification/index.tsx +66 -26
- package/themes/business/src/components/OrderDetails/Business.tsx +52 -2
- package/themes/business/src/components/OrderDetails/Delivery.tsx +30 -11
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +68 -61
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +40 -20
- package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +220 -0
- package/themes/business/src/components/OrderSummary/index.tsx +240 -76
- package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
- package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
- package/themes/business/src/components/OrdersOption/index.tsx +253 -135
- package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +37 -40
- package/themes/business/src/components/PreviousOrders/OrderList.tsx +1 -1
- package/themes/business/src/components/PreviousOrders/index.tsx +5 -3
- package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
- package/themes/business/src/components/PrinterEdition/index.tsx +363 -0
- package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
- package/themes/business/src/components/PrinterSettings/index.tsx +267 -0
- package/themes/business/src/components/PrinterSettings/styles.tsx +30 -0
- package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
- package/themes/business/src/components/SearchBar/index.tsx +2 -1
- package/themes/business/src/components/Sessions/index.tsx +187 -0
- package/themes/business/src/components/Sessions/styles.tsx +20 -0
- package/themes/business/src/components/StoresList/index.tsx +5 -3
- package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
- package/themes/business/src/components/UserProfileForm/index.tsx +106 -54
- package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
- package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
- package/themes/business/src/components/shared/OInput.tsx +2 -0
- package/themes/business/src/components/shared/OTextarea.tsx +8 -9
- package/themes/business/src/hooks/useLocation.tsx +5 -4
- package/themes/business/src/types/index.tsx +21 -5
- package/themes/business/src/utils/index.tsx +5 -0
- package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
- package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
- package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
- package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +6 -2
- package/themes/original/src/components/AddressDetails/index.tsx +20 -10
- package/themes/original/src/components/AddressForm/index.tsx +41 -12
- package/themes/original/src/components/AddressForm/styles.tsx +1 -1
- package/themes/original/src/components/AddressList/index.tsx +18 -4
- package/themes/original/src/components/AddressList/styles.tsx +4 -4
- package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +7 -10
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +1 -1
- package/themes/original/src/components/BusinessController/index.tsx +18 -10
- package/themes/original/src/components/BusinessController/styles.tsx +8 -7
- package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -7
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
- package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
- package/themes/original/src/components/BusinessListingSearch/index.tsx +47 -358
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -1
- package/themes/original/src/components/BusinessPreorder/index.tsx +4 -3
- package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
- package/themes/original/src/components/BusinessProductsList/index.tsx +1 -1
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +31 -18
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
- package/themes/original/src/components/BusinessReviews/index.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
- package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +7 -7
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +2 -2
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
- package/themes/original/src/components/Cart/index.tsx +32 -9
- package/themes/original/src/components/CartContent/index.tsx +96 -58
- package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
- package/themes/original/src/components/Checkout/index.tsx +144 -62
- package/themes/original/src/components/Checkout/styles.tsx +17 -0
- package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
- package/themes/original/src/components/DatePicker/index.tsx +18 -2
- package/themes/original/src/components/Favorite/index.tsx +9 -9
- package/themes/original/src/components/Favorite/styles.tsx +0 -2
- package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -0
- package/themes/original/src/components/GPSButton/index.tsx +1 -1
- package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
- package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
- package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
- package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +2 -2
- package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
- package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
- package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
- package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +83 -0
- package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
- package/themes/original/src/components/GoogleMap/index.tsx +39 -18
- package/themes/original/src/components/Help/index.tsx +7 -0
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +5 -0
- package/themes/original/src/components/HelpGuide/index.tsx +5 -0
- package/themes/original/src/components/HelpOrder/index.tsx +5 -0
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
- package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
- package/themes/original/src/components/Home/index.tsx +3 -8
- package/themes/original/src/components/LoginForm/Otp/index.tsx +4 -16
- package/themes/original/src/components/LoginForm/index.tsx +9 -3
- package/themes/original/src/components/MessageListing/index.tsx +6 -0
- package/themes/original/src/components/Messages/index.tsx +8 -7
- package/themes/original/src/components/Messages/styles.tsx +1 -1
- package/themes/original/src/components/MomentOption/index.tsx +19 -4
- package/themes/original/src/components/MultiCart/index.tsx +1 -1
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
- package/themes/original/src/components/MultiCheckout/index.tsx +126 -61
- package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -15
- package/themes/original/src/components/MyOrders/index.tsx +28 -28
- package/themes/original/src/components/NavBar/index.tsx +5 -0
- package/themes/original/src/components/NetworkError/index.tsx +2 -3
- package/themes/original/src/components/NetworkError/styles.tsx +2 -2
- package/themes/original/src/components/Notifications/index.tsx +9 -8
- package/themes/original/src/components/Notifications/styles.tsx +0 -1
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +1 -1
- package/themes/original/src/components/OrderDetails/index.tsx +701 -662
- package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
- package/themes/original/src/components/OrderProgress/index.tsx +22 -3
- package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
- package/themes/original/src/components/OrderSummary/index.tsx +3 -1
- package/themes/original/src/components/OrderTypeSelector/index.tsx +10 -6
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
- package/themes/original/src/components/OrdersOption/index.tsx +3 -5
- package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
- package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +47 -4
- package/themes/original/src/components/PreviousOrders/index.tsx +2 -0
- package/themes/original/src/components/ProductForm/ActionButton.tsx +122 -0
- package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
- package/themes/original/src/components/ProductForm/index.tsx +170 -252
- package/themes/original/src/components/ProductItemAccordion/index.tsx +55 -44
- package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +112 -91
- package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
- package/themes/original/src/components/Promotions/index.tsx +13 -11
- package/themes/original/src/components/Promotions/styles.tsx +0 -2
- package/themes/original/src/components/ReviewDriver/index.tsx +5 -0
- package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
- package/themes/original/src/components/ReviewOrder/index.tsx +5 -0
- package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
- package/themes/original/src/components/ReviewProducts/index.tsx +5 -0
- package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
- package/themes/original/src/components/ServiceForm/index.tsx +1 -1
- package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
- package/themes/original/src/components/Sessions/index.tsx +5 -0
- package/themes/original/src/components/SignupForm/index.tsx +67 -59
- package/themes/original/src/components/SingleOrderCard/index.tsx +3 -2
- package/themes/original/src/components/SingleProductCard/index.tsx +4 -3
- package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
- package/themes/original/src/components/StripeCardsList/index.tsx +12 -35
- package/themes/original/src/components/StripeElementsForm/index.tsx +79 -59
- package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -1
- package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
- package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +91 -0
- package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
- package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
- package/themes/original/src/components/UserFormDetails/index.tsx +100 -86
- package/themes/original/src/components/UserFormDetails/styles.tsx +7 -0
- package/themes/original/src/components/UserProfile/index.tsx +3 -2
- package/themes/original/src/components/UserProfileForm/index.tsx +5 -0
- package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
- package/themes/original/src/components/Wallets/index.tsx +7 -4
- package/themes/original/src/components/Wallets/styles.tsx +2 -1
- package/themes/original/src/components/WebsocketStatus/index.tsx +172 -0
- package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
- package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
- package/themes/original/src/components/shared/OButton.tsx +5 -5
- package/themes/original/src/components/shared/OInput.tsx +1 -4
- package/themes/original/src/components/shared/OModal.tsx +12 -14
- package/themes/original/src/layouts/Container.tsx +5 -3
- package/themes/original/src/types/index.tsx +4 -1
- package/themes/original/src/utils/index.tsx +12 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -1,30 +1,40 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import FastImage from 'react-native-fast-image'
|
|
3
|
-
import { StyleSheet, TouchableOpacity,
|
|
3
|
+
import { StyleSheet, TouchableOpacity, useWindowDimensions } from 'react-native';
|
|
4
4
|
import {
|
|
5
5
|
AddressDetails as AddressDetailsController,
|
|
6
6
|
useOrder,
|
|
7
7
|
useLanguage,
|
|
8
8
|
} from 'ordering-components/native';
|
|
9
|
+
import { useTheme } from 'styled-components/native';
|
|
9
10
|
|
|
10
11
|
import { ADContainer, ADHeader, ADAddress, ADMap } from './styles';
|
|
11
|
-
|
|
12
|
-
import {
|
|
13
|
-
import { OText, OIcon } from '../shared';
|
|
14
|
-
import { useWindowDimensions } from 'react-native';
|
|
12
|
+
import { OText } from '../shared';
|
|
13
|
+
import { getTypesText } from '../../utils';
|
|
15
14
|
|
|
16
15
|
const AddressDetailsUI = (props: any) => {
|
|
17
|
-
const {
|
|
18
|
-
|
|
16
|
+
const {
|
|
17
|
+
navigation,
|
|
18
|
+
addressToShow,
|
|
19
|
+
isCartPending,
|
|
20
|
+
googleMapsUrl,
|
|
21
|
+
apiKey
|
|
22
|
+
} = props;
|
|
19
23
|
|
|
20
24
|
const theme = useTheme();
|
|
21
25
|
const [orderState] = useOrder();
|
|
26
|
+
const [{ options }] = useOrder();
|
|
22
27
|
const [, t] = useLanguage();
|
|
23
28
|
const { width } = useWindowDimensions();
|
|
24
29
|
|
|
30
|
+
const orderTypeText = {
|
|
31
|
+
key: getTypesText(options?.type || 1),
|
|
32
|
+
value: t(getTypesText(options?.type || 1), 'Delivery')
|
|
33
|
+
}
|
|
34
|
+
|
|
25
35
|
const styles = StyleSheet.create({
|
|
26
36
|
productStyle: {
|
|
27
|
-
width
|
|
37
|
+
width,
|
|
28
38
|
height: 151,
|
|
29
39
|
marginVertical: 10
|
|
30
40
|
}
|
|
@@ -39,13 +49,13 @@ const AddressDetailsUI = (props: any) => {
|
|
|
39
49
|
lineHeight={24}
|
|
40
50
|
color={theme.colors.textNormal}
|
|
41
51
|
>
|
|
42
|
-
{t(
|
|
52
|
+
{t(`${orderTypeText.key}_ADDRESS`, `${orderTypeText.value} address`)}
|
|
43
53
|
</OText>
|
|
44
54
|
)}
|
|
45
55
|
</ADHeader>
|
|
46
56
|
{!!apiKey && googleMapsUrl && (
|
|
47
57
|
<ADMap
|
|
48
|
-
style={{
|
|
58
|
+
style={{ width, flex: 1, marginStart: -20, marginEnd: -20, }}>
|
|
49
59
|
<FastImage
|
|
50
60
|
style={styles.productStyle}
|
|
51
61
|
source={{
|
|
@@ -66,7 +66,9 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
66
66
|
isFromProductsList,
|
|
67
67
|
hasAddressDefault,
|
|
68
68
|
afterSignup,
|
|
69
|
-
businessSlug
|
|
69
|
+
businessSlug,
|
|
70
|
+
isFromCheckout,
|
|
71
|
+
onNavigationRedirect
|
|
70
72
|
} = props;
|
|
71
73
|
|
|
72
74
|
const theme = useTheme();
|
|
@@ -122,8 +124,8 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
122
124
|
width: 16
|
|
123
125
|
},
|
|
124
126
|
wrapperNavbar: Platform.OS === 'ios'
|
|
125
|
-
? { paddingVertical: 0, paddingLeft:
|
|
126
|
-
: { paddingVertical: 10, paddingLeft:
|
|
127
|
+
? { paddingVertical: 0, paddingLeft: 20, paddingRight: 20 }
|
|
128
|
+
: { paddingVertical: 10, paddingLeft: 20, paddingRight: 20 }
|
|
127
129
|
});
|
|
128
130
|
|
|
129
131
|
const [, t] = useLanguage();
|
|
@@ -132,6 +134,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
132
134
|
const [configState] = useConfig();
|
|
133
135
|
const [orderState] = useOrder();
|
|
134
136
|
const { handleSubmit, errors, control, setValue } = useForm();
|
|
137
|
+
const [autoCompleteAddress, setAutoCompleteAddress] = useState(false)
|
|
135
138
|
|
|
136
139
|
const [toggleMap, setToggleMap] = useState(false);
|
|
137
140
|
const [alertState, setAlertState] = useState<{
|
|
@@ -172,6 +175,8 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
172
175
|
const isHideMap = theme?.address?.components?.map?.hidden
|
|
173
176
|
const isHideIcons = theme?.address?.components?.icons?.hidden
|
|
174
177
|
const continueAsGuest = () => navigation.navigate(!!businessSlug ? 'Business' : 'BusinessList', { isGuestUser: true });
|
|
178
|
+
const unaddressedTypes = configState?.configs?.unaddressed_order_types_allowed?.value.split('|').map((value: any) => Number(value)) || []
|
|
179
|
+
const isAllowUnaddressOrderType = unaddressedTypes.includes(orderState?.options?.type)
|
|
175
180
|
const goToBack = () => navigation?.canGoBack() && navigation.goBack();
|
|
176
181
|
|
|
177
182
|
const getAddressFormatted = (address: any) => {
|
|
@@ -371,6 +376,10 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
371
376
|
setToggleMap(!toggleMap);
|
|
372
377
|
};
|
|
373
378
|
|
|
379
|
+
const showFieldWithTheme = (name) => {
|
|
380
|
+
return !theme?.address?.components?.[name]?.hidden
|
|
381
|
+
}
|
|
382
|
+
|
|
374
383
|
useEffect(() => {
|
|
375
384
|
if (
|
|
376
385
|
orderState.loading &&
|
|
@@ -379,9 +388,11 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
379
388
|
auth &&
|
|
380
389
|
!afterSignup
|
|
381
390
|
) {
|
|
382
|
-
|
|
383
|
-
? navigation.
|
|
384
|
-
:
|
|
391
|
+
isFromCheckout
|
|
392
|
+
? navigation.goBack()
|
|
393
|
+
: !isFromProductsList
|
|
394
|
+
? navigation.navigate('BottomTab')
|
|
395
|
+
: navigation.navigate('Business');
|
|
385
396
|
}
|
|
386
397
|
}, [orderState?.options?.address]);
|
|
387
398
|
|
|
@@ -520,6 +531,12 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
520
531
|
setIsSignUpEffect(true);
|
|
521
532
|
}, [orderState.loading]);
|
|
522
533
|
|
|
534
|
+
useEffect(() => {
|
|
535
|
+
if (isAllowUnaddressOrderType) {
|
|
536
|
+
onNavigationRedirect && onNavigationRedirect(!!businessSlug ? 'Business' : 'BusinessList')
|
|
537
|
+
}
|
|
538
|
+
}, [isAllowUnaddressOrderType])
|
|
539
|
+
|
|
523
540
|
return (
|
|
524
541
|
<ScrollView
|
|
525
542
|
keyboardShouldPersistTaps='always'
|
|
@@ -535,6 +552,11 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
535
552
|
style={{ marginTop: Platform.OS === 'ios' ? 0 : 10 }}
|
|
536
553
|
titleWrapStyle={{ paddingHorizontal: 0, width: '100%' }}
|
|
537
554
|
titleStyle={{ marginRight: 0, marginLeft: 0, paddingRight: 5 }}
|
|
555
|
+
buttonProps={{
|
|
556
|
+
bgColor: theme.colors.white,
|
|
557
|
+
borderColor: theme.colors.white,
|
|
558
|
+
textStyle: { color: theme.colors.btnFont }
|
|
559
|
+
}}
|
|
538
560
|
/>
|
|
539
561
|
</View>
|
|
540
562
|
<TouchableWithoutFeedback onPress={Keyboard.dismiss}>
|
|
@@ -565,6 +587,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
565
587
|
placeholder={t('ADD_ADDRESS', 'Add a address')}
|
|
566
588
|
onPress={(data, details: any) => {
|
|
567
589
|
handleChangeAddress(data, details);
|
|
590
|
+
setAutoCompleteAddress(true);
|
|
568
591
|
}}
|
|
569
592
|
query={{
|
|
570
593
|
key: googleMapsApiKey,
|
|
@@ -579,6 +602,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
579
602
|
target: { name: 'address', value: text },
|
|
580
603
|
});
|
|
581
604
|
setValue('address', text);
|
|
605
|
+
setAutoCompleteAddress(true)
|
|
582
606
|
}
|
|
583
607
|
setIsFirstTime(false);
|
|
584
608
|
setAddressEditing(text.length == 0);
|
|
@@ -666,13 +690,15 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
666
690
|
setSaveLocation={setSaveMapLocation}
|
|
667
691
|
handleToggleMap={handleToggleMap}
|
|
668
692
|
isIntGeoCoder
|
|
693
|
+
setAutoCompleteAddress={setAutoCompleteAddress}
|
|
694
|
+
autoCompleteAddress={autoCompleteAddress}
|
|
669
695
|
/>
|
|
670
696
|
</GoogleMapContainer>
|
|
671
697
|
</View>
|
|
672
698
|
)}
|
|
673
699
|
|
|
674
700
|
<View style={{ flexDirection: 'row', flexBasis: '50%' }}>
|
|
675
|
-
{
|
|
701
|
+
{((isRequiredField && isRequiredField('internal_number')) || showFieldWithTheme('internal_number')) && (
|
|
676
702
|
<Controller
|
|
677
703
|
control={control}
|
|
678
704
|
name="internal_number"
|
|
@@ -708,7 +734,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
708
734
|
isFocusHighlight
|
|
709
735
|
style={{
|
|
710
736
|
...styles.inputsStyle,
|
|
711
|
-
marginRight: showField('internal_number') && showField('zipcode') ? 24 : 0
|
|
737
|
+
marginRight: showField?.('internal_number') && showField?.('zipcode') ? 24 : 0
|
|
712
738
|
}}
|
|
713
739
|
forwardRef={internalNumberRef}
|
|
714
740
|
returnKeyType="next"
|
|
@@ -719,7 +745,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
719
745
|
/>
|
|
720
746
|
)}
|
|
721
747
|
|
|
722
|
-
{
|
|
748
|
+
{((isRequiredField && isRequiredField('zipcode')) || showFieldWithTheme('zipcode')) && (
|
|
723
749
|
<Controller
|
|
724
750
|
control={control}
|
|
725
751
|
name="zipcode"
|
|
@@ -764,7 +790,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
764
790
|
)}
|
|
765
791
|
</View>
|
|
766
792
|
|
|
767
|
-
{
|
|
793
|
+
{((isRequiredField && isRequiredField('address_notes')) || showFieldWithTheme('address_notes')) && (
|
|
768
794
|
<Controller
|
|
769
795
|
control={control}
|
|
770
796
|
name="address_notes"
|
|
@@ -855,8 +881,9 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
855
881
|
) : (
|
|
856
882
|
<OButton
|
|
857
883
|
text={t('CANCEL', 'Cancel')}
|
|
858
|
-
bgColor={theme.colors.
|
|
859
|
-
borderColor={theme.colors.
|
|
884
|
+
bgColor={theme.colors.secundary}
|
|
885
|
+
borderColor={theme.colors.secundary}
|
|
886
|
+
textStyle={{ color: theme.colors.black }}
|
|
860
887
|
style={{ borderRadius: 7.6, borderWidth: 1, shadowOpacity: 0 }}
|
|
861
888
|
onClick={() => navigation?.canGoBack() && navigation.goBack()}
|
|
862
889
|
/>
|
|
@@ -883,6 +910,8 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
883
910
|
<OButton
|
|
884
911
|
text={t('SAVE', 'Save')}
|
|
885
912
|
textStyle={{ color: theme.colors.white }}
|
|
913
|
+
bgColor={theme.colors.primary}
|
|
914
|
+
borderColor={theme.colors.primary}
|
|
886
915
|
imgRightSrc={null}
|
|
887
916
|
style={{ marginHorizontal: 30, marginBottom: 10 }}
|
|
888
917
|
onClick={() => setSaveMapLocation(true)}
|
|
@@ -2,7 +2,7 @@ import styled from 'styled-components/native'
|
|
|
2
2
|
|
|
3
3
|
export const AddressFormContainer = styled.View`
|
|
4
4
|
flex: 1;
|
|
5
|
-
padding: 0px
|
|
5
|
+
padding: 0px 20px 20px;
|
|
6
6
|
background-color: ${(props: any) => props.theme.colors.backgroundPage};
|
|
7
7
|
justify-content: space-between;
|
|
8
8
|
`
|
|
@@ -152,6 +152,11 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
152
152
|
showCall={false}
|
|
153
153
|
paddingTop={10}
|
|
154
154
|
btnStyle={{ paddingLeft: 0 }}
|
|
155
|
+
buttonProps={{
|
|
156
|
+
bgColor: theme.colors.white,
|
|
157
|
+
borderColor: theme.colors.white,
|
|
158
|
+
textStyle: { color: theme.colors.btnFont }
|
|
159
|
+
}}
|
|
155
160
|
/>
|
|
156
161
|
)}
|
|
157
162
|
{
|
|
@@ -173,6 +178,11 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
173
178
|
style={{ marginTop: 0 }}
|
|
174
179
|
titleWrapStyle={{ paddingHorizontal: 0 }}
|
|
175
180
|
titleStyle={{ marginLeft: 0, marginRight: 0 }}
|
|
181
|
+
buttonProps={{
|
|
182
|
+
bgColor: theme.colors.white,
|
|
183
|
+
borderColor: theme.colors.white,
|
|
184
|
+
textStyle: { color: theme.colors.btnFont }
|
|
185
|
+
}}
|
|
176
186
|
/>
|
|
177
187
|
)}
|
|
178
188
|
{addressList.loading && addressList?.addresses?.length === 0 && (
|
|
@@ -217,7 +227,8 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
217
227
|
onSaveAddress: handleSaveAddress,
|
|
218
228
|
isSelectedAfterAdd: true,
|
|
219
229
|
isFromProductsList: isFromProductsList,
|
|
220
|
-
hasAddressDefault: !!orderState.options?.address?.location
|
|
230
|
+
hasAddressDefault: !!orderState.options?.address?.location,
|
|
231
|
+
isFromCheckout: route?.params?.isFromCheckout
|
|
221
232
|
}
|
|
222
233
|
) : onNavigationRedirect(
|
|
223
234
|
'AddressFormInitial',
|
|
@@ -228,7 +239,8 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
228
239
|
onSaveAddress: handleSaveAddress,
|
|
229
240
|
isSelectedAfterAdd: true,
|
|
230
241
|
isFromProductsList: isFromProductsList,
|
|
231
|
-
hasAddressDefault: !!orderState.options?.address?.location
|
|
242
|
+
hasAddressDefault: !!orderState.options?.address?.location,
|
|
243
|
+
isFromCheckout: route?.params?.isFromCheckout
|
|
232
244
|
})}
|
|
233
245
|
>
|
|
234
246
|
<OIcon src={theme.images.general.pencil} width={16} style={{ marginHorizontal: 4 }} />
|
|
@@ -305,7 +317,8 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
305
317
|
addressesList: addressList?.addresses,
|
|
306
318
|
nopadding: true,
|
|
307
319
|
isSelectedAfterAdd: true,
|
|
308
|
-
hasAddressDefault: !!orderState.options?.address?.location
|
|
320
|
+
hasAddressDefault: !!orderState.options?.address?.location,
|
|
321
|
+
isFromCheckout: route?.params?.isFromCheckout
|
|
309
322
|
}) : onNavigationRedirect(
|
|
310
323
|
'AddressFormInitial',
|
|
311
324
|
{
|
|
@@ -314,7 +327,8 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
314
327
|
addressesList: addressList?.addresses,
|
|
315
328
|
nopadding: true,
|
|
316
329
|
isSelectedAfterAdd: true,
|
|
317
|
-
hasAddressDefault: !!orderState.options?.address?.location
|
|
330
|
+
hasAddressDefault: !!orderState.options?.address?.location,
|
|
331
|
+
isFormCheckout: route?.params?.isFromCheckout
|
|
318
332
|
})}
|
|
319
333
|
/>
|
|
320
334
|
</>
|
|
@@ -3,10 +3,10 @@ import styled from 'styled-components/native'
|
|
|
3
3
|
export const Container = styled.ScrollView`
|
|
4
4
|
position: relative;
|
|
5
5
|
flex: 1;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
paddingLeft: 20px;
|
|
7
|
+
paddingRight: 20px;
|
|
8
|
+
margin-bottom: 40px;
|
|
9
|
+
padding-top: 10px;
|
|
10
10
|
`
|
|
11
11
|
|
|
12
12
|
export const AddressItem = styled.TouchableOpacity`
|
|
@@ -23,8 +23,7 @@ export const AnalyticsSegment = (props: any) => {
|
|
|
23
23
|
segmentClient.track('Product List Viewed', {
|
|
24
24
|
business_id: category?.business_id,
|
|
25
25
|
category_id: category?.id,
|
|
26
|
-
category: category?.name
|
|
27
|
-
products: category?.products
|
|
26
|
+
category: category?.name
|
|
28
27
|
})
|
|
29
28
|
}
|
|
30
29
|
|
|
@@ -62,11 +61,12 @@ export const AnalyticsSegment = (props: any) => {
|
|
|
62
61
|
})
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
const handleProductAdded = (product: any) => {
|
|
64
|
+
const handleProductAdded = (product: any, result: any) => {
|
|
66
65
|
segmentClient.track('Product Added', {
|
|
67
|
-
|
|
66
|
+
cart_id: result.uuid,
|
|
67
|
+
product_id: product.id,
|
|
68
68
|
name: product.name,
|
|
69
|
-
category: product.category_id,
|
|
69
|
+
category: product.category_id || product?.categoryId,
|
|
70
70
|
price: product.price,
|
|
71
71
|
quantity: product.quantity
|
|
72
72
|
})
|
|
@@ -101,7 +101,7 @@ export const AnalyticsSegment = (props: any) => {
|
|
|
101
101
|
|
|
102
102
|
const handleOrderPlaced = (order: any) => {
|
|
103
103
|
segmentClient.track('Order Placed', {
|
|
104
|
-
|
|
104
|
+
order_id: order.id,
|
|
105
105
|
affiliation: order.business?.name,
|
|
106
106
|
revenue: order.total,
|
|
107
107
|
tax: order.tax_total,
|
|
@@ -21,7 +21,7 @@ export const AppleLogin = (props: any) => {
|
|
|
21
21
|
const [{ configs }] = useConfig();
|
|
22
22
|
const [credentialStateForUser, updateCredentialStateForUser] = useState<any>(-1);
|
|
23
23
|
|
|
24
|
-
let user
|
|
24
|
+
let user: any = null
|
|
25
25
|
|
|
26
26
|
const buttonText = auth
|
|
27
27
|
? t('CONTINUE_WITH_APPLE', 'Logout with Apple')
|
|
@@ -53,7 +53,7 @@ export const AppleLogin = (props: any) => {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const fetchAndUpdateCredentialState = async (updateCredentialStateForUser
|
|
56
|
+
const fetchAndUpdateCredentialState = async (updateCredentialStateForUser: any) => {
|
|
57
57
|
if (user === null) {
|
|
58
58
|
updateCredentialStateForUser('N/A');
|
|
59
59
|
} else {
|
|
@@ -66,7 +66,7 @@ export const AppleLogin = (props: any) => {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
const onIOSButtonPress = async (updateCredentialStateForUser
|
|
69
|
+
const onIOSButtonPress = async (updateCredentialStateForUser: any) => {
|
|
70
70
|
try {
|
|
71
71
|
const appleAuthRequestResponse = await appleAuth.performRequest({
|
|
72
72
|
requestedOperation: appleAuth.Operation.LOGIN,
|
|
@@ -79,7 +79,7 @@ export const AppleLogin = (props: any) => {
|
|
|
79
79
|
identityToken,
|
|
80
80
|
authorizationCode
|
|
81
81
|
} = appleAuthRequestResponse;
|
|
82
|
-
|
|
82
|
+
|
|
83
83
|
user = newUser;
|
|
84
84
|
|
|
85
85
|
fetchAndUpdateCredentialState(updateCredentialStateForUser).catch(error =>
|
|
@@ -26,7 +26,6 @@ import {
|
|
|
26
26
|
SocialListWrapper
|
|
27
27
|
} from './styles';
|
|
28
28
|
import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
|
|
29
|
-
const types = ['food', 'laundry', 'alcohol', 'groceries'];
|
|
30
29
|
|
|
31
30
|
let BusinessInformation: null | React.ElementType = null
|
|
32
31
|
let BusinessReviews: null | React.ElementType = null
|
|
@@ -36,6 +35,7 @@ export const BusinessBasicInformation = (
|
|
|
36
35
|
) => {
|
|
37
36
|
const { navigation, businessState, isBusinessInfoShow, logo, header, isPreOrder } = props;
|
|
38
37
|
const { business, loading } = businessState;
|
|
38
|
+
const types = business?.types && business?.types?.filter(({ enabled }) => (enabled)).map(({ name }) => (name))
|
|
39
39
|
|
|
40
40
|
const theme = useTheme();
|
|
41
41
|
const [orderState] = useOrder();
|
|
@@ -72,7 +72,7 @@ export const BusinessBasicInformation = (
|
|
|
72
72
|
alignItems: 'flex-start'
|
|
73
73
|
},
|
|
74
74
|
businessInfo: {
|
|
75
|
-
paddingHorizontal:
|
|
75
|
+
paddingHorizontal: 20,
|
|
76
76
|
paddingTop: isChewLayout ? 0 : 56,
|
|
77
77
|
},
|
|
78
78
|
bullet: {
|
|
@@ -95,7 +95,7 @@ export const BusinessBasicInformation = (
|
|
|
95
95
|
width: '100%',
|
|
96
96
|
top: 0,
|
|
97
97
|
zIndex: 100,
|
|
98
|
-
left:
|
|
98
|
+
left: 20
|
|
99
99
|
},
|
|
100
100
|
socialIcon: {
|
|
101
101
|
borderRadius: 3,
|
|
@@ -146,14 +146,11 @@ export const BusinessBasicInformation = (
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
const getBusinessType = () => {
|
|
149
|
-
if (
|
|
149
|
+
if (!types) return t('GENERAL', 'General');
|
|
150
150
|
const _types: any = [];
|
|
151
151
|
types.forEach(
|
|
152
|
-
(type) =>
|
|
153
|
-
|
|
154
|
-
_types.push(
|
|
155
|
-
t(`BUSINESS_TYPE_${type?.replace(/\s/g, '_')?.toUpperCase()}`, type),
|
|
156
|
-
),
|
|
152
|
+
(type: any) =>
|
|
153
|
+
_types.push(type)
|
|
157
154
|
);
|
|
158
155
|
return _types.join(', ');
|
|
159
156
|
};
|
|
@@ -247,7 +244,7 @@ export const BusinessBasicInformation = (
|
|
|
247
244
|
<View style={styles.tiktokIcon}>
|
|
248
245
|
<OIcon
|
|
249
246
|
src={theme.images.general.tiktok}
|
|
250
|
-
style={{ width: 10, height: 12 }}
|
|
247
|
+
style={{ width: 10, height: 12, bottom: 1 }}
|
|
251
248
|
cover
|
|
252
249
|
/>
|
|
253
250
|
</View>
|
|
@@ -11,7 +11,7 @@ export const BusinessHeader = styled.ImageBackground`
|
|
|
11
11
|
`;
|
|
12
12
|
export const BusinessLogo = styled.View`
|
|
13
13
|
position: absolute;
|
|
14
|
-
start:
|
|
14
|
+
start: 20px;
|
|
15
15
|
top: -36px;
|
|
16
16
|
z-index: 50;
|
|
17
17
|
box-shadow: 0 0 2px ${Platform.OS == 'android' ? '#000000DD' : '#0000001A'};
|
|
@@ -35,7 +35,12 @@ import FastImage from 'react-native-fast-image'
|
|
|
35
35
|
import { LottieAnimation } from '../LottieAnimation';
|
|
36
36
|
import { CardAnimation } from '../shared/CardAnimation';
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
function BusinessControllerPropsAreEqual(prevProps: any, nextProps: any) {
|
|
39
|
+
return JSON.stringify(prevProps.business) === JSON.stringify(nextProps.business) &&
|
|
40
|
+
prevProps.isBusinessOpen === nextProps.isBusinessOpen
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const BusinessControllerUI = React.memo((props: BusinessControllerParams) => {
|
|
39
44
|
const {
|
|
40
45
|
business,
|
|
41
46
|
handleClick,
|
|
@@ -76,7 +81,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
76
81
|
const hideBusinessFavoriteBadge = theme?.business_listing_view?.components?.business?.components?.featured_badge?.hidden
|
|
77
82
|
|
|
78
83
|
const textSize = 12
|
|
79
|
-
const cardHeight = windowHeight * 0.
|
|
84
|
+
const cardHeight = windowHeight * 0.34
|
|
80
85
|
|
|
81
86
|
const styles = StyleSheet.create({
|
|
82
87
|
container: {
|
|
@@ -184,7 +189,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
184
189
|
}
|
|
185
190
|
|
|
186
191
|
return (
|
|
187
|
-
<
|
|
192
|
+
<View style={{ minHeight: 200 }}>
|
|
188
193
|
{isIntersectionObserver ? (
|
|
189
194
|
<CardAnimation
|
|
190
195
|
style={[style, styles.container]}
|
|
@@ -227,7 +232,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
227
232
|
</View>
|
|
228
233
|
)}
|
|
229
234
|
{!hideBusinessOffer && (
|
|
230
|
-
getBusinessOffer((business?.offers)) &&
|
|
235
|
+
!!getBusinessOffer((business?.offers)) &&
|
|
231
236
|
<OfferBox
|
|
232
237
|
isClosed={!isBusinessOpen && (configState?.configs?.preorder_status_enabled?.value === '1')}
|
|
233
238
|
isRibbon={business?.ribbon?.enabled && !!business?.ribbon?.text}
|
|
@@ -239,7 +244,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
239
244
|
numberOfLines={2}
|
|
240
245
|
ellipsizeMode='tail'
|
|
241
246
|
lineHeight={13}
|
|
242
|
-
>{getBusinessOffer((business?.offers))
|
|
247
|
+
>{t('DISCOUNT', 'Discount')}{' '}{getBusinessOffer((business?.offers))}</OText>
|
|
243
248
|
</OfferBox>
|
|
244
249
|
)}
|
|
245
250
|
<BusinessState isRibbon={business?.ribbon?.enabled && !!business?.ribbon?.text}>
|
|
@@ -256,7 +261,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
256
261
|
</BusinessState>
|
|
257
262
|
</BusinessHero>
|
|
258
263
|
<BusinessContent>
|
|
259
|
-
<BusinessInfo style={{ position: 'absolute',
|
|
264
|
+
<BusinessInfo style={{ position: 'absolute', top: -26, left: 15 }}>
|
|
260
265
|
{!hideBusinessLogo && (
|
|
261
266
|
<BusinessLogo style={styles.businessLogo}>
|
|
262
267
|
<FastImage
|
|
@@ -274,7 +279,10 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
274
279
|
<OText
|
|
275
280
|
size={textSize + 2}
|
|
276
281
|
style={{ lineHeight: 18, marginBottom: 6, width: '90%' }}
|
|
277
|
-
weight={'500'}
|
|
282
|
+
weight={'500'}
|
|
283
|
+
numberOfLines={1}
|
|
284
|
+
ellipsizeMode='tail'
|
|
285
|
+
>
|
|
278
286
|
{business?.name}
|
|
279
287
|
</OText>
|
|
280
288
|
{(!hideBusinessFavorite || !hideBusinessReviews) && (
|
|
@@ -301,7 +309,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
301
309
|
</ReviewAndFavorite>
|
|
302
310
|
)}
|
|
303
311
|
</View>
|
|
304
|
-
<OText size={textSize} style={{ lineHeight: 15, marginBottom: 3 }} numberOfLines={1}>
|
|
312
|
+
<OText size={textSize} style={{ lineHeight: 15, marginBottom: 3, fontFamily: undefined }} numberOfLines={1}>
|
|
305
313
|
{business?.address}
|
|
306
314
|
</OText>
|
|
307
315
|
<Metadata>
|
|
@@ -373,9 +381,9 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
373
381
|
</View>
|
|
374
382
|
</Placeholder>
|
|
375
383
|
)}
|
|
376
|
-
</
|
|
384
|
+
</View>
|
|
377
385
|
);
|
|
378
|
-
};
|
|
386
|
+
}, BusinessControllerPropsAreEqual);
|
|
379
387
|
|
|
380
388
|
export const BusinessController = (props: BusinessControllerParams) => {
|
|
381
389
|
const BusinessControllerProps = {
|
|
@@ -8,13 +8,14 @@ export const BusinessHero = styled.View`
|
|
|
8
8
|
`
|
|
9
9
|
|
|
10
10
|
export const BusinessContent = styled.View`
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
position: relative;
|
|
12
|
+
padding-horizontal: 18px;
|
|
13
|
+
padding-bottom: 10px;
|
|
14
|
+
border-bottom-left-radius: 7.6px;
|
|
15
|
+
border-bottom-right-radius: 7.6px;
|
|
16
|
+
border-width: 1px;
|
|
17
|
+
border-color: ${(props: any) => props.theme.colors.border};
|
|
18
|
+
overflow: visible;
|
|
18
19
|
`;
|
|
19
20
|
|
|
20
21
|
export const BusinessInfo = styled.View`
|
|
@@ -17,7 +17,7 @@ export const MediaWrapper = styled.ScrollView`
|
|
|
17
17
|
height: 127px;
|
|
18
18
|
`
|
|
19
19
|
export const InnerContent = styled.View`
|
|
20
|
-
padding: 20px
|
|
20
|
+
padding: 20px;
|
|
21
21
|
`
|
|
22
22
|
export const WrapScheduleBlock = styled.View`
|
|
23
23
|
margin: 20px 0;
|
|
@@ -36,4 +36,4 @@ export const DivideView = styled.View`
|
|
|
36
36
|
height: 8px;
|
|
37
37
|
background-color: ${(props: any) => props.theme.colors.backgroundGray100};
|
|
38
38
|
margin-horizontal: -40px;
|
|
39
|
-
`;
|
|
39
|
+
`;
|
|
@@ -23,7 +23,10 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
23
23
|
handleClickCheckout,
|
|
24
24
|
checkoutButtonDisabled,
|
|
25
25
|
isMultiCheckout,
|
|
26
|
-
isFromUpselling
|
|
26
|
+
isFromUpselling,
|
|
27
|
+
changeActiveState,
|
|
28
|
+
isActive,
|
|
29
|
+
isGiftCart
|
|
27
30
|
} = props
|
|
28
31
|
|
|
29
32
|
const [orderState] = useOrder();
|
|
@@ -38,14 +41,13 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
38
41
|
const isProducts = cart?.products?.length
|
|
39
42
|
const isBusinessChangeEnabled = configs?.cart_change_business_validation?.value === '1'
|
|
40
43
|
|
|
41
|
-
const [isActive, setActiveState] = useState(!!singleBusiness)
|
|
42
44
|
const [viewedCart, setViewedCart] = useState<any>(null)
|
|
43
45
|
|
|
44
46
|
useEffect(() => {
|
|
45
47
|
const cartsArray = Object.values(orderState?.carts)
|
|
46
48
|
const cartsLength = cartsArray.filter((cart: any) => cart.products.length > 0).length ?? 0
|
|
47
49
|
if (cartsLength === 1) {
|
|
48
|
-
|
|
50
|
+
changeActiveState && changeActiveState(!isClosed, cart?.uuid)
|
|
49
51
|
}
|
|
50
52
|
}, [orderState?.carts, isClosed])
|
|
51
53
|
|
|
@@ -68,14 +70,14 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
68
70
|
<BIContainer isClosed={isClosed} isMultiCheckout={isMultiCheckout} checkoutVisible={!isActive && !isClosed && !!isProducts && !checkoutButtonDisabled}>
|
|
69
71
|
<BIHeader
|
|
70
72
|
isClosed={isClosed}
|
|
71
|
-
onPress={() => !isClosed ?
|
|
73
|
+
onPress={() => !isClosed ? changeActiveState && changeActiveState(!isClosed, cart?.uuid) : isClosed}
|
|
72
74
|
activeOpacity={1}
|
|
73
75
|
>
|
|
74
76
|
<BIInfo>
|
|
75
77
|
<BIContentInfo>
|
|
76
78
|
<OText size={16} lineHeight={24} weight={'600'}>{cart?.business?.name}</OText>
|
|
77
79
|
<View style={{ flexDirection: 'row' }}>
|
|
78
|
-
{props.onNavigationRedirect && !isClosed && (
|
|
80
|
+
{props.onNavigationRedirect && !isClosed && !isGiftCart && (
|
|
79
81
|
<>
|
|
80
82
|
<TouchableOpacity onPress={() => props.onNavigationRedirect('Business', { store: cart?.business?.slug })}>
|
|
81
83
|
<OText color={theme.colors.primary} size={12} lineHeight={18} style={{ textDecorationLine: 'underline' }}>{t('GO_TO_STORE', 'Go to store')}</OText>
|
|
@@ -84,7 +86,9 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
84
86
|
)}
|
|
85
87
|
{!isCartPending && (
|
|
86
88
|
<>
|
|
87
|
-
|
|
89
|
+
{!isGiftCart && (
|
|
90
|
+
<OText color={theme.colors.textSecondary}>{' \u2022 '}</OText>
|
|
91
|
+
)}
|
|
88
92
|
<OAlert
|
|
89
93
|
title={t('DELETE_CART', 'Delete Cart')}
|
|
90
94
|
message={t('QUESTION_DELETE_CART', 'Are you sure to you wants delete the selected cart')}
|
|
@@ -94,7 +98,7 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
94
98
|
</OAlert>
|
|
95
99
|
</>
|
|
96
100
|
)}
|
|
97
|
-
{isBusinessChangeEnabled && props.handleChangeStore && (
|
|
101
|
+
{isBusinessChangeEnabled && props.handleChangeStore && !isGiftCart && (
|
|
98
102
|
<>
|
|
99
103
|
<OText color={theme.colors.textSecondary}>{' \u2022 '}</OText>
|
|
100
104
|
<TouchableOpacity
|