ordering-ui-react-native 0.16.10 → 0.16.11-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 -4
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/ActiveOrders/index.tsx +61 -63
- package/src/components/ActiveOrders/styles.tsx +8 -14
- package/src/components/AddressForm/index.tsx +18 -2
- package/src/components/BusinessBasicInformation/index.tsx +11 -19
- package/src/components/BusinessController/index.tsx +10 -8
- package/src/components/BusinessInformation/index.tsx +22 -0
- package/src/components/BusinessProductsList/index.tsx +7 -7
- package/src/components/BusinessTypeFilter/index.tsx +1 -2
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +2 -1
- package/src/components/LanguageSelector/index.tsx +21 -16
- package/src/components/LoginForm/index.tsx +118 -30
- package/src/components/LoginForm/styles.tsx +6 -0
- package/src/components/Messages/index.tsx +2 -2
- package/src/components/NotificationSetting/index.tsx +85 -0
- package/src/components/OrderDetails/index.tsx +7 -21
- package/src/components/OrdersOption/index.tsx +54 -56
- package/src/components/PaymentOptions/index.tsx +335 -365
- package/src/components/PaymentOptionsWebView/index.tsx +120 -121
- package/src/components/ReviewDriver/index.tsx +1 -1
- package/src/components/ReviewOrder/index.tsx +2 -1
- package/src/components/ReviewProducts/index.tsx +11 -0
- package/src/components/SignupForm/index.tsx +143 -61
- package/src/components/SingleProductReview/index.tsx +8 -5
- package/src/components/StripeElementsForm/index.tsx +25 -16
- package/src/components/StripeMethodForm/index.tsx +1 -2
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OBottomPopup.tsx +6 -2
- package/src/index.tsx +2 -0
- package/src/navigators/CheckoutNavigator.tsx +6 -0
- package/src/navigators/HomeNavigator.tsx +6 -0
- package/src/pages/BusinessesListing.tsx +7 -6
- package/src/pages/MultiCheckout.tsx +31 -0
- package/src/pages/MultiOrdersDetails.tsx +27 -0
- package/src/pages/OrderDetails.tsx +1 -1
- package/src/pages/ReviewDriver.tsx +2 -2
- package/src/pages/ReviewOrder.tsx +2 -2
- package/src/theme.json +0 -1
- package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
- package/src/types/index.tsx +13 -9
- package/src/utils/index.tsx +0 -1
- package/themes/business/index.tsx +4 -0
- package/themes/business/src/components/BusinessController/index.tsx +2 -2
- package/themes/business/src/components/Chat/index.tsx +42 -34
- package/themes/business/src/components/DriverMap/index.tsx +13 -10
- package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
- package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
- package/themes/business/src/components/LoginForm/index.tsx +111 -74
- package/themes/business/src/components/MapView/index.tsx +1 -1
- package/themes/business/src/components/MessagesOption/index.tsx +11 -1
- package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
- package/themes/business/src/components/OrderDetails/Delivery.tsx +3 -3
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +19 -18
- package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
- package/themes/business/src/components/OrdersOption/index.tsx +65 -21
- package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
- package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
- package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
- package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
- package/themes/business/src/components/PreviousOrders/index.tsx +21 -23
- package/themes/business/src/components/ProductItemAccordion/index.tsx +5 -4
- package/themes/business/src/components/ReviewCustomer/index.tsx +1 -1
- package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
- package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
- package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
- package/themes/business/src/components/shared/ODropDown.tsx +42 -8
- package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
- package/themes/business/src/components/shared/OModal.tsx +40 -37
- package/themes/business/src/types/index.tsx +14 -9
- package/themes/business/src/utils/index.tsx +10 -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/BusinessMenu/index.tsx +2 -1
- package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
- package/themes/kiosk/src/components/CategoriesMenu/index.tsx +1 -0
- package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
- package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
- package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
- package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
- package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -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/kiosk/src/types/index.d.ts +2 -0
- package/themes/original/index.tsx +16 -0
- package/themes/original/src/components/AddressForm/index.tsx +136 -133
- package/themes/original/src/components/AddressList/index.tsx +1 -1
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +302 -160
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
- package/themes/original/src/components/BusinessController/index.tsx +173 -108
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -9
- package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
- package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
- package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
- package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
- package/themes/original/src/components/BusinessListingSearch/index.tsx +106 -126
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +18 -13
- package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
- package/themes/original/src/components/BusinessProductsList/index.tsx +61 -72
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +290 -181
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -0
- package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +106 -38
- package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
- package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -2
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +673 -0
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
- package/themes/original/src/components/BusinessesListing/index.tsx +100 -484
- package/themes/original/src/components/Cart/index.tsx +81 -36
- package/themes/original/src/components/Cart/styles.tsx +4 -0
- package/themes/original/src/components/CartContent/index.tsx +22 -16
- package/themes/original/src/components/Checkout/index.tsx +106 -66
- package/themes/original/src/components/Checkout/styles.tsx +0 -1
- package/themes/original/src/components/DriverTips/index.tsx +4 -4
- package/themes/original/src/components/DriverTips/styles.tsx +2 -1
- package/themes/original/src/components/Favorite/index.tsx +1 -0
- package/themes/original/src/components/Favorite/styles.tsx +1 -0
- package/themes/original/src/components/FavoriteList/index.tsx +143 -94
- package/themes/original/src/components/GPSButton/index.tsx +25 -17
- package/themes/original/src/components/GoogleMap/index.tsx +20 -12
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +8 -3
- package/themes/original/src/components/HelpGuide/index.tsx +8 -3
- package/themes/original/src/components/HelpOrder/index.tsx +8 -3
- package/themes/original/src/components/LoginForm/Otp/index.tsx +3 -2
- package/themes/original/src/components/LoginForm/index.tsx +79 -42
- package/themes/original/src/components/Messages/index.tsx +17 -17
- package/themes/original/src/components/MomentSelector/index.tsx +197 -0
- package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
- package/themes/original/src/components/MultiCheckout/index.tsx +304 -0
- package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
- package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +262 -0
- package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
- package/themes/original/src/components/MyOrders/index.tsx +177 -27
- package/themes/original/src/components/MyOrders/styles.tsx +8 -1
- package/themes/original/src/components/NavBar/index.tsx +11 -5
- package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
- package/themes/original/src/components/OrderDetails/index.tsx +125 -40
- package/themes/original/src/components/OrderDetails/styles.tsx +5 -2
- package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
- package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
- package/themes/original/src/components/OrderProgress/index.tsx +8 -2
- package/themes/original/src/components/OrderSummary/index.tsx +1 -34
- package/themes/original/src/components/OrderTypeSelector/index.tsx +84 -36
- package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +144 -0
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +56 -0
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
- package/themes/original/src/components/OrdersOption/index.tsx +126 -37
- package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
- package/themes/original/src/components/PaymentOptions/index.tsx +57 -37
- package/themes/original/src/components/PhoneInputNumber/index.tsx +4 -10
- package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
- package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
- package/themes/original/src/components/ProductForm/index.tsx +712 -655
- package/themes/original/src/components/ProductForm/styles.tsx +9 -7
- package/themes/original/src/components/ProductItemAccordion/index.tsx +37 -24
- package/themes/original/src/components/ProductOption/index.tsx +1 -1
- package/themes/original/src/components/ProfessionalFilter/index.tsx +129 -0
- package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
- package/themes/original/src/components/ProfessionalProfile/index.tsx +309 -0
- package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
- package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
- package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
- package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
- package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
- package/themes/original/src/components/SearchBar/index.tsx +10 -5
- package/themes/original/src/components/ServiceForm/index.tsx +608 -0
- package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
- package/themes/original/src/components/SignupForm/index.tsx +301 -158
- package/themes/original/src/components/SingleOrderCard/index.tsx +213 -177
- package/themes/original/src/components/SingleProductCard/index.tsx +198 -110
- package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
- package/themes/original/src/components/SingleProductReview/index.tsx +30 -3
- package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
- package/themes/original/src/components/StripeElementsForm/index.tsx +25 -9
- package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
- package/themes/original/src/components/UpsellingProducts/index.tsx +14 -4
- package/themes/original/src/components/UserDetails/index.tsx +32 -18
- package/themes/original/src/components/UserFormDetails/index.tsx +107 -73
- package/themes/original/src/components/UserProfile/index.tsx +8 -1
- package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
- package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
- package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
- package/themes/original/src/components/Wallets/index.tsx +176 -162
- package/themes/original/src/components/Wallets/styles.tsx +10 -8
- package/themes/original/src/components/shared/OBottomPopup.tsx +47 -14
- package/themes/original/src/components/shared/OButton.tsx +10 -3
- package/themes/original/src/components/shared/OInput.tsx +3 -2
- package/themes/original/src/components/shared/OModal.tsx +3 -1
- package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
- package/themes/original/src/types/index.tsx +160 -47
- package/themes/original/src/utils/index.tsx +77 -0
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -270,7 +270,7 @@ const ReviewCustomerUI = (props: ReviewCustomerParams) => {
|
|
|
270
270
|
}}
|
|
271
271
|
style={{ height: 35, paddingLeft: 5, paddingRight: 5, marginHorizontal: 3, marginVertical: 10 }}
|
|
272
272
|
imgRightSrc={isSelectedComment(commentItem.key) ? theme.images.general.close : null}
|
|
273
|
-
imgRightStyle={{
|
|
273
|
+
imgRightStyle={{ right: 5, margin: 5 }}
|
|
274
274
|
onClick={() => handleChangeComment(commentItem) }
|
|
275
275
|
/>
|
|
276
276
|
))}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Dimensions, View } from 'react-native'
|
|
3
|
+
import { OButton, OIcon, OText } from '../shared'
|
|
4
|
+
import { useLanguage, useSession } from 'ordering-components/native'
|
|
5
|
+
import { useTheme } from 'styled-components/native'
|
|
6
|
+
|
|
7
|
+
export const ScheduleBlocked = (props : any) => {
|
|
8
|
+
const { nextSchedule } = props
|
|
9
|
+
const [, t] = useLanguage()
|
|
10
|
+
const [, {logout}] = useSession()
|
|
11
|
+
const theme = useTheme()
|
|
12
|
+
const deviceWidth = Dimensions.get('screen').width
|
|
13
|
+
|
|
14
|
+
const daysOfWeek = [
|
|
15
|
+
t('SUNDAY', 'Sunday'),
|
|
16
|
+
t('MONDAY', 'Monday'),
|
|
17
|
+
t('TUESDAY', 'Tuesday'),
|
|
18
|
+
t('WEDNESDAY', 'Wednesday'),
|
|
19
|
+
t('THURSDAY', 'Thurday'),
|
|
20
|
+
t('FRIDAY', 'Friday'),
|
|
21
|
+
t('SATURDAY', 'Saturday'),
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
const scheduleFormatted = ({ hour, minute }: any) => {
|
|
25
|
+
const checkTime = (val: number) => val < 10 ? `0${val}` : val
|
|
26
|
+
return `${checkTime(hour)}:${checkTime(minute)}`
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const goBack = () => {
|
|
30
|
+
logout()
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return (
|
|
34
|
+
<View style={{ alignItems: 'center', padding: 40 }}>
|
|
35
|
+
<OText size={20}>{t('YOU_CANT_LOGIN', 'You can\'t login')}</OText>
|
|
36
|
+
<OIcon
|
|
37
|
+
src={theme.images?.general?.deliveryWaiting}
|
|
38
|
+
width={(deviceWidth - 80) * 0.9}
|
|
39
|
+
height={(deviceWidth - 80) * 0.8}
|
|
40
|
+
/>
|
|
41
|
+
<OText>{t('OUTSIDE_ESTABLISHED_SCHEDULE', 'You are outside the established schedule')}</OText>
|
|
42
|
+
<View style={{ flexDirection: 'row', marginBottom: 20 }}>
|
|
43
|
+
<OText color={theme.colors.primary}>{t('NEXT_TIME', 'Next time')}: </OText>
|
|
44
|
+
<OText>{daysOfWeek[nextSchedule?.day]} {scheduleFormatted(nextSchedule?.schedule?.open)}</OText>
|
|
45
|
+
</View>
|
|
46
|
+
<OButton
|
|
47
|
+
text={t('GO_BACK', 'Go back')}
|
|
48
|
+
textStyle={{ color: theme.colors.white }}
|
|
49
|
+
onClick={goBack}
|
|
50
|
+
/>
|
|
51
|
+
</View>
|
|
52
|
+
)
|
|
53
|
+
}
|
|
@@ -36,6 +36,7 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
36
36
|
handleCancelEdit,
|
|
37
37
|
toggleIsEdit,
|
|
38
38
|
isCheckout,
|
|
39
|
+
isAlsea
|
|
39
40
|
} = props;
|
|
40
41
|
|
|
41
42
|
const theme = useTheme();
|
|
@@ -265,7 +266,9 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
265
266
|
}).map(
|
|
266
267
|
(field: any) =>
|
|
267
268
|
showField &&
|
|
268
|
-
showField(field.code) &&
|
|
269
|
+
showField(field.code) &&
|
|
270
|
+
!isAlsea
|
|
271
|
+
&& (
|
|
269
272
|
<React.Fragment key={field.id}>
|
|
270
273
|
<OText style={styles.label}>
|
|
271
274
|
{t(field?.code.toUpperCase(), field?.name)}
|
|
@@ -442,7 +445,7 @@ export const UserFormDetailsUI = (props: any) => {
|
|
|
442
445
|
</OText>
|
|
443
446
|
)}
|
|
444
447
|
|
|
445
|
-
{!!showInputPhoneNumber && (
|
|
448
|
+
{!!showInputPhoneNumber && !isAlsea && (
|
|
446
449
|
<WrapperPhone>
|
|
447
450
|
<PhoneInputNumber
|
|
448
451
|
data={phoneInputData}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import { View, StyleSheet, ScrollView, ActivityIndicator } from 'react-native';
|
|
2
|
+
import { View, StyleSheet, ScrollView, ActivityIndicator, Pressable } from 'react-native';
|
|
3
3
|
import { useForm } from 'react-hook-form';
|
|
4
4
|
import { launchImageLibrary } from 'react-native-image-picker';
|
|
5
5
|
import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
import { LogoutButton } from '../LogoutButton';
|
|
23
23
|
import { LanguageSelector } from '../LanguageSelector';
|
|
24
24
|
import { UserFormDetailsUI } from '../UserFormDetails';
|
|
25
|
+
import { DriverSchedule } from '../DriverSchedule'
|
|
25
26
|
import ToggleSwitch from 'toggle-switch-react-native';
|
|
26
27
|
import { UDWrapper } from '../UserFormDetails/styles';
|
|
27
28
|
import {
|
|
@@ -30,11 +31,12 @@ import {
|
|
|
30
31
|
OText,
|
|
31
32
|
OButton,
|
|
32
33
|
OInput,
|
|
34
|
+
OModal,
|
|
33
35
|
} from '../../components/shared';
|
|
34
36
|
import { sortInputFields, getTraduction } from '../../utils';
|
|
35
37
|
import { ProfileParams } from '../../types';
|
|
36
38
|
import { NotFoundSource } from '../NotFoundSource';
|
|
37
|
-
|
|
39
|
+
import AntDesignIcon from 'react-native-vector-icons/AntDesign'
|
|
38
40
|
const ProfileUI = (props: ProfileParams) => {
|
|
39
41
|
const {
|
|
40
42
|
navigation,
|
|
@@ -47,6 +49,7 @@ const ProfileUI = (props: ProfileParams) => {
|
|
|
47
49
|
handleToggleAvalaibleStatusDriver,
|
|
48
50
|
userState,
|
|
49
51
|
isAvailableLoading,
|
|
52
|
+
isAlsea
|
|
50
53
|
} = props;
|
|
51
54
|
|
|
52
55
|
const [{ user }] = useSession();
|
|
@@ -66,6 +69,7 @@ const ProfileUI = (props: ProfileParams) => {
|
|
|
66
69
|
const [phoneUpdate, setPhoneUpdate] = useState(false);
|
|
67
70
|
const [userPhoneNumber, setUserPhoneNumber] = useState<any>(null);
|
|
68
71
|
const [phoneToShow, setPhoneToShow] = useState('');
|
|
72
|
+
const [openModal, setOpenModal] = useState(false)
|
|
69
73
|
|
|
70
74
|
useEffect(() => {
|
|
71
75
|
if (phoneInputData.phone.cellphone) {
|
|
@@ -456,10 +460,10 @@ const ProfileUI = (props: ProfileParams) => {
|
|
|
456
460
|
hideUpdateButton
|
|
457
461
|
handleCancelEdit={handleCancelEdit}
|
|
458
462
|
toggleIsEdit={toggleIsEdit}
|
|
463
|
+
isAlsea={isAlsea}
|
|
459
464
|
/>
|
|
460
465
|
</View>
|
|
461
466
|
)}
|
|
462
|
-
|
|
463
467
|
{!validationFields.loading && !isEdit && (
|
|
464
468
|
<EditButton>
|
|
465
469
|
<OButton
|
|
@@ -474,12 +478,32 @@ const ProfileUI = (props: ProfileParams) => {
|
|
|
474
478
|
/>
|
|
475
479
|
</EditButton>
|
|
476
480
|
)}
|
|
477
|
-
|
|
481
|
+
{!!user?.schedule && (
|
|
482
|
+
<Pressable style={{ marginBottom: 10 }} onPress={() => setOpenModal(true)}>
|
|
483
|
+
<View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
|
|
484
|
+
<OText size={16}>{t('SCHEDULE', 'Schedule')}</OText>
|
|
485
|
+
<AntDesignIcon size={18} name='right' />
|
|
486
|
+
</View>
|
|
487
|
+
<View style={{
|
|
488
|
+
borderBottomColor: theme.colors.tabBar,
|
|
489
|
+
borderBottomWidth: 1,
|
|
490
|
+
marginTop: 10
|
|
491
|
+
}} />
|
|
492
|
+
</Pressable>
|
|
493
|
+
)}
|
|
478
494
|
<Actions>
|
|
479
495
|
<LanguageSelector />
|
|
480
496
|
|
|
481
497
|
<LogoutButton />
|
|
482
498
|
</Actions>
|
|
499
|
+
<OModal
|
|
500
|
+
open={openModal}
|
|
501
|
+
onClose={() => setOpenModal(false)}
|
|
502
|
+
entireModal
|
|
503
|
+
hideIcons
|
|
504
|
+
>
|
|
505
|
+
<DriverSchedule schedule={user?.schedule} />
|
|
506
|
+
</OModal>
|
|
483
507
|
</ScrollView>
|
|
484
508
|
)}
|
|
485
509
|
</>
|
|
@@ -4,6 +4,7 @@ import { ScrollView, TouchableOpacity } from 'react-native-gesture-handler'
|
|
|
4
4
|
import { ScrollView as CustomScrollView, TouchableOpacity as CustomTouchableOpacity, View } from 'react-native'
|
|
5
5
|
import FeatherIcon from 'react-native-vector-icons/Feather';
|
|
6
6
|
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
|
|
7
|
+
import AntDesign from 'react-native-vector-icons/AntDesign';
|
|
7
8
|
import { Text } from 'react-native-paper';
|
|
8
9
|
|
|
9
10
|
interface Props {
|
|
@@ -16,7 +17,11 @@ interface Props {
|
|
|
16
17
|
dropViewMaxHeight?: any,
|
|
17
18
|
isModal?: any,
|
|
18
19
|
bgcolor?: string,
|
|
19
|
-
textcolor?: string
|
|
20
|
+
textcolor?: string,
|
|
21
|
+
handleClear?: any,
|
|
22
|
+
handleOpenSelect?: any,
|
|
23
|
+
openedSelect?: string,
|
|
24
|
+
selectType?: string
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
const Wrapper = styled.View`
|
|
@@ -70,7 +75,11 @@ const ODropDown = (props: Props) => {
|
|
|
70
75
|
placeholder,
|
|
71
76
|
onSelect,
|
|
72
77
|
dropViewMaxHeight,
|
|
73
|
-
isModal
|
|
78
|
+
isModal,
|
|
79
|
+
handleClear,
|
|
80
|
+
handleOpenSelect,
|
|
81
|
+
openedSelect,
|
|
82
|
+
selectType
|
|
74
83
|
} = props
|
|
75
84
|
|
|
76
85
|
const theme = useTheme();
|
|
@@ -82,6 +91,7 @@ const ODropDown = (props: Props) => {
|
|
|
82
91
|
|
|
83
92
|
const onToggle = () => {
|
|
84
93
|
setIsOpen(!isOpen)
|
|
94
|
+
if (!isOpen) handleOpenSelect?.()
|
|
85
95
|
}
|
|
86
96
|
|
|
87
97
|
const onSelectOption = (option: any) => {
|
|
@@ -91,12 +101,25 @@ const ODropDown = (props: Props) => {
|
|
|
91
101
|
setIsOpen(false)
|
|
92
102
|
}
|
|
93
103
|
|
|
104
|
+
const handleClearSearch = () => {
|
|
105
|
+
handleClear()
|
|
106
|
+
if (isOpen) {
|
|
107
|
+
onToggle()
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
94
111
|
useEffect(() => {
|
|
95
112
|
const _defaultOption = options?.find((option: any) => option.value === defaultValue)
|
|
96
113
|
setSelectedOption(_defaultOption)
|
|
97
114
|
setValue(defaultValue)
|
|
98
115
|
}, [defaultValue, options])
|
|
99
116
|
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
if (openedSelect !== selectType && typeof openedSelect === 'string') {
|
|
119
|
+
setIsOpen(false)
|
|
120
|
+
}
|
|
121
|
+
}, [openedSelect])
|
|
122
|
+
|
|
100
123
|
return (
|
|
101
124
|
<Wrapper style={props.style}>
|
|
102
125
|
<Selected
|
|
@@ -110,11 +133,22 @@ const ODropDown = (props: Props) => {
|
|
|
110
133
|
>
|
|
111
134
|
{selectedOption?.content || selectedOption?.name || placeholder}
|
|
112
135
|
</SelectedLabel>
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
136
|
+
{selectedOption && handleClear ? (
|
|
137
|
+
<AntDesign
|
|
138
|
+
name={'close'}
|
|
139
|
+
size={20}
|
|
140
|
+
onPress={() => handleClearSearch()}
|
|
141
|
+
style={{ position: 'absolute', right: 12, top: 13 }}
|
|
142
|
+
/>
|
|
143
|
+
) : (
|
|
144
|
+
<FeatherIcon
|
|
145
|
+
name='chevron-down'
|
|
146
|
+
color={props.textcolor}
|
|
147
|
+
size={24}
|
|
148
|
+
style={{ position: 'absolute', right: 12, top: 13 }}
|
|
149
|
+
|
|
150
|
+
/>
|
|
151
|
+
)}
|
|
118
152
|
</Selected>
|
|
119
153
|
{isOpen && options && (
|
|
120
154
|
<DropView
|
|
@@ -154,7 +188,7 @@ const ODropDown = (props: Props) => {
|
|
|
154
188
|
maxHeight: dropViewMaxHeight || null,
|
|
155
189
|
paddingBottom: 15
|
|
156
190
|
}}
|
|
157
|
-
|
|
191
|
+
nestedScrollEnabled={true}
|
|
158
192
|
>
|
|
159
193
|
{options.map((option: any, index: number) => (
|
|
160
194
|
<CustomTouchableOpacity
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useEffect } from 'react'
|
|
1
|
+
import React, { useState, useEffect, useRef } from 'react'
|
|
2
2
|
import styled, { css, useTheme } from 'styled-components/native'
|
|
3
3
|
import { useLanguage } from 'ordering-components/native';
|
|
4
4
|
import { ScrollView, TouchableOpacity } from 'react-native-gesture-handler'
|
|
@@ -24,6 +24,10 @@ interface Props {
|
|
|
24
24
|
handleChangeDate?: any,
|
|
25
25
|
rangeDate?: any,
|
|
26
26
|
isCalendarAlwaysVisible?: boolean
|
|
27
|
+
handleClear?: any;
|
|
28
|
+
handleOpenSelect?: any,
|
|
29
|
+
openedSelect?: string,
|
|
30
|
+
selectType?: string
|
|
27
31
|
}
|
|
28
32
|
|
|
29
33
|
const Wrapper = styled.View`
|
|
@@ -96,7 +100,11 @@ const ODropDownCalendar = (props: Props) => {
|
|
|
96
100
|
isCalendar,
|
|
97
101
|
handleChangeDate,
|
|
98
102
|
rangeDate,
|
|
99
|
-
isCalendarAlwaysVisible
|
|
103
|
+
isCalendarAlwaysVisible,
|
|
104
|
+
handleClear,
|
|
105
|
+
handleOpenSelect,
|
|
106
|
+
openedSelect,
|
|
107
|
+
selectType
|
|
100
108
|
} = props
|
|
101
109
|
|
|
102
110
|
const theme = useTheme();
|
|
@@ -110,6 +118,7 @@ const ODropDownCalendar = (props: Props) => {
|
|
|
110
118
|
|
|
111
119
|
const onToggle = () => {
|
|
112
120
|
setIsOpen(!isOpen)
|
|
121
|
+
if (!isOpen) handleOpenSelect?.()
|
|
113
122
|
}
|
|
114
123
|
|
|
115
124
|
const onSelectOption = (option: any) => {
|
|
@@ -122,7 +131,7 @@ const ODropDownCalendar = (props: Props) => {
|
|
|
122
131
|
const onDateChange = (date: any, type: any) => {
|
|
123
132
|
if (!date) return
|
|
124
133
|
if (type === 'END_DATE') {
|
|
125
|
-
handleChangeDate(rangeDate.from, date.format('MM/DD/YY'))
|
|
134
|
+
handleChangeDate(rangeDate.from, new Date(date.format('MM/DD/YY')) === rangeDate.from ? '' : date.format('MM/DD/YY'))
|
|
126
135
|
} else {
|
|
127
136
|
handleChangeDate(date.format('MM/DD/YY'), '')
|
|
128
137
|
}
|
|
@@ -142,12 +151,31 @@ const ODropDownCalendar = (props: Props) => {
|
|
|
142
151
|
return (from || to) ? (from + (to ? end : '')) : placeholder
|
|
143
152
|
}
|
|
144
153
|
|
|
154
|
+
const handleClearCalendar = () => {
|
|
155
|
+
handleClear && handleClear()
|
|
156
|
+
if (isOpen) {
|
|
157
|
+
onToggle()
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
145
161
|
useEffect(() => {
|
|
146
162
|
const _defaultOption = options?.find((option: any) => option.value === defaultValue)
|
|
147
163
|
setSelectedOption(_defaultOption)
|
|
148
164
|
setValue(defaultValue)
|
|
149
165
|
}, [defaultValue, options])
|
|
150
166
|
|
|
167
|
+
useEffect(() => {
|
|
168
|
+
if (openedSelect !== selectType && typeof openedSelect === 'string') {
|
|
169
|
+
setIsOpen(false)
|
|
170
|
+
}
|
|
171
|
+
}, [openedSelect])
|
|
172
|
+
|
|
173
|
+
useEffect(() => {
|
|
174
|
+
if (rangeDate.to && rangeDate.from) {
|
|
175
|
+
onSelect('calendar')
|
|
176
|
+
}
|
|
177
|
+
}, [rangeDate.to, rangeDate.from])
|
|
178
|
+
|
|
151
179
|
return (
|
|
152
180
|
<Wrapper style={props.style}>
|
|
153
181
|
<Selected
|
|
@@ -165,10 +193,11 @@ const ODropDownCalendar = (props: Props) => {
|
|
|
165
193
|
: `${selectedOption?.content || selectedOption?.name || placeholder}`
|
|
166
194
|
}
|
|
167
195
|
</SelectedLabel>
|
|
168
|
-
<
|
|
169
|
-
name='calendar'
|
|
170
|
-
|
|
171
|
-
|
|
196
|
+
<AntDesign
|
|
197
|
+
name={selectedOption && handleClear ? 'close' : 'calendar'}
|
|
198
|
+
size={20}
|
|
199
|
+
onPress={() => handleClearCalendar()}
|
|
200
|
+
style={{ position: 'absolute', right: 12, top: 13 }}
|
|
172
201
|
/>
|
|
173
202
|
</Selected>
|
|
174
203
|
{isOpen && options && (
|
|
@@ -26,6 +26,7 @@ interface Props {
|
|
|
26
26
|
isNotDecoration?: boolean;
|
|
27
27
|
styleCloseButton?: any;
|
|
28
28
|
order?: any;
|
|
29
|
+
hideIcons?: boolean
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
const OModal = (props: Props): React.ReactElement => {
|
|
@@ -47,6 +48,7 @@ const OModal = (props: Props): React.ReactElement => {
|
|
|
47
48
|
style,
|
|
48
49
|
styleCloseButton,
|
|
49
50
|
order,
|
|
51
|
+
hideIcons
|
|
50
52
|
} = props;
|
|
51
53
|
|
|
52
54
|
const theme = useTheme();
|
|
@@ -70,8 +72,8 @@ const OModal = (props: Props): React.ReactElement => {
|
|
|
70
72
|
alignItems: 'center',
|
|
71
73
|
paddingHorizontal: 30,
|
|
72
74
|
paddingTop: 30,
|
|
73
|
-
paddingBottom: 25,
|
|
74
|
-
borderBottomWidth: 2,
|
|
75
|
+
paddingBottom: !hideIcons ? 25 : 15,
|
|
76
|
+
borderBottomWidth: !hideIcons ? 2 : 0,
|
|
75
77
|
borderBottomColor: '#e6e6e6',
|
|
76
78
|
},
|
|
77
79
|
titleGroups: {
|
|
@@ -218,50 +220,51 @@ const OModal = (props: Props): React.ReactElement => {
|
|
|
218
220
|
{title}
|
|
219
221
|
</OText>
|
|
220
222
|
</View>
|
|
223
|
+
{!hideIcons && (
|
|
224
|
+
<View style={styles.titleGroups}>
|
|
225
|
+
<View style={styles.shadow}>
|
|
226
|
+
{order?.business?.logo ? (
|
|
227
|
+
<OIcon
|
|
228
|
+
url={optimizeImage(
|
|
229
|
+
order?.business?.logo,
|
|
230
|
+
'h_300,c_limit',
|
|
231
|
+
)}
|
|
232
|
+
style={styles.titleIcons}
|
|
233
|
+
/>
|
|
234
|
+
) : (
|
|
235
|
+
<OIcon
|
|
236
|
+
src={theme.images.dummies.businessLogo}
|
|
237
|
+
style={styles.titleIcons}
|
|
238
|
+
/>
|
|
239
|
+
)}
|
|
240
|
+
</View>
|
|
221
241
|
|
|
222
|
-
|
|
223
|
-
<View style={styles.shadow}>
|
|
224
|
-
{order?.business?.logo ? (
|
|
242
|
+
<View style={styles.shadow}>
|
|
225
243
|
<OIcon
|
|
226
244
|
url={optimizeImage(
|
|
227
|
-
order?.
|
|
245
|
+
order?.customer?.photo ||
|
|
246
|
+
theme?.images?.dummies?.customerPhoto,
|
|
228
247
|
'h_300,c_limit',
|
|
229
248
|
)}
|
|
230
249
|
style={styles.titleIcons}
|
|
231
250
|
/>
|
|
232
|
-
|
|
233
|
-
<OIcon
|
|
234
|
-
src={theme.images.dummies.businessLogo}
|
|
235
|
-
style={styles.titleIcons}
|
|
236
|
-
/>
|
|
237
|
-
)}
|
|
238
|
-
</View>
|
|
251
|
+
</View>
|
|
239
252
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
253
|
+
{order?.driver && (
|
|
254
|
+
<View style={styles.shadow}>
|
|
255
|
+
<OIcon
|
|
256
|
+
url={
|
|
257
|
+
optimizeImage(
|
|
258
|
+
order?.driver?.photo,
|
|
259
|
+
'h_300,c_limit',
|
|
260
|
+
) || theme?.images?.dummies?.driverPhoto
|
|
261
|
+
}
|
|
262
|
+
style={styles.titleIcons}
|
|
263
|
+
/>
|
|
264
|
+
</View>
|
|
265
|
+
)}
|
|
249
266
|
</View>
|
|
250
|
-
|
|
251
|
-
{order?.driver && (
|
|
252
|
-
<View style={styles.shadow}>
|
|
253
|
-
<OIcon
|
|
254
|
-
url={
|
|
255
|
-
optimizeImage(
|
|
256
|
-
order?.driver?.photo,
|
|
257
|
-
'h_300,c_limit',
|
|
258
|
-
) || theme?.images?.dummies?.driverPhoto
|
|
259
|
-
}
|
|
260
|
-
style={styles.titleIcons}
|
|
261
|
-
/>
|
|
262
|
-
</View>
|
|
263
|
-
)}
|
|
264
|
-
</View>
|
|
267
|
+
)}
|
|
265
268
|
</View>
|
|
266
269
|
)}
|
|
267
270
|
{children}
|
|
@@ -21,8 +21,8 @@ export interface LoginParams {
|
|
|
21
21
|
allowedLevels?: any;
|
|
22
22
|
useRootPoint?: any;
|
|
23
23
|
notificationState?: any;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
handleReCaptcha?: any;
|
|
25
|
+
enableReCaptcha?: any;
|
|
26
26
|
}
|
|
27
27
|
export interface ProfileParams {
|
|
28
28
|
navigation?: any;
|
|
@@ -41,6 +41,7 @@ export interface ProfileParams {
|
|
|
41
41
|
validationFields?: any;
|
|
42
42
|
showField?: any;
|
|
43
43
|
isRequiredField?: any;
|
|
44
|
+
isAlsea?: boolean;
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
export interface AddressListParams {
|
|
@@ -255,6 +256,7 @@ export interface MessagesOptionParams {
|
|
|
255
256
|
messagesReadList?: any;
|
|
256
257
|
onNavigationRedirect?: any;
|
|
257
258
|
setSortBy?: any;
|
|
259
|
+
getOrders: any
|
|
258
260
|
}
|
|
259
261
|
export interface OrdersOptionParams {
|
|
260
262
|
orderList?: any;
|
|
@@ -265,7 +267,7 @@ export interface OrdersOptionParams {
|
|
|
265
267
|
titleContent?: string;
|
|
266
268
|
customArray?: Array<any>;
|
|
267
269
|
loadMoreOrders?: () => {};
|
|
268
|
-
loadOrders?: ({}: any) => {};
|
|
270
|
+
loadOrders?: ({ }: any) => {};
|
|
269
271
|
messages?: any;
|
|
270
272
|
setMessages?: () => {};
|
|
271
273
|
loadMessages?: () => {};
|
|
@@ -279,7 +281,7 @@ export interface OrdersOptionParams {
|
|
|
279
281
|
ordersGroup?: any;
|
|
280
282
|
setOrdersGroup?: any;
|
|
281
283
|
setCurrentFilters?: any;
|
|
282
|
-
onFiltered?: ({}: any) => {};
|
|
284
|
+
onFiltered?: ({ }: any) => {};
|
|
283
285
|
filtered?: any;
|
|
284
286
|
handleClickOrder?: any;
|
|
285
287
|
orderGroupStatusCustom?: {
|
|
@@ -290,9 +292,11 @@ export interface OrdersOptionParams {
|
|
|
290
292
|
};
|
|
291
293
|
isBusinessApp?: boolean;
|
|
292
294
|
handleClickLogisticOrder: (status: number, orderId: number) => void,
|
|
293
|
-
logisticOrders: {orders: Array<any>, loading: boolean, error: Array<string> | string},
|
|
295
|
+
logisticOrders: { orders: Array<any>, loading: boolean, error: Array<string> | string },
|
|
294
296
|
loadLogisticOrders: () => void;
|
|
295
|
-
isLogisticActivated?: boolean
|
|
297
|
+
isLogisticActivated?: boolean;
|
|
298
|
+
isAlsea?: boolean;
|
|
299
|
+
checkNotification?: boolean;
|
|
296
300
|
}
|
|
297
301
|
export interface ActiveOrdersParams {
|
|
298
302
|
orders?: any;
|
|
@@ -390,6 +394,7 @@ export interface ProductItemAccordionParams {
|
|
|
390
394
|
offsetDisabled?: any;
|
|
391
395
|
isFromCheckout?: any;
|
|
392
396
|
isClickableEvent?: any;
|
|
397
|
+
currency?: any;
|
|
393
398
|
}
|
|
394
399
|
export interface ReviewOrderParams {
|
|
395
400
|
order?: { orderId: number; businessId: number; logo: string };
|
|
@@ -405,7 +410,7 @@ export interface MessagesParams {
|
|
|
405
410
|
order?: any;
|
|
406
411
|
orderId?: number;
|
|
407
412
|
messages?: any;
|
|
408
|
-
message
|
|
413
|
+
message: string;
|
|
409
414
|
image?: string;
|
|
410
415
|
messagesToShow?: any;
|
|
411
416
|
sendMessage?: any;
|
|
@@ -561,13 +566,13 @@ export interface AcceptOrRejectOrderParams {
|
|
|
561
566
|
}
|
|
562
567
|
|
|
563
568
|
export interface MapViewParams {
|
|
564
|
-
onNavigationRedirect: (page
|
|
569
|
+
onNavigationRedirect: (page: string, params?: any) => void,
|
|
565
570
|
getBusinessLocations: () => void,
|
|
566
571
|
isLoadingBusinessMarkers?: boolean,
|
|
567
572
|
markerGroups: Array<any>,
|
|
568
573
|
customerMarkerGroups: Array<any>,
|
|
569
574
|
alertState: { open: boolean, content: Array<string>, key?: string | null },
|
|
570
|
-
setAlertState: ({open, content, key}
|
|
575
|
+
setAlertState: ({ open, content, key }: { open: boolean, content: Array<string>, key?: string | null }) => void
|
|
571
576
|
}
|
|
572
577
|
|
|
573
578
|
export interface ReviewCustomerParams {
|
|
@@ -38,6 +38,8 @@ export const getTraduction = (key: string, t: any) => {
|
|
|
38
38
|
ERROR_PRODUCT_NOT_FOUND: 'Error with the product',
|
|
39
39
|
ERROR_USER_UPDATE_YOU_HAVE_ASSIGNED_ORDERS:
|
|
40
40
|
"You can't because you have assigned orders",
|
|
41
|
+
ERROR_INVALID_OFFER: 'The offer doesn\'t exist',
|
|
42
|
+
ERROR_AUTH_DRIVER_LOGIN_VALIDATION: 'Error auth driver login validation'
|
|
41
43
|
};
|
|
42
44
|
|
|
43
45
|
return keyList[key] ? t(key, keyList[key]) : t(key);
|
|
@@ -343,3 +345,11 @@ export const getOrderStatus = (s: string, t: any) => {
|
|
|
343
345
|
|
|
344
346
|
return objectStatus && objectStatus;
|
|
345
347
|
};
|
|
348
|
+
|
|
349
|
+
export const transformDistance = (value : number, distanceUnit?: string) => {
|
|
350
|
+
return distanceUnit === 'mi'
|
|
351
|
+
? (value / 1.609).toFixed(2)
|
|
352
|
+
: distanceUnit === 'ft'
|
|
353
|
+
? (value * 3280.84).toFixed(0)
|
|
354
|
+
: (value).toFixed(2)
|
|
355
|
+
}
|
|
@@ -197,7 +197,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
197
197
|
{isFarAway && (
|
|
198
198
|
<FarAwayMessage style={styles.farAwayMsg}>
|
|
199
199
|
<Ionicons name='md-warning-outline' style={styles.iconStyle} />
|
|
200
|
-
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', '
|
|
200
|
+
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
|
|
201
201
|
</FarAwayMessage>
|
|
202
202
|
)}
|
|
203
203
|
{!auth && (
|
|
@@ -410,8 +410,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
410
410
|
textInputProps={{
|
|
411
411
|
returnKeyType: 'next',
|
|
412
412
|
onSubmitEditing: () => inputRef?.current?.focus?.(),
|
|
413
|
-
style: { borderWidth: 0, fontSize: 12 }
|
|
414
|
-
maxLength: 10
|
|
413
|
+
style: { borderWidth: 0, fontSize: 12 }
|
|
415
414
|
}}
|
|
416
415
|
textWrapStyle={{ borderColor: theme.colors.clear, borderWidth: 0, height: 40, paddingStart: 0 }}
|
|
417
416
|
/>
|
|
@@ -155,7 +155,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
155
155
|
{isFarAway && (
|
|
156
156
|
<FarAwayMessage style={styles.farAwayMsg}>
|
|
157
157
|
<Ionicons name='md-warning-outline' style={styles.iconStyle} />
|
|
158
|
-
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', '
|
|
158
|
+
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
|
|
159
159
|
</FarAwayMessage>
|
|
160
160
|
)}
|
|
161
161
|
<View style={styles.wrapperOrderOptions}>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
-
import { PanResponder, TouchableOpacity, View } from 'react-native';
|
|
2
|
+
import { PanResponder, Platform, TouchableOpacity, View } from 'react-native';
|
|
3
3
|
import {
|
|
4
4
|
useLanguage,
|
|
5
5
|
useOrder,
|
|
@@ -120,6 +120,7 @@ const BusinessMenu = (props:any): React.ReactElement => {
|
|
|
120
120
|
}}
|
|
121
121
|
>
|
|
122
122
|
<Container nopadding nestedScrollEnabled>
|
|
123
|
+
{Platform.OS === 'android' && (<View style={{ paddingTop: 20 }} />)}
|
|
123
124
|
<NavBar
|
|
124
125
|
title={t('MENU_V21', 'Menu')}
|
|
125
126
|
onActionLeft={goToBack}
|
|
@@ -56,9 +56,10 @@ const CartItem = (props: CartItemProps) => {
|
|
|
56
56
|
return product
|
|
57
57
|
}
|
|
58
58
|
const isProductIngredients = productInfo()?.ingredients.length > 0 || productInfo()?.options.length > 0 || product?.comment
|
|
59
|
-
const getFormattedSubOptionName = ({ quantity, name, position, price }: { quantity: number, name: string, position: string, price:
|
|
59
|
+
const getFormattedSubOptionName = ({ quantity, name, position, price }: { quantity: number, name: string, position: string, price: any }) => {
|
|
60
60
|
const pos = position ? `(${position})` : ''
|
|
61
|
-
|
|
61
|
+
const str = `${quantity} x ${name} ${pos}`
|
|
62
|
+
return price ? `${str} ${price}` : str
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
return (
|
|
@@ -184,7 +185,7 @@ const CartItem = (props: CartItemProps) => {
|
|
|
184
185
|
quantity: suboption.quantity,
|
|
185
186
|
name: suboption.name,
|
|
186
187
|
position: (suboption.position !== 'whole') ? t(suboption.position.toUpperCase(), suboption.position) : '',
|
|
187
|
-
price: parsePrice(suboption.price)
|
|
188
|
+
price: suboption.price > 0 && `+${parsePrice(suboption.price)}`
|
|
188
189
|
})}
|
|
189
190
|
</OText>
|
|
190
191
|
</ProductSubOption>
|