ordering-ui-react-native 0.15.66 → 0.15.67-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 -3
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/AddressForm/index.tsx +18 -2
- package/src/components/BusinessBasicInformation/index.tsx +11 -19
- package/src/components/BusinessController/index.tsx +16 -8
- package/src/components/BusinessInformation/index.tsx +14 -0
- package/src/components/BusinessTypeFilter/index.tsx +1 -2
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +23 -2
- package/src/components/DriverTips/index.tsx +11 -6
- package/src/components/LanguageSelector/index.tsx +6 -2
- package/src/components/LoginForm/index.tsx +120 -30
- package/src/components/LoginForm/styles.tsx +6 -0
- package/src/components/OrderDetails/index.tsx +7 -21
- package/src/components/PaymentOptions/index.tsx +67 -50
- 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 +145 -61
- package/src/components/SingleProductCard/index.tsx +16 -4
- package/src/components/SingleProductReview/index.tsx +1 -1
- package/src/components/StripeMethodForm/index.tsx +22 -24
- package/src/components/UpsellingProducts/index.tsx +1 -1
- package/src/components/UserProfileForm/index.tsx +63 -6
- package/src/components/UserProfileForm/styles.tsx +8 -0
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OModal.tsx +1 -1
- package/src/hooks/useCountdownTimer.tsx +26 -0
- package/src/navigators/CheckoutNavigator.tsx +6 -0
- package/src/navigators/HomeNavigator.tsx +12 -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/pages/Sessions.tsx +22 -0
- package/src/theme.json +0 -1
- package/src/types/index.tsx +18 -11
- package/src/utils/index.tsx +68 -1
- package/themes/business/index.tsx +4 -0
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +103 -15
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -0
- package/themes/business/src/components/Chat/index.tsx +42 -90
- package/themes/business/src/components/DriverMap/index.tsx +6 -5
- 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 +89 -2
- package/themes/business/src/components/LoginForm/styles.tsx +6 -0
- package/themes/business/src/components/LogoutButton/index.tsx +1 -1
- package/themes/business/src/components/NewOrderNotification/index.tsx +26 -13
- package/themes/business/src/components/OrderDetails/Business.tsx +2 -2
- package/themes/business/src/components/OrderDetails/Delivery.tsx +28 -11
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +14 -7
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +6 -0
- package/themes/business/src/components/OrdersListManager/index.tsx +1 -1
- package/themes/business/src/components/OrdersOption/index.tsx +8 -4
- package/themes/business/src/components/PreviousOrders/index.tsx +7 -7
- package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
- 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/OModal.tsx +41 -38
- package/themes/business/src/types/index.tsx +8 -2
- package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
- package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/kiosk/src/components/BusinessMenu/index.tsx +39 -28
- package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -3
- package/themes/kiosk/src/components/Cart/index.tsx +11 -12
- package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
- package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
- package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
- package/themes/kiosk/src/components/CategoriesMenu/index.tsx +107 -62
- package/themes/kiosk/src/components/Checkout/index.tsx +40 -22
- package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
- 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/NavBar/index.tsx +29 -20
- package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderDetails/index.tsx +32 -27
- package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +9 -11
- package/themes/kiosk/src/components/PaymentOptions/index.tsx +56 -54
- package/themes/kiosk/src/components/ProductForm/index.tsx +7 -8
- package/themes/kiosk/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/kiosk/src/components/ProductOption/index.tsx +1 -1
- package/themes/kiosk/src/components/ProductOptionSubOption/index.tsx +3 -1
- package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/kiosk/src/types/index.d.ts +1 -0
- package/themes/original/index.tsx +30 -8
- package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
- package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
- package/themes/original/src/components/AddressForm/index.tsx +7 -6
- package/themes/original/src/components/AddressList/index.tsx +30 -18
- package/themes/original/src/components/AppleLogin/index.tsx +6 -8
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +304 -158
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
- package/themes/original/src/components/BusinessController/index.tsx +195 -96
- package/themes/original/src/components/BusinessController/styles.tsx +5 -0
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +8 -5
- package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
- package/themes/original/src/components/BusinessListingSearch/index.tsx +231 -63
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +22 -2
- package/themes/original/src/components/BusinessPreorder/index.tsx +1 -1
- package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
- package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
- package/themes/original/src/components/BusinessProductsList/index.tsx +53 -52
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +318 -155
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +32 -0
- package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +106 -39
- package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +560 -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 +679 -0
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
- package/themes/original/src/components/BusinessesListing/index.tsx +99 -458
- package/themes/original/src/components/Cart/index.tsx +61 -42
- package/themes/original/src/components/Checkout/index.tsx +90 -39
- package/themes/original/src/components/DriverTips/index.tsx +17 -12
- package/themes/original/src/components/Favorite/index.tsx +92 -0
- package/themes/original/src/components/Favorite/styles.tsx +22 -0
- package/themes/original/src/components/FavoriteList/index.tsx +298 -0
- package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +84 -4
- package/themes/original/src/components/GPSButton/index.tsx +15 -8
- package/themes/original/src/components/GoogleMap/index.tsx +11 -11
- package/themes/original/src/components/Help/index.tsx +21 -4
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
- package/themes/original/src/components/LastOrders/index.tsx +12 -1
- package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -0
- package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
- package/themes/original/src/components/LoginForm/index.tsx +332 -164
- package/themes/original/src/components/LoginForm/styles.tsx +1 -3
- package/themes/original/src/components/MessageListing/index.tsx +10 -1
- package/themes/original/src/components/Messages/index.tsx +1 -1
- 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 +298 -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 +258 -0
- package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
- package/themes/original/src/components/MyOrders/index.tsx +120 -32
- package/themes/original/src/components/MyOrders/styles.tsx +8 -1
- package/themes/original/src/components/NavBar/index.tsx +4 -4
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
- package/themes/original/src/components/OrderDetails/index.tsx +148 -63
- package/themes/original/src/components/OrderDetails/styles.tsx +1 -2
- package/themes/original/src/components/OrderSummary/index.tsx +6 -6
- package/themes/original/src/components/OrderTypeSelector/index.tsx +79 -35
- package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +153 -0
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +53 -0
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
- package/themes/original/src/components/OrdersOption/index.tsx +137 -38
- package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
- package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +17 -23
- package/themes/original/src/components/PaymentOptionWallet/styles.tsx +1 -1
- package/themes/original/src/components/PaymentOptions/index.tsx +58 -37
- package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
- package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
- package/themes/original/src/components/ProductForm/index.tsx +718 -679
- package/themes/original/src/components/ProductForm/styles.tsx +6 -2
- package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/original/src/components/ProductOption/index.tsx +1 -1
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -12
- package/themes/original/src/components/ProfessionalFilter/index.tsx +128 -0
- package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
- package/themes/original/src/components/ProfessionalProfile/index.tsx +298 -0
- package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
- package/themes/original/src/components/Promotions/index.tsx +151 -133
- package/themes/original/src/components/Promotions/styles.tsx +3 -23
- package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
- package/themes/original/src/components/ReviewOrder/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 +13 -5
- package/themes/original/src/components/ServiceForm/index.tsx +579 -0
- package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
- package/themes/original/src/components/Sessions/index.tsx +160 -0
- package/themes/original/src/components/Sessions/styles.tsx +15 -0
- package/themes/original/src/components/SignupForm/index.tsx +237 -126
- package/themes/original/src/components/SingleOrderCard/index.tsx +275 -0
- package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
- package/themes/original/src/components/SingleProductCard/index.tsx +215 -90
- package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
- package/themes/original/src/components/StripeElementsForm/index.tsx +16 -8
- package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
- package/themes/original/src/components/UpsellingProducts/index.tsx +86 -74
- package/themes/original/src/components/UserDetails/index.tsx +15 -81
- package/themes/original/src/components/UserFormDetails/index.tsx +98 -66
- package/themes/original/src/components/UserProfile/index.tsx +11 -2
- package/themes/original/src/components/UserProfileForm/index.tsx +33 -22
- package/themes/original/src/components/UserVerification/index.tsx +178 -192
- package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
- package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
- package/themes/original/src/components/Wallets/index.tsx +25 -12
- package/themes/original/src/components/shared/OBottomPopup.tsx +44 -13
- package/themes/original/src/components/shared/OButton.tsx +2 -0
- package/themes/original/src/components/shared/OInput.tsx +3 -2
- package/themes/original/src/components/shared/OModal.tsx +4 -2
- package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
- package/themes/original/src/types/index.tsx +187 -35
- package/themes/original/src/utils/index.tsx +96 -2
- package/themes/single-business/src/components/OrderTypeSelector/index.tsx +1 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Platform, KeyboardAvoidingView, StyleSheet } from 'react-native'
|
|
3
|
+
import { MultiCheckout as MultiCheckoutController } from '../../themes/original/src/components/MultiCheckout'
|
|
4
|
+
|
|
5
|
+
const MultiCheckout = (props: any) => {
|
|
6
|
+
const multiCheckoutProps = {
|
|
7
|
+
...props,
|
|
8
|
+
onPlaceOrderClick: (orderUuids: any) => {
|
|
9
|
+
props.navigation.navigate('MultiOrdersDetails', { orderUuids: orderUuids, isFromMultiCheckout: true })
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<KeyboardAvoidingView
|
|
15
|
+
enabled
|
|
16
|
+
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
|
|
17
|
+
style={styles.container}
|
|
18
|
+
>
|
|
19
|
+
<MultiCheckoutController {...multiCheckoutProps} />
|
|
20
|
+
</KeyboardAvoidingView>
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const styles = StyleSheet.create({
|
|
25
|
+
container: {
|
|
26
|
+
flexGrow: 1,
|
|
27
|
+
paddingBottom: 70,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export default MultiCheckout
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Platform } from 'react-native'
|
|
3
|
+
import { MultiOrdersDetails as MultiOrdersDetailsController } from '../../themes/original/src/components/MultiOrdersDetails'
|
|
4
|
+
import styled from 'styled-components/native';
|
|
5
|
+
|
|
6
|
+
const SafeAreaContainer = styled.SafeAreaView`
|
|
7
|
+
flex: 1;
|
|
8
|
+
background-color: ${(props: any) => props.theme.colors.backgroundPage};
|
|
9
|
+
padding-top: ${Platform.OS === 'ios' ? '0px' : '24px'};
|
|
10
|
+
`;
|
|
11
|
+
|
|
12
|
+
const MultiOrdersDetails = ({ navigation, route }: any) => {
|
|
13
|
+
const multiOrdersDetailsProps = {
|
|
14
|
+
navigation,
|
|
15
|
+
orderUuids: route.params?.orderUuids || [],
|
|
16
|
+
isFromMultiCheckout: route.params?.isFromMultiCheckout,
|
|
17
|
+
onRedirectPage: () => navigation.navigate('BusinessList')
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<SafeAreaContainer>
|
|
22
|
+
<MultiOrdersDetailsController {...multiOrdersDetailsProps} />
|
|
23
|
+
</SafeAreaContainer>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default MultiOrdersDetails
|
|
@@ -2,7 +2,7 @@ import React from 'react'
|
|
|
2
2
|
import { OrderDetails as OrderDetailsController } from '../components/OrderDetails'
|
|
3
3
|
import { SafeAreaContainer } from '../layouts/SafeAreaContainer'
|
|
4
4
|
|
|
5
|
-
const OrderDetails = ({ navigation, route }
|
|
5
|
+
const OrderDetails = ({ navigation, route }: any) => {
|
|
6
6
|
const orderDetailsProps = {
|
|
7
7
|
navigation,
|
|
8
8
|
orderId: route.params?.orderId,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { Platform } from 'react-native';
|
|
3
3
|
import styled from 'styled-components/native';
|
|
4
|
-
import {ReviewDriver as ReviewDriverController} from '../components/ReviewDriver'
|
|
4
|
+
import { ReviewDriver as ReviewDriverController } from '../components/ReviewDriver'
|
|
5
5
|
import { SafeAreaContainer } from '../layouts/SafeAreaContainer';
|
|
6
6
|
|
|
7
7
|
const KeyboardView = styled.KeyboardAvoidingView`
|
|
8
8
|
flex: 1;
|
|
9
9
|
`;
|
|
10
10
|
|
|
11
|
-
const ReviewDriver = ({navigation, route}
|
|
11
|
+
const ReviewDriver = ({ navigation, route }: any) => {
|
|
12
12
|
const reviewDriverProps = {
|
|
13
13
|
navigation,
|
|
14
14
|
order: route?.params?.order,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { Platform } from 'react-native';
|
|
3
3
|
import styled from 'styled-components/native';
|
|
4
|
-
import {ReviewOrder as ReviewOrderController} from '../components/ReviewOrder'
|
|
4
|
+
import { ReviewOrder as ReviewOrderController } from '../components/ReviewOrder'
|
|
5
5
|
import { SafeAreaContainer } from '../layouts/SafeAreaContainer';
|
|
6
6
|
|
|
7
7
|
const KeyboardView = styled.KeyboardAvoidingView`
|
|
8
8
|
flex: 1;
|
|
9
9
|
`;
|
|
10
10
|
|
|
11
|
-
const ReviewOrder = ({navigation, route}
|
|
11
|
+
const ReviewOrder = ({ navigation, route }: any) => {
|
|
12
12
|
const reviewOrderProps = {
|
|
13
13
|
navigation,
|
|
14
14
|
order: route?.params?.order,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Container } from '../../themes/original/src/layouts/Container'
|
|
3
|
+
import { Sessions as SessionsController } from '../../themes/original/src/components/Sessions'
|
|
4
|
+
|
|
5
|
+
interface Props {
|
|
6
|
+
navigation: any;
|
|
7
|
+
route: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const Sessions = (props: Props) => {
|
|
11
|
+
const sessionsProps = {
|
|
12
|
+
...props
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<Container>
|
|
17
|
+
<SessionsController {...sessionsProps} />
|
|
18
|
+
</Container>
|
|
19
|
+
)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default Sessions
|
package/src/theme.json
CHANGED
package/src/types/index.tsx
CHANGED
|
@@ -17,6 +17,8 @@ export interface LoginParams {
|
|
|
17
17
|
handleSendVerifyCode?: any;
|
|
18
18
|
handleCheckPhoneCode?: any;
|
|
19
19
|
notificationState?: any;
|
|
20
|
+
handleReCaptcha?: (token: string) => void;
|
|
21
|
+
enableReCaptcha?: any;
|
|
20
22
|
}
|
|
21
23
|
export interface ProfileParams {
|
|
22
24
|
navigation?: any;
|
|
@@ -31,6 +33,8 @@ export interface ProfileParams {
|
|
|
31
33
|
validationFields?: any;
|
|
32
34
|
showField?: any;
|
|
33
35
|
isRequiredField?: any;
|
|
36
|
+
handleRemoveAccount?: any,
|
|
37
|
+
removeAccountState?: any
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
export interface AddressListParams {
|
|
@@ -97,6 +101,8 @@ export interface SignupParams {
|
|
|
97
101
|
handleSendVerifyCode?: any;
|
|
98
102
|
handleCheckPhoneCode?: any;
|
|
99
103
|
notificationState?: any;
|
|
104
|
+
enableReCaptcha?: boolean;
|
|
105
|
+
handleReCaptcha?: (token: string) => void;
|
|
100
106
|
}
|
|
101
107
|
|
|
102
108
|
export interface PhoneInputParams {
|
|
@@ -143,8 +149,9 @@ export interface BusinessControllerParams {
|
|
|
143
149
|
orderType?: any;
|
|
144
150
|
handleClick?: any;
|
|
145
151
|
isBusinessOpen?: boolean;
|
|
146
|
-
businessWillCloseSoonMinutes?: number
|
|
147
|
-
isBusinessClose?: number
|
|
152
|
+
businessWillCloseSoonMinutes?: number;
|
|
153
|
+
isBusinessClose?: number;
|
|
154
|
+
getBusinessOffer: any;
|
|
148
155
|
}
|
|
149
156
|
export interface BusinessProductsListingParams {
|
|
150
157
|
navigation?: any;
|
|
@@ -245,8 +252,8 @@ export interface OrdersOptionParams {
|
|
|
245
252
|
navigation?: any,
|
|
246
253
|
loadOrders?: any,
|
|
247
254
|
setOrderList?: any,
|
|
248
|
-
setOrdersLength?: ({activeOrdersLength, previousOrdersLength}
|
|
249
|
-
ordersLength: {activeOrdersLength: number, previousOrdersLength: number}
|
|
255
|
+
setOrdersLength?: ({ activeOrdersLength, previousOrdersLength }: { activeOrdersLength: number, previousOrdersLength: number }) => void,
|
|
256
|
+
ordersLength: { activeOrdersLength: number, previousOrdersLength: number }
|
|
250
257
|
}
|
|
251
258
|
export interface ActiveOrdersParams {
|
|
252
259
|
orders?: any,
|
|
@@ -344,7 +351,7 @@ export interface MessagesParams {
|
|
|
344
351
|
messages?: any,
|
|
345
352
|
message?: string,
|
|
346
353
|
image?: string,
|
|
347
|
-
messagesToShow?: any
|
|
354
|
+
messagesToShow?: any,
|
|
348
355
|
sendMessage?: any,
|
|
349
356
|
handleSend?: () => {},
|
|
350
357
|
setImage?: (image: string | null) => {},
|
|
@@ -413,7 +420,7 @@ export interface UpsellingProductsParams {
|
|
|
413
420
|
setOpenUpselling?: any;
|
|
414
421
|
onRedirect?: any;
|
|
415
422
|
businessId?: number;
|
|
416
|
-
cartProducts?: Array<any>;
|
|
423
|
+
cartProducts?: Array<any>;
|
|
417
424
|
handleUpsellingPage: () => void;
|
|
418
425
|
openUpselling: boolean;
|
|
419
426
|
canOpenUpselling?: boolean;
|
|
@@ -421,16 +428,16 @@ export interface UpsellingProductsParams {
|
|
|
421
428
|
}
|
|
422
429
|
|
|
423
430
|
export interface GoogleMapsParams {
|
|
424
|
-
location: {lat: number, lng: number}
|
|
425
|
-
handleChangeAddressMap?: (address
|
|
426
|
-
setErrors?: (error
|
|
431
|
+
location: { lat: number, lng: number }
|
|
432
|
+
handleChangeAddressMap?: (address: any, details: any) => void
|
|
433
|
+
setErrors?: (error: string) => void
|
|
427
434
|
maxLimitLocation?: number
|
|
428
435
|
readOnly?: boolean
|
|
429
436
|
markerTitle?: string,
|
|
430
437
|
saveLocation?: boolean,
|
|
431
438
|
isSetInputs?: boolean,
|
|
432
439
|
locations?: Array<any>,
|
|
433
|
-
setSaveLocation?: (val
|
|
440
|
+
setSaveLocation?: (val: boolean) => void,
|
|
434
441
|
handleToggleMap?: () => void
|
|
435
442
|
}
|
|
436
443
|
|
|
@@ -478,7 +485,7 @@ export interface HelpAccountAndPaymentParams {
|
|
|
478
485
|
|
|
479
486
|
export interface StripeMethodFormParams {
|
|
480
487
|
cart: any;
|
|
481
|
-
handleSource: ({id, card}
|
|
488
|
+
handleSource: ({ id, card }: { id: string, card: any }) => void;
|
|
482
489
|
onCancel: () => void;
|
|
483
490
|
setErrors: (error: string) => void;
|
|
484
491
|
paymethod: string;
|
package/src/utils/index.tsx
CHANGED
|
@@ -200,7 +200,7 @@ export const transformCountryCode = (countryCode : number) => {
|
|
|
200
200
|
*/
|
|
201
201
|
export const reviewCommentList = (type: string) => {
|
|
202
202
|
const [, t] = useLanguage()
|
|
203
|
-
|
|
203
|
+
// TODO: improve this function
|
|
204
204
|
const reviews: any = {
|
|
205
205
|
order: {
|
|
206
206
|
1: {
|
|
@@ -386,3 +386,70 @@ export const transformCountryCode = (countryCode : number) => {
|
|
|
386
386
|
|
|
387
387
|
return reviews[type]
|
|
388
388
|
}
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* function to manage order comment list
|
|
392
|
+
* @param {string} param0 type of orders to return
|
|
393
|
+
* @returns object with orders dictionary
|
|
394
|
+
*/
|
|
395
|
+
export const orderCommentList = (value: string) => {
|
|
396
|
+
const [, t] = useLanguage()
|
|
397
|
+
const dictionary: any = {
|
|
398
|
+
reject: 6,
|
|
399
|
+
forcePickUp: 9,
|
|
400
|
+
pickupFailed: 10,
|
|
401
|
+
forceDelivery: 11,
|
|
402
|
+
deliveryFailed: 12,
|
|
403
|
+
notReady: 14
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
const status = dictionary[value]
|
|
407
|
+
|
|
408
|
+
const messages: any = {
|
|
409
|
+
6: [// on reject order
|
|
410
|
+
'very_far_away',
|
|
411
|
+
'driver_vehicle_incident',
|
|
412
|
+
'destination_unreacheable',
|
|
413
|
+
'unavailable_driver',
|
|
414
|
+
'other'
|
|
415
|
+
],
|
|
416
|
+
9: [// on force pickup status
|
|
417
|
+
'forgot_complete_location',
|
|
418
|
+
'not_internet_conection',
|
|
419
|
+
'other'
|
|
420
|
+
],
|
|
421
|
+
10: [// on pickup failed by driver
|
|
422
|
+
'very_far_away',
|
|
423
|
+
'driver_vehicle_incident',
|
|
424
|
+
'destination_unreacheable',
|
|
425
|
+
'store_closed',
|
|
426
|
+
'unavailable_driver',
|
|
427
|
+
'other'
|
|
428
|
+
],
|
|
429
|
+
11: [// on force delivery status
|
|
430
|
+
'forgot_complete_location',
|
|
431
|
+
'not_internet_conection',
|
|
432
|
+
'other'
|
|
433
|
+
],
|
|
434
|
+
12: [// on delivery failed by driver
|
|
435
|
+
'very_far_away',
|
|
436
|
+
'driver_vehicle_incident',
|
|
437
|
+
'destination_unreacheable',
|
|
438
|
+
'recipient_unavailable',
|
|
439
|
+
'incorrect_missing_items',
|
|
440
|
+
'refused_damage',
|
|
441
|
+
'other'
|
|
442
|
+
],
|
|
443
|
+
14: [// on order not ready
|
|
444
|
+
'store_recieve_order_late',
|
|
445
|
+
'store_busy',
|
|
446
|
+
'other'
|
|
447
|
+
]
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
if (!messages[status]) return null
|
|
451
|
+
|
|
452
|
+
const list = messages[status].map((val: any, i: number) => ({ key: i, value: val, content: t(`REJECT_REASON_${val.toUpperCase()}`, val.replace(/_/g, ' ')) }))
|
|
453
|
+
|
|
454
|
+
return { list }
|
|
455
|
+
}
|
|
@@ -39,6 +39,8 @@ import { VerifyPhone } from './src/components/VerifyPhone';
|
|
|
39
39
|
import { DriverMap } from './src/components/DriverMap';
|
|
40
40
|
import { MapViewUI as MapView } from './src/components/MapView'
|
|
41
41
|
import { NewOrderNotification } from './src/components/NewOrderNotification';
|
|
42
|
+
import { DriverSchedule } from './src/components/DriverSchedule';
|
|
43
|
+
import { ScheduleBlocked } from './src/components/ScheduleBlocked';
|
|
42
44
|
//OComponents
|
|
43
45
|
import {
|
|
44
46
|
OText,
|
|
@@ -106,6 +108,8 @@ export {
|
|
|
106
108
|
UserFormDetailsUI,
|
|
107
109
|
UserProfileForm,
|
|
108
110
|
VerifyPhone,
|
|
111
|
+
DriverSchedule,
|
|
112
|
+
ScheduleBlocked,
|
|
109
113
|
//OComponents
|
|
110
114
|
OAlert,
|
|
111
115
|
OButton,
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import React, { useState, useEffect, useRef } from 'react';
|
|
2
|
+
import FeatherIcon from 'react-native-vector-icons/Feather';
|
|
2
3
|
import {
|
|
3
4
|
Linking,
|
|
4
5
|
Keyboard,
|
|
5
6
|
Platform,
|
|
6
7
|
View,
|
|
7
8
|
KeyboardAvoidingView,
|
|
8
|
-
TextInput
|
|
9
|
+
TextInput,
|
|
10
|
+
StyleSheet
|
|
9
11
|
} from 'react-native';
|
|
10
12
|
import { useTheme } from 'styled-components/native';
|
|
11
|
-
import
|
|
12
|
-
import {
|
|
13
|
+
import SelectDropdown from 'react-native-select-dropdown'
|
|
14
|
+
import { useLanguage, useSession } from 'ordering-components/native';
|
|
15
|
+
import { Content, Timer, TimeField, Header, Action, Comments, CommentsButtonGroup } from './styles';
|
|
13
16
|
import { FloatingButton } from '../FloatingButton';
|
|
14
17
|
import { OText, OButton, OTextarea, OIconButton } from '../shared';
|
|
15
18
|
import { AcceptOrRejectOrderParams } from '../../types';
|
|
16
19
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
17
20
|
|
|
21
|
+
import { orderCommentList } from '../../../../../src/utils'
|
|
22
|
+
|
|
18
23
|
export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
19
24
|
const {
|
|
20
25
|
customerCellphone,
|
|
@@ -30,6 +35,7 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
30
35
|
} = props;
|
|
31
36
|
|
|
32
37
|
const [, t] = useLanguage();
|
|
38
|
+
const [{ user }] = useSession();
|
|
33
39
|
const theme = useTheme();
|
|
34
40
|
const scrollViewRef = useRef<any>(null);
|
|
35
41
|
const viewRef = useRef<any>(null);
|
|
@@ -39,27 +45,62 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
39
45
|
const [min, setMin] = useState('00');
|
|
40
46
|
const [time, setTime] = useState('');
|
|
41
47
|
const [comments, setComments] = useState('');
|
|
48
|
+
const [rejectReason, setRejectReason] = useState(null);
|
|
42
49
|
const [isKeyboardShow, setIsKeyboardShow] = useState(false);
|
|
43
50
|
const { top, bottom } = useSafeAreaInsets()
|
|
44
51
|
|
|
52
|
+
const isDriverApp = appTitle?.key === 'DELIVERY_APP'
|
|
53
|
+
|
|
54
|
+
const orderCommentsList = orderCommentList(action)
|
|
55
|
+
|
|
45
56
|
let codeNumberPhone, numberPhone, numberToShow;
|
|
46
57
|
const phoneNumber = customerCellphone;
|
|
47
58
|
const titleOrder = t(orderTitle[action]?.key, orderTitle[action]?.text)
|
|
48
59
|
const buttonText = t(orderTitle[action]?.btnKey, orderTitle[action]?.btnText)
|
|
49
60
|
const showTextArea = ['reject', 'deliveryFailed', 'pickupFailed', 'notReady', 'forcePickUp', 'forceDelivery'].includes(action)
|
|
50
61
|
|
|
62
|
+
const styles = StyleSheet.create({
|
|
63
|
+
selectOption: {
|
|
64
|
+
alignItems: 'center',
|
|
65
|
+
justifyContent: 'space-between',
|
|
66
|
+
minHeight: 40,
|
|
67
|
+
width: '100%',
|
|
68
|
+
paddingHorizontal: 15,
|
|
69
|
+
backgroundColor: theme.colors.inputChat,
|
|
70
|
+
borderRadius: 7.6,
|
|
71
|
+
},
|
|
72
|
+
buttonTextStyle: {
|
|
73
|
+
textAlign: 'left',
|
|
74
|
+
marginHorizontal: 0,
|
|
75
|
+
fontSize: 16,
|
|
76
|
+
lineHeight: 24,
|
|
77
|
+
color: '#748194',
|
|
78
|
+
textTransform: 'capitalize'
|
|
79
|
+
},
|
|
80
|
+
dropdownStyle: {
|
|
81
|
+
borderWidth: 1,
|
|
82
|
+
borderRadius: 8,
|
|
83
|
+
paddingTop: 5,
|
|
84
|
+
backgroundColor: '#fff',
|
|
85
|
+
borderColor: theme.colors.lightGray,
|
|
86
|
+
overflow: 'hidden',
|
|
87
|
+
minHeight: 120
|
|
88
|
+
},
|
|
89
|
+
rowStyle: {
|
|
90
|
+
display: 'flex',
|
|
91
|
+
borderBottomWidth: 0,
|
|
92
|
+
height: 36,
|
|
93
|
+
alignItems: 'center',
|
|
94
|
+
paddingHorizontal: 10
|
|
95
|
+
},
|
|
96
|
+
})
|
|
97
|
+
|
|
51
98
|
const handleFocus = () => {
|
|
52
99
|
viewRef?.current?.measure((x: any, y: any) => {
|
|
53
100
|
scrollViewRef?.current?.scrollTo({ x: 0, y });
|
|
54
101
|
});
|
|
55
102
|
};
|
|
56
103
|
|
|
57
|
-
const handleFocusTimer = () => {
|
|
58
|
-
timerRef?.current?.measure((x: any, y: any) => {
|
|
59
|
-
scrollViewRef?.current?.scrollTo({ x: 0, y });
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
|
|
63
104
|
useEffect(() => {
|
|
64
105
|
const keyboardDidShowListener = Keyboard.addListener(
|
|
65
106
|
'keyboardDidShow',
|
|
@@ -151,7 +192,6 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
151
192
|
|
|
152
193
|
const handleAcceptOrReject = () => {
|
|
153
194
|
handleFixTime();
|
|
154
|
-
|
|
155
195
|
let minsToSend = min;
|
|
156
196
|
|
|
157
197
|
if (min > '60') minsToSend = '59';
|
|
@@ -175,26 +215,32 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
175
215
|
rejectByDriver: {
|
|
176
216
|
comment: comments,
|
|
177
217
|
status: 6,
|
|
218
|
+
reject_reason: rejectReason
|
|
178
219
|
},
|
|
179
220
|
pickupFailedByDriver: {
|
|
180
221
|
comment: comments,
|
|
181
|
-
status: 10
|
|
222
|
+
status: 10,
|
|
223
|
+
reject_reason: rejectReason
|
|
182
224
|
},
|
|
183
225
|
deliveryFailedByDriver: {
|
|
184
226
|
comment: comments,
|
|
185
|
-
status: 12
|
|
227
|
+
status: 12,
|
|
228
|
+
reject_reason: rejectReason
|
|
186
229
|
},
|
|
187
230
|
orderNotReady: {
|
|
188
231
|
comment: comments,
|
|
189
|
-
status: 14
|
|
232
|
+
status: 14,
|
|
233
|
+
reject_reason: rejectReason
|
|
190
234
|
},
|
|
191
235
|
forcePickUp: {
|
|
192
236
|
reasons: comments,
|
|
193
|
-
status: 9
|
|
237
|
+
status: 9,
|
|
238
|
+
reject_reason: rejectReason
|
|
194
239
|
},
|
|
195
240
|
forceDelivery: {
|
|
196
241
|
reasons: comments,
|
|
197
|
-
status: 11
|
|
242
|
+
status: 11,
|
|
243
|
+
reject_reason: rejectReason
|
|
198
244
|
}
|
|
199
245
|
};
|
|
200
246
|
|
|
@@ -387,6 +433,48 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
387
433
|
onBlur={() => actions && action === 'accept' && timerRef?.current?.focus?.()}
|
|
388
434
|
/>
|
|
389
435
|
|
|
436
|
+
{orderCommentsList && isDriverApp && (
|
|
437
|
+
<CommentsButtonGroup>
|
|
438
|
+
<SelectDropdown
|
|
439
|
+
defaultButtonText={t('REJECT_REASONS_OPTIONS', 'Reject reasons')}
|
|
440
|
+
data={orderCommentsList?.list}
|
|
441
|
+
onSelect={(selectedItem) => {
|
|
442
|
+
setRejectReason(selectedItem?.value)
|
|
443
|
+
}}
|
|
444
|
+
buttonTextAfterSelection={(selectedItem) => selectedItem.content}
|
|
445
|
+
rowTextForSelection={(item) => item.key}
|
|
446
|
+
buttonStyle={styles.selectOption}
|
|
447
|
+
buttonTextStyle={styles.buttonTextStyle}
|
|
448
|
+
renderDropdownIcon={isOpened => {
|
|
449
|
+
return <FeatherIcon name={isOpened ? 'chevron-up' : 'chevron-down'} color={'#444'} size={18} />;
|
|
450
|
+
}}
|
|
451
|
+
dropdownStyle={styles.dropdownStyle}
|
|
452
|
+
dropdownOverlayColor='transparent'
|
|
453
|
+
rowStyle={styles.rowStyle}
|
|
454
|
+
renderCustomizedRowChild={(item) => {
|
|
455
|
+
return (
|
|
456
|
+
<View
|
|
457
|
+
style={{
|
|
458
|
+
flexDirection: 'row',
|
|
459
|
+
alignItems: 'center'
|
|
460
|
+
}}
|
|
461
|
+
>
|
|
462
|
+
<View>
|
|
463
|
+
<OText
|
|
464
|
+
size={14}
|
|
465
|
+
color={'#748194'}
|
|
466
|
+
style={{ textTransform: 'capitalize' }}
|
|
467
|
+
>
|
|
468
|
+
{item?.content}
|
|
469
|
+
</OText>
|
|
470
|
+
</View>
|
|
471
|
+
</View>
|
|
472
|
+
);
|
|
473
|
+
}}
|
|
474
|
+
/>
|
|
475
|
+
</CommentsButtonGroup>
|
|
476
|
+
)}
|
|
477
|
+
|
|
390
478
|
{showTextArea && (
|
|
391
479
|
<Comments ref={viewRef}>
|
|
392
480
|
<OTextarea
|