ordering-ui-react-native 0.16.38 → 0.16.39-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 +7 -5
- 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/BusinessBasicInformation/index.tsx +11 -19
- package/src/components/BusinessInformation/index.tsx +33 -4
- package/src/components/BusinessInformation/styles.tsx +2 -2
- package/src/components/BusinessProductsList/index.tsx +10 -10
- 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 +15 -0
- package/src/components/Messages/index.tsx +2 -2
- package/src/components/NotificationSetting/index.tsx +85 -0
- package/src/components/OrderDetails/index.tsx +2 -20
- 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 +1 -1
- package/src/components/ReviewProducts/index.tsx +11 -0
- package/src/components/SignupForm/index.tsx +15 -0
- package/src/components/SingleProductReview/index.tsx +8 -5
- package/src/components/StripeElementsForm/index.tsx +25 -16
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OBottomPopup.tsx +6 -2
- package/src/index.tsx +2 -0
- package/src/pages/BusinessesListing.tsx +7 -6
- package/src/pages/OrderDetails.tsx +1 -1
- package/src/pages/ReviewDriver.tsx +2 -2
- package/src/pages/ReviewOrder.tsx +2 -2
- package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
- package/src/utils/index.tsx +2 -1
- package/themes/business/src/components/BusinessController/index.tsx +2 -2
- package/themes/business/src/components/Chat/index.tsx +38 -30
- package/themes/business/src/components/DriverMap/index.tsx +7 -5
- package/themes/business/src/components/DriverSchedule/index.tsx +36 -19
- package/themes/business/src/components/LoginForm/index.tsx +111 -74
- package/themes/business/src/components/MapView/index.tsx +12 -1
- package/themes/business/src/components/MessagesOption/index.tsx +11 -1
- package/themes/business/src/components/NewOrderNotification/index.tsx +26 -41
- package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +25 -19
- 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 +22 -24
- package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
- package/themes/business/src/components/ReviewCustomer/index.tsx +27 -13
- package/themes/business/src/components/ScheduleBlocked/index.tsx +2 -2
- package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
- package/themes/business/src/components/UserProfileForm/index.tsx +2 -0
- package/themes/business/src/components/shared/ODropDown.tsx +42 -8
- package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
- package/themes/business/src/types/index.tsx +15 -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/BusinessesListing/index.tsx +2 -1
- package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
- 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/ProductForm/index.tsx +1 -14
- 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 +4 -0
- package/themes/original/src/components/AddressDetails/index.tsx +10 -8
- package/themes/original/src/components/AddressForm/index.tsx +157 -140
- 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 +260 -176
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +2 -2
- package/themes/original/src/components/BusinessController/index.tsx +216 -113
- package/themes/original/src/components/BusinessController/styles.tsx +1 -8
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -6
- 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 +109 -139
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
- 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 +59 -60
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +179 -104
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -11
- package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +37 -25
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -4
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +255 -108
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +47 -10
- package/themes/original/src/components/BusinessesListing/index.tsx +95 -7
- package/themes/original/src/components/Cart/index.tsx +54 -16
- 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 +110 -116
- package/themes/original/src/components/Checkout/styles.tsx +4 -3
- package/themes/original/src/components/CitiesControl/index.tsx +89 -0
- package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
- 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/FavoriteList/index.tsx +32 -2
- package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
- package/themes/original/src/components/GPSButton/index.tsx +20 -19
- package/themes/original/src/components/GPSButton/styles.ts +3 -3
- package/themes/original/src/components/GoogleMap/index.tsx +20 -12
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +25 -10
- package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +4 -0
- package/themes/original/src/components/HelpGuide/index.tsx +9 -8
- package/themes/original/src/components/HelpOrder/index.tsx +9 -8
- package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
- package/themes/original/src/components/LoginForm/Otp/index.tsx +95 -73
- package/themes/original/src/components/LoginForm/index.tsx +98 -41
- package/themes/original/src/components/LottieAnimation/index.tsx +69 -0
- package/themes/original/src/components/Messages/index.tsx +17 -17
- package/themes/original/src/components/MomentOption/index.tsx +8 -6
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -92
- package/themes/original/src/components/MultiCheckout/index.tsx +6 -0
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -16
- package/themes/original/src/components/MyOrders/index.tsx +88 -22
- package/themes/original/src/components/NavBar/index.tsx +15 -9
- package/themes/original/src/components/NetworkError/index.tsx +5 -3
- package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
- package/themes/original/src/components/Notifications/index.tsx +148 -0
- package/themes/original/src/components/Notifications/styles.tsx +17 -0
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
- package/themes/original/src/components/OrderDetails/index.tsx +200 -37
- package/themes/original/src/components/OrderDetails/styles.tsx +15 -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 +77 -66
- package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
- package/themes/original/src/components/OrderSummary/index.tsx +3 -36
- package/themes/original/src/components/OrderTypeSelector/index.tsx +85 -36
- package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +97 -106
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
- package/themes/original/src/components/OrdersOption/index.tsx +71 -55
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +41 -23
- package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
- 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/PreviousOrders/index.tsx +3 -2
- package/themes/original/src/components/ProductForm/index.tsx +639 -664
- package/themes/original/src/components/ProductForm/styles.tsx +10 -11
- package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
- package/themes/original/src/components/ProductOption/index.tsx +1 -1
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
- package/themes/original/src/components/ProductOptionSubOption/styles.tsx +0 -1
- package/themes/original/src/components/ProfessionalFilter/index.tsx +2 -1
- package/themes/original/src/components/ProfessionalProfile/index.tsx +26 -14
- package/themes/original/src/components/Promotions/index.tsx +232 -219
- package/themes/original/src/components/Promotions/styles.tsx +7 -2
- package/themes/original/src/components/ReviewDriver/index.tsx +7 -7
- package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
- package/themes/original/src/components/ReviewProducts/index.tsx +2 -2
- 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 +5 -3
- package/themes/original/src/components/ServiceForm/index.tsx +410 -258
- package/themes/original/src/components/SignupForm/index.tsx +184 -127
- package/themes/original/src/components/SingleOrderCard/index.tsx +229 -181
- package/themes/original/src/components/SingleOrderCard/styles.tsx +0 -7
- package/themes/original/src/components/SingleProductCard/index.tsx +198 -112
- package/themes/original/src/components/SingleProductCard/styles.tsx +3 -10
- package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
- package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
- package/themes/original/src/components/StripeElementsForm/index.tsx +18 -7
- package/themes/original/src/components/UpsellingProducts/index.tsx +15 -5
- package/themes/original/src/components/UserDetails/index.tsx +5 -3
- package/themes/original/src/components/UserFormDetails/index.tsx +6 -48
- package/themes/original/src/components/UserProfile/index.tsx +56 -31
- package/themes/original/src/components/UserProfile/styles.ts +17 -0
- package/themes/original/src/components/UserProfileForm/index.tsx +10 -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 -164
- package/themes/original/src/components/Wallets/styles.tsx +12 -8
- package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
- package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
- package/themes/original/src/components/shared/OBottomPopup.tsx +48 -15
- package/themes/original/src/components/shared/OButton.tsx +10 -3
- package/themes/original/src/components/shared/OIcon.tsx +8 -1
- package/themes/original/src/components/shared/OInput.tsx +13 -3
- package/themes/original/src/layouts/Container.tsx +13 -9
- package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
- package/themes/original/src/types/index.tsx +82 -29
- package/themes/original/src/utils/index.tsx +121 -10
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -26,7 +26,14 @@ const OImage = (props: Props): React.ReactElement => {
|
|
|
26
26
|
return (
|
|
27
27
|
<Wrapper style={{ borderRadius: props.style?.borderRadius, overflow: 'hidden', marginHorizontal: props.style?.marginHorizontal }}>
|
|
28
28
|
<SImage
|
|
29
|
-
source={
|
|
29
|
+
source={
|
|
30
|
+
props.src
|
|
31
|
+
? props.src
|
|
32
|
+
: props.url
|
|
33
|
+
? typeof props.url === 'number'
|
|
34
|
+
? props.url
|
|
35
|
+
: { uri: props.url }
|
|
36
|
+
: props.dummy}
|
|
30
37
|
style={{
|
|
31
38
|
tintColor: props.color,
|
|
32
39
|
flex: props.isWrap ? 1 : 0,
|
|
@@ -3,6 +3,7 @@ import { ImageSourcePropType, ImageStyle, ViewStyle, TextInputProps, TextStyle }
|
|
|
3
3
|
import styled from 'styled-components/native';
|
|
4
4
|
import OIcon from './OIcon';
|
|
5
5
|
import MaterialIcon from 'react-native-vector-icons/MaterialIcons'
|
|
6
|
+
import { useTheme } from 'styled-components/native';
|
|
6
7
|
|
|
7
8
|
const Input = styled.TextInput`
|
|
8
9
|
flex-grow: 1;
|
|
@@ -39,6 +40,7 @@ interface Props extends TextInputProps {
|
|
|
39
40
|
inputStyle?: TextStyle;
|
|
40
41
|
wrapperRef?: any;
|
|
41
42
|
onPress?: any;
|
|
43
|
+
isFocusHighlight?: boolean
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
const Wrapper = styled.Pressable`
|
|
@@ -54,12 +56,16 @@ const Wrapper = styled.Pressable`
|
|
|
54
56
|
`;
|
|
55
57
|
|
|
56
58
|
const OInput = (props: Props): React.ReactElement => {
|
|
59
|
+
const theme = useTheme();
|
|
60
|
+
const [inputFocused, setInputFocused] = React.useState(false)
|
|
57
61
|
return (
|
|
58
62
|
<Wrapper
|
|
59
|
-
onPress={() => {props.forwardRef?.current?.focus?.(); props.onPress && props.onPress()}}
|
|
63
|
+
onPress={() => { props.forwardRef?.current?.focus?.(); props.onPress && props.onPress() }}
|
|
60
64
|
style={{
|
|
61
65
|
backgroundColor: props.bgColor,
|
|
62
|
-
borderColor: props.
|
|
66
|
+
borderColor: !props.isFocusHighlight
|
|
67
|
+
? props.borderColor
|
|
68
|
+
: inputFocused ? theme.colors.primary : theme.colors.border,
|
|
63
69
|
...props.style,
|
|
64
70
|
}}>
|
|
65
71
|
{props.icon ? (
|
|
@@ -75,6 +81,7 @@ const OInput = (props: Props): React.ReactElement => {
|
|
|
75
81
|
<MaterialIcon name={props?.vertorIcon} size={20} color={props?.vectorIconColor} style={{ marginHorizontal: 10 }} />
|
|
76
82
|
)}
|
|
77
83
|
<Input
|
|
84
|
+
autoFocus={props?.autoFocus}
|
|
78
85
|
name={props.name}
|
|
79
86
|
secureTextEntry={props.isSecured}
|
|
80
87
|
onChangeText={(txt: any) => props.name ? props.onChange({ target: { name: props.name, value: txt } }) : props.onChange(txt)}
|
|
@@ -90,10 +97,12 @@ const OInput = (props: Props): React.ReactElement => {
|
|
|
90
97
|
returnKeyType={props.returnKeyType}
|
|
91
98
|
onSubmitEditing={props.onSubmitEditing}
|
|
92
99
|
blurOnSubmit={props.blurOnSubmit}
|
|
93
|
-
ref={(e
|
|
100
|
+
ref={(e: any) => {
|
|
94
101
|
props.forwardRef && (props.forwardRef.current = e)
|
|
95
102
|
}}
|
|
96
103
|
style={props?.inputStyle}
|
|
104
|
+
onFocus={() => setInputFocused(true)}
|
|
105
|
+
onBlur={() => setInputFocused(false)}
|
|
97
106
|
/>
|
|
98
107
|
{props.iconRight && (
|
|
99
108
|
<OIcon
|
|
@@ -113,6 +122,7 @@ OInput.defaultProps = {
|
|
|
113
122
|
iconColor: '#959595',
|
|
114
123
|
bgColor: 'white',
|
|
115
124
|
borderColor: 'white',
|
|
125
|
+
isFocusHighlight: false
|
|
116
126
|
};
|
|
117
127
|
|
|
118
128
|
export default OInput;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context'
|
|
3
|
+
import styled, { css, useTheme } from 'styled-components/native';
|
|
4
|
+
import { Platform, View } from 'react-native';
|
|
4
5
|
|
|
5
6
|
const ContainerStyled = styled.ScrollView`
|
|
6
7
|
flex: 1;
|
|
@@ -10,17 +11,20 @@ const ContainerStyled = styled.ScrollView`
|
|
|
10
11
|
background-color: ${(props: any) => props.theme.colors.backgroundPage};
|
|
11
12
|
`;
|
|
12
13
|
|
|
13
|
-
const SafeAreaStyled = styled.SafeAreaView`
|
|
14
|
-
flex: 1;
|
|
15
|
-
background-color: ${(props: any) => props.theme.colors.backgroundPage};
|
|
16
|
-
`;
|
|
17
|
-
|
|
18
14
|
export const Container = (props: any) => {
|
|
15
|
+
const theme = useTheme()
|
|
16
|
+
const insets = useSafeAreaInsets()
|
|
19
17
|
return (
|
|
20
|
-
<
|
|
18
|
+
<View
|
|
19
|
+
style={{
|
|
20
|
+
flex: 1,
|
|
21
|
+
paddingTop: props.pt ?? insets.top,
|
|
22
|
+
backgroundColor: theme.colors.backgroundPage
|
|
23
|
+
}}
|
|
24
|
+
>
|
|
21
25
|
<ContainerStyled {...props} ref={props?.forwardRef} keyboardShouldPersistTaps='handled' style={{...props.style}}>
|
|
22
26
|
{props.children}
|
|
23
27
|
</ContainerStyled>
|
|
24
|
-
</
|
|
28
|
+
</View>
|
|
25
29
|
)
|
|
26
30
|
}
|
|
@@ -19,7 +19,11 @@ export const Container = styled.View`
|
|
|
19
19
|
|
|
20
20
|
export const FloatingBottomContainer = (props: any) => {
|
|
21
21
|
return (
|
|
22
|
-
<Container style={{
|
|
22
|
+
<Container style={{
|
|
23
|
+
width: windowWidth,
|
|
24
|
+
borderTopWidth: props?.borderTopWidth ?? 1,
|
|
25
|
+
borderRadius: props?.borderRadius ?? 0
|
|
26
|
+
}}>
|
|
23
27
|
{props.children}
|
|
24
28
|
</Container>
|
|
25
29
|
)
|
|
@@ -47,6 +47,8 @@ export interface ProfileParams {
|
|
|
47
47
|
isVerifiedPhone?: any;
|
|
48
48
|
handleRemoveAccount?: any;
|
|
49
49
|
removeAccountState?: any;
|
|
50
|
+
handleChangePromotions?: any;
|
|
51
|
+
notificationsGroup?: any;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
export interface AddressListParams {
|
|
@@ -80,6 +82,7 @@ export interface AddressFormParams {
|
|
|
80
82
|
saveAddress?: any,
|
|
81
83
|
userCustomerSetup?: boolean,
|
|
82
84
|
isRequiredField?: (field: string) => {},
|
|
85
|
+
showField?: (field: string) => {},
|
|
83
86
|
isGuestUser?: boolean,
|
|
84
87
|
useValidationFileds?: boolean,
|
|
85
88
|
isSelectedAfterAdd?: boolean,
|
|
@@ -120,7 +123,7 @@ export interface SignupParams {
|
|
|
120
123
|
handleChangeInput?: (in1: any, in2: any) => void;
|
|
121
124
|
enableReCaptcha?: boolean;
|
|
122
125
|
generateOtpCode?: (in1?: any) => void;
|
|
123
|
-
handleReCaptcha?: () => void;
|
|
126
|
+
handleReCaptcha?: (token?: any) => void;
|
|
124
127
|
setSignUpTab?: (in1: string) => void;
|
|
125
128
|
setWillVerifyOtpState?: (in1: boolean) => void;
|
|
126
129
|
setOtpState?: (in1: string) => void;
|
|
@@ -169,6 +172,10 @@ export interface BusinessesListingParams {
|
|
|
169
172
|
priceLevelSelected?: any;
|
|
170
173
|
handleChangePriceLevel?: any;
|
|
171
174
|
businessTypeSelected?: any;
|
|
175
|
+
logosLayout?: boolean;
|
|
176
|
+
isCustomLayout?: boolean;
|
|
177
|
+
citiesState?: any;
|
|
178
|
+
actualSlug?: any;
|
|
172
179
|
}
|
|
173
180
|
export interface HighestRatedBusinessesParams {
|
|
174
181
|
businessesList: { businesses: Array<any>, loading: boolean, error: null | string };
|
|
@@ -213,6 +220,9 @@ export interface BusinessControllerParams {
|
|
|
213
220
|
handleFavoriteBusiness?: any,
|
|
214
221
|
setFavoriteIds?: any;
|
|
215
222
|
handleUpdateBusinessList?: any;
|
|
223
|
+
enableIntersection?: boolean;
|
|
224
|
+
isCustomLayout?: boolean;
|
|
225
|
+
handleCustomUpdate?: (businessId: number, changes: any) => {};
|
|
216
226
|
}
|
|
217
227
|
export interface BusinessProductsListingParams {
|
|
218
228
|
navigation?: any;
|
|
@@ -286,18 +296,24 @@ export interface BusinessProductsListParams {
|
|
|
286
296
|
onClickCategory?: any,
|
|
287
297
|
lazyLoadProductsRecommended?: boolean,
|
|
288
298
|
isFiltMode?: boolean,
|
|
289
|
-
handleUpdateProducts?: any
|
|
299
|
+
handleUpdateProducts?: any,
|
|
300
|
+
navigation?: any;
|
|
301
|
+
previouslyProducts?: any;
|
|
290
302
|
}
|
|
291
303
|
export interface SingleProductCardParams {
|
|
292
|
-
businessId: any
|
|
304
|
+
businessId: any;
|
|
293
305
|
product: any;
|
|
294
306
|
isSoldOut: boolean;
|
|
295
307
|
onProductClick: any;
|
|
296
308
|
productAddedToCartLength: number;
|
|
297
|
-
style?: ViewStyle
|
|
298
|
-
categoryState?: any
|
|
299
|
-
handleFavoriteProduct?: any
|
|
300
|
-
handleUpdateProducts?: any
|
|
309
|
+
style?: ViewStyle;
|
|
310
|
+
categoryState?: any;
|
|
311
|
+
handleFavoriteProduct?: any;
|
|
312
|
+
handleUpdateProducts?: any;
|
|
313
|
+
enableIntersection?: boolean;
|
|
314
|
+
navigation?: any;
|
|
315
|
+
isPreviously?: any;
|
|
316
|
+
isProductId?: any;
|
|
301
317
|
}
|
|
302
318
|
export interface BusinessInformationParams {
|
|
303
319
|
navigation?: any,
|
|
@@ -352,6 +368,8 @@ export interface OrdersOptionParams {
|
|
|
352
368
|
refreshOrders?: boolean,
|
|
353
369
|
setRefreshOrders?: (value: boolean) => void,
|
|
354
370
|
handleUpdateOrderList?: (orderId: number, changes: any) => {},
|
|
371
|
+
handleUpdateProducts?: (productId: number, changes: any) => {},
|
|
372
|
+
handleUpdateBusinesses?: (businessId: number, changes: any) => {},
|
|
355
373
|
isBusiness?: boolean,
|
|
356
374
|
isProducts?: boolean,
|
|
357
375
|
businessOrderIds?: any,
|
|
@@ -359,6 +377,8 @@ export interface OrdersOptionParams {
|
|
|
359
377
|
businessesSearchList?: any,
|
|
360
378
|
hideOrders?: boolean,
|
|
361
379
|
BusinessControllerSkeletons?: any,
|
|
380
|
+
businessPaginationProps?: any,
|
|
381
|
+
businesses?: any
|
|
362
382
|
}
|
|
363
383
|
export interface ActiveOrdersParams {
|
|
364
384
|
orders?: any,
|
|
@@ -380,6 +400,7 @@ export interface PreviousOrdersParams {
|
|
|
380
400
|
getOrderStatus?: any,
|
|
381
401
|
orderID?: number
|
|
382
402
|
reorderLoading?: boolean,
|
|
403
|
+
loading?: boolean,
|
|
383
404
|
loadMoreOrders?: () => {},
|
|
384
405
|
handleReorder?: (orderId: number) => {},
|
|
385
406
|
onNavigationRedirect?: (route: string, params?: any) => {}
|
|
@@ -415,25 +436,26 @@ export interface ProductItemAccordionParams {
|
|
|
415
436
|
isFromCheckout?: any
|
|
416
437
|
}
|
|
417
438
|
export interface ReviewOrderParams {
|
|
418
|
-
order?: { id: number,
|
|
419
|
-
stars?: any
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
439
|
+
order?: { id: number, business_id: number, logo: string, driver: any, products: Array<any>, review: any, user_review: any };
|
|
440
|
+
stars?: any;
|
|
441
|
+
defaultStar?: number;
|
|
442
|
+
handleChangeInput?: any;
|
|
443
|
+
handleChangeRating?: any;
|
|
444
|
+
handleSendReview?: any;
|
|
445
|
+
formState?: any;
|
|
446
|
+
navigation?: any;
|
|
447
|
+
setIsReviewed?: (isReviewed: boolean) => void;
|
|
448
|
+
handleReviewState?: any;
|
|
449
|
+
setStars?: any;
|
|
450
|
+
onNavigationRedirect?: any;
|
|
429
451
|
}
|
|
430
452
|
export interface ReviewProductParams {
|
|
431
453
|
navigation?: any,
|
|
432
454
|
onNavigationRedirect?: any,
|
|
433
|
-
order?: { orderId: number,
|
|
455
|
+
order?: { orderId: number, business_id: number, logo: string, driver: any, products: Array<any>, review: any, user_review: any },
|
|
434
456
|
formState?: any,
|
|
435
457
|
handleChangeFormState?: any,
|
|
436
|
-
handleSendProductReview?: any
|
|
458
|
+
handleSendProductReview?: any;
|
|
437
459
|
}
|
|
438
460
|
export interface SingleProductReviewParams {
|
|
439
461
|
product: any,
|
|
@@ -443,12 +465,12 @@ export interface SingleProductReviewParams {
|
|
|
443
465
|
export interface ReviewDriverParams {
|
|
444
466
|
navigation?: any,
|
|
445
467
|
onNavigationRedirect?: any,
|
|
446
|
-
order?: { orderId: number,
|
|
468
|
+
order?: { orderId: number, business_id: number, logo: string, driver: any, products: Array<any>, review: any, user_review: any },
|
|
447
469
|
formState?: any,
|
|
448
470
|
setIsDriverReviewed?: (isReviewed: boolean) => {},
|
|
449
471
|
dirverReviews?: any,
|
|
450
472
|
setDriverReviews?: any,
|
|
451
|
-
handleSendDriverReview?: any
|
|
473
|
+
handleSendDriverReview?: any;
|
|
452
474
|
}
|
|
453
475
|
export interface MessagesParams {
|
|
454
476
|
type?: string,
|
|
@@ -546,7 +568,9 @@ export interface OrderTypeSelectParams {
|
|
|
546
568
|
defaultValue?: number;
|
|
547
569
|
configTypes?: Array<any>;
|
|
548
570
|
orderTypes: Array<any>;
|
|
549
|
-
setOrderTypeValue?: (value: number) => any
|
|
571
|
+
setOrderTypeValue?: (value: number) => any,
|
|
572
|
+
isChewLayout?: boolean;
|
|
573
|
+
chewOrderTypes?: any;
|
|
550
574
|
}
|
|
551
575
|
export interface UpsellingProductsParams {
|
|
552
576
|
isCustomMode?: boolean;
|
|
@@ -632,12 +656,20 @@ export interface NoNetworkParams {
|
|
|
632
656
|
}
|
|
633
657
|
|
|
634
658
|
export interface PlaceSpotParams {
|
|
635
|
-
|
|
659
|
+
isCheckout?: any,
|
|
660
|
+
isInputMode?: any,
|
|
636
661
|
cart?: any,
|
|
662
|
+
spotNumberDefault?: any,
|
|
663
|
+
vehicleDefault?: any,
|
|
664
|
+
spotNumber?: any,
|
|
665
|
+
setSpotNumber?: any,
|
|
666
|
+
orderTypes?: any,
|
|
637
667
|
placesState?: any,
|
|
638
668
|
handleChangePlace?: any,
|
|
639
|
-
|
|
640
|
-
|
|
669
|
+
spotState?: any,
|
|
670
|
+
vehicle?: any,
|
|
671
|
+
setVehicle?: any,
|
|
672
|
+
handleChangeSpot?: any
|
|
641
673
|
}
|
|
642
674
|
|
|
643
675
|
export interface PromotionParams {
|
|
@@ -689,7 +721,9 @@ export interface SingleOrderCardParams {
|
|
|
689
721
|
onNavigationRedirect?: (route: string, params?: any) => {},
|
|
690
722
|
pastOrders: any,
|
|
691
723
|
isMessageView?: any,
|
|
692
|
-
handleClickOrder: (value: any) => {}
|
|
724
|
+
handleClickOrder: (value: any) => {},
|
|
725
|
+
handleRemoveCart: () => {},
|
|
726
|
+
cartState: any
|
|
693
727
|
}
|
|
694
728
|
|
|
695
729
|
export interface PreviousBusinessOrderedParams {
|
|
@@ -699,7 +733,9 @@ export interface PreviousBusinessOrderedParams {
|
|
|
699
733
|
businessId?: number,
|
|
700
734
|
onNavigationRedirect?: any,
|
|
701
735
|
isBusinessesSearchList?: any,
|
|
702
|
-
businessLoading?: boolean
|
|
736
|
+
businessLoading?: boolean,
|
|
737
|
+
businesses?: any
|
|
738
|
+
handleUpdateBusinesses?: (businessId: number, changes: any) => {},
|
|
703
739
|
}
|
|
704
740
|
|
|
705
741
|
export interface ServiceFormParams {
|
|
@@ -711,7 +747,11 @@ export interface ServiceFormParams {
|
|
|
711
747
|
isSoldOut: boolean,
|
|
712
748
|
maxProductQuantity: any,
|
|
713
749
|
businessSlug?: string,
|
|
714
|
-
onClose: any
|
|
750
|
+
onClose: any,
|
|
751
|
+
professionalList: any,
|
|
752
|
+
productObject?: any,
|
|
753
|
+
professionalListState?: any,
|
|
754
|
+
isCartProduct?: any
|
|
715
755
|
}
|
|
716
756
|
|
|
717
757
|
export interface ProfessionalFilterParams {
|
|
@@ -726,8 +766,21 @@ export interface ProfessionalProfileParams {
|
|
|
726
766
|
onClose: any
|
|
727
767
|
}
|
|
728
768
|
|
|
769
|
+
export interface OrderItAgainParams {
|
|
770
|
+
onProductClick: any,
|
|
771
|
+
productList: any,
|
|
772
|
+
businessId: any,
|
|
773
|
+
categoryState: any,
|
|
774
|
+
currentCart: any,
|
|
775
|
+
handleUpdateProducts: any,
|
|
776
|
+
navigation: any,
|
|
777
|
+
searchValue?: string
|
|
778
|
+
}
|
|
779
|
+
|
|
729
780
|
export interface PreviousProductsOrderedParams {
|
|
730
781
|
products?: any,
|
|
782
|
+
isProductId?: boolean
|
|
731
783
|
onProductClick?: any,
|
|
732
784
|
isBusinessesSearchList?: boolean
|
|
785
|
+
handleUpdateProducts?: any
|
|
733
786
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useLanguage } from 'ordering-components/native';
|
|
3
3
|
import FontAwesome from 'react-native-vector-icons/FontAwesome';
|
|
4
|
-
import {CODES} from 'ordering-components/native'
|
|
4
|
+
import { CODES } from 'ordering-components/native'
|
|
5
5
|
import { ORDER_TYPES } from '../config/constants';
|
|
6
6
|
|
|
7
7
|
export const flatArray = (arr: any) => [].concat(...arr)
|
|
8
|
+
const [languageState, t] = useLanguage();
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Function to return the traduction depending of a key 't'
|
|
@@ -40,6 +41,116 @@ export const getTraduction = (key: string) => {
|
|
|
40
41
|
return keyList[key] ? t(key, keyList[key]) : t(key)
|
|
41
42
|
}
|
|
42
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Change local moment variables
|
|
46
|
+
*/
|
|
47
|
+
export const setLocalMoment = (moment: any, t: any) => {
|
|
48
|
+
moment.locale('custom', {
|
|
49
|
+
months: [
|
|
50
|
+
t('MONTH1', 'January'),
|
|
51
|
+
t('MONTH2', 'February'),
|
|
52
|
+
t('MONTH3', 'March'),
|
|
53
|
+
t('MONTH4', 'April'),
|
|
54
|
+
t('MONTH5', 'May'),
|
|
55
|
+
t('MONTH6', 'June'),
|
|
56
|
+
t('MONTH7', 'July'),
|
|
57
|
+
t('MONTH8', 'August'),
|
|
58
|
+
t('MONTH9', 'September'),
|
|
59
|
+
t('MONTH10', 'October'),
|
|
60
|
+
t('MONTH11', 'November'),
|
|
61
|
+
t('MONTH12', 'December')
|
|
62
|
+
],
|
|
63
|
+
monthsShort: [
|
|
64
|
+
t('MONTHSHORT1', 'Jan'),
|
|
65
|
+
t('MONTHSHORT2', 'Feb'),
|
|
66
|
+
t('MONTHSHORT3', 'Mar'),
|
|
67
|
+
t('MONTHSHORT4', 'Apr'),
|
|
68
|
+
t('MONTHSHORT5', 'May'),
|
|
69
|
+
t('MONTHSHORT6', 'Jun'),
|
|
70
|
+
t('MONTHSHORT7', 'Jul'),
|
|
71
|
+
t('MONTHSHORT8', 'Aug'),
|
|
72
|
+
t('MONTHSHORT9', 'Sep'),
|
|
73
|
+
t('MONTHSHORT10', 'Oct'),
|
|
74
|
+
t('MONTHSHORT11', 'Nov'),
|
|
75
|
+
t('MONTHSHORT12', 'Dec')
|
|
76
|
+
],
|
|
77
|
+
weekdays: [
|
|
78
|
+
t('DAY7', 'Sunday'),
|
|
79
|
+
t('DAY1', 'Monday'),
|
|
80
|
+
t('DAY2', 'Tuesday'),
|
|
81
|
+
t('DAY3', 'Wednesday'),
|
|
82
|
+
t('DAY4', 'Thursday'),
|
|
83
|
+
t('DAY5', 'Friday'),
|
|
84
|
+
t('DAY6', 'Saturday')
|
|
85
|
+
],
|
|
86
|
+
weekdaysShort: [
|
|
87
|
+
t('DAYSHORT7', 'Sun'),
|
|
88
|
+
t('DAYSHORT1', 'Mon'),
|
|
89
|
+
t('DAYSHORT2', 'Tue'),
|
|
90
|
+
t('DAYSHORT3', 'Wed'),
|
|
91
|
+
t('DAYSHORT4', 'Thu'),
|
|
92
|
+
t('DAYSHORT5', 'Fri'),
|
|
93
|
+
t('DAYSHORT6', 'Sat')
|
|
94
|
+
],
|
|
95
|
+
weekdaysMin: [
|
|
96
|
+
t('DAYMIN7', 'Su'),
|
|
97
|
+
t('DAYMIN1', 'Mo'),
|
|
98
|
+
t('DAYMIN2', 'Tu'),
|
|
99
|
+
t('DAYMIN3', 'We'),
|
|
100
|
+
t('DAYMIN4', 'Th'),
|
|
101
|
+
t('DAYMIN5', 'Fr'),
|
|
102
|
+
t('DAYMIN6', 'Sa')
|
|
103
|
+
],
|
|
104
|
+
meridiem: function (hours: any) {
|
|
105
|
+
return hours < 12 ? t('AM', 'AM') : t('PM', 'PM');
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export const monthsEnum: any = {
|
|
111
|
+
Jan: 'MONTHSHORT1',
|
|
112
|
+
Feb: 'MONTHSHORT2',
|
|
113
|
+
Mar: 'MONTHSHORT3',
|
|
114
|
+
Apr: 'MONTHSHORT4',
|
|
115
|
+
May: 'MONTHSHORT5',
|
|
116
|
+
Jun: 'MONTHSHORT6',
|
|
117
|
+
Jul: 'MONTHSHORT7',
|
|
118
|
+
Aug: 'MONTHSHORT8',
|
|
119
|
+
Sep: 'MONTHSHORT9',
|
|
120
|
+
Oct: 'MONTHSHORT10',
|
|
121
|
+
Nov: 'MONTHSHORT11',
|
|
122
|
+
Dec: 'MONTHSHORT12',
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export const locale = {
|
|
126
|
+
name: languageState?.language?.code?.slice(0, 2),
|
|
127
|
+
config: {
|
|
128
|
+
months: [
|
|
129
|
+
t('MONTH1', 'January'),
|
|
130
|
+
t('MONTH2', 'February'),
|
|
131
|
+
t('MONTH3', 'March'),
|
|
132
|
+
t('MONTH4', 'April'),
|
|
133
|
+
t('MONTH5', 'May'),
|
|
134
|
+
t('MONTH6', 'June'),
|
|
135
|
+
t('MONTH7', 'July'),
|
|
136
|
+
t('MONTH8', 'August'),
|
|
137
|
+
t('MONTH9', 'September'),
|
|
138
|
+
t('MONTH10', 'October'),
|
|
139
|
+
t('MONTH11', 'November'),
|
|
140
|
+
t('MONTH12', 'December')
|
|
141
|
+
],
|
|
142
|
+
weekdaysShort: [
|
|
143
|
+
t('DAYSHORT7', 'Sun'),
|
|
144
|
+
t('DAYSHORT1', 'Mon'),
|
|
145
|
+
t('DAYSHORT2', 'Tue'),
|
|
146
|
+
t('DAYSHORT3', 'Wed'),
|
|
147
|
+
t('DAYSHORT4', 'Thu'),
|
|
148
|
+
t('DAYSHORT5', 'Fri'),
|
|
149
|
+
t('DAYSHORT6', 'Sat')
|
|
150
|
+
],
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
|
|
43
154
|
/**
|
|
44
155
|
* Function to convert delivery time in minutes
|
|
45
156
|
* @param {string} time business delivery time
|
|
@@ -116,7 +227,7 @@ export const getIconCard = (brand: string, size: number) => {
|
|
|
116
227
|
* Function to return a static google maps image based in location
|
|
117
228
|
* @param {object} param object with latitude and logitude
|
|
118
229
|
*/
|
|
119
|
-
|
|
230
|
+
export const getGoogleMapImage = ({ lat, lng }: any, apiKey: string) => {
|
|
120
231
|
return `https://maps.googleapis.com/maps/api/staticmap?size=500x190¢er=${lat},${lng}&zoom=17&scale=2&maptype=roadmap&&markers=icon:https://res.cloudinary.com/ditpjbrmz/image/upload/f_auto,q_auto,w_45,q_auto:best,q_auto:best/v1564675872/marker-customer_kvxric.png%7Ccolor:white%7C${lat},${lng}&key=${apiKey}`
|
|
121
232
|
}
|
|
122
233
|
/**
|
|
@@ -147,8 +258,8 @@ export const sortInputFields = ({ fields, values }: any) => {
|
|
|
147
258
|
return fieldsSorted;
|
|
148
259
|
}
|
|
149
260
|
|
|
150
|
-
export const transformCountryCode = (countryCode
|
|
151
|
-
const code = CODES.find((code
|
|
261
|
+
export const transformCountryCode = (countryCode: number) => {
|
|
262
|
+
const code = CODES.find((code: any) => code.phoneCode === countryCode)
|
|
152
263
|
return code?.countryCode
|
|
153
264
|
}
|
|
154
265
|
|
|
@@ -158,7 +269,7 @@ export const transformCountryCode = (countryCode : number) => {
|
|
|
158
269
|
* @param {*} parser function fallback when is decimal
|
|
159
270
|
* @returns string
|
|
160
271
|
*/
|
|
161
|
-
|
|
272
|
+
export const verifyDecimals = (value: number, parser: any) => {
|
|
162
273
|
if (value % 1 === 0) {
|
|
163
274
|
return value
|
|
164
275
|
} else {
|
|
@@ -174,7 +285,7 @@ export const getTypesText = (value: number) => {
|
|
|
174
285
|
/**
|
|
175
286
|
* List shape for ribbon
|
|
176
287
|
*/
|
|
177
|
-
|
|
288
|
+
export const shape = {
|
|
178
289
|
rectangle: 'rectangle',
|
|
179
290
|
rectangleRound: 'rectangle_round',
|
|
180
291
|
capsuleShape: 'capsule_shape'
|
|
@@ -185,7 +296,7 @@ export const getTypesText = (value: number) => {
|
|
|
185
296
|
* @param {number} value for transform
|
|
186
297
|
*
|
|
187
298
|
*/
|
|
188
|
-
|
|
299
|
+
export const convertToRadian = (value: number) => {
|
|
189
300
|
return value * Math.PI / 180
|
|
190
301
|
}
|
|
191
302
|
|
|
@@ -207,14 +318,14 @@ export const getDistance = (lat1: any, lon1: any, lat2: any, lon2: any) => {
|
|
|
207
318
|
return R * c
|
|
208
319
|
}
|
|
209
320
|
|
|
210
|
-
export const formatUrlVideo = (url
|
|
321
|
+
export const formatUrlVideo = (url: string) => {
|
|
211
322
|
const regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/
|
|
212
323
|
const match = url.match(regExp)
|
|
213
324
|
const id = (match && match[7].length === 11) ? match[7] : false
|
|
214
325
|
return `https://www.youtube-nocookie.com/embed/${id}`
|
|
215
326
|
}
|
|
216
327
|
|
|
217
|
-
export const formatSeconds = (seconds
|
|
328
|
+
export const formatSeconds = (seconds: number) => {
|
|
218
329
|
// Hours, minutes and seconds
|
|
219
330
|
var hrs = ~~(seconds / 3600)
|
|
220
331
|
var mins = ~~((seconds % 3600) / 60)
|
|
@@ -233,7 +344,7 @@ export const formatSeconds = (seconds : number) => {
|
|
|
233
344
|
/**
|
|
234
345
|
* List of price to filter businesses
|
|
235
346
|
*/
|
|
236
|
-
|
|
347
|
+
export const priceList = [
|
|
237
348
|
{ level: '1', content: '$' },
|
|
238
349
|
{ level: '2', content: '$$' },
|
|
239
350
|
{ level: '3', content: '$$$' },
|
|
@@ -144,7 +144,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
144
144
|
{isFarAway && (
|
|
145
145
|
<FarAwayMessage style={styles.farAwayMsg}>
|
|
146
146
|
<Ionicons name='md-warning-outline' style={styles.iconStyle} />
|
|
147
|
-
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', '
|
|
147
|
+
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
|
|
148
148
|
</FarAwayMessage>
|
|
149
149
|
)}
|
|
150
150
|
<View style={styles.wrapperOrderOptions}>
|