ordering-ui-react-native 0.16.13 → 0.16.14-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 -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 +10 -10
- 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/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 +7 -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 +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 +1 -1
- 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 +53 -53
- 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 +109 -40
- 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 +676 -0
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
- package/themes/original/src/components/BusinessesListing/index.tsx +100 -495
- 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 +20 -19
- 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/NetworkError/index.tsx +5 -3
- 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 +187 -49
- 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 +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/PaymentOptionWallet/index.tsx +56 -56
- 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 +170 -128
- 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 +631 -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 +174 -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/layouts/FloatingBottomContainer.tsx +5 -1
- package/themes/original/src/types/index.tsx +163 -47
- package/themes/original/src/utils/index.tsx +77 -0
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
useConfirmSetupIntent,
|
|
8
8
|
createPaymentMethod
|
|
9
9
|
} from '@stripe/stripe-react-native';
|
|
10
|
-
import configs from '../../config.json'
|
|
11
10
|
import { ErrorMessage } from './styles';
|
|
12
11
|
|
|
13
12
|
import { StripeElementsForm as StripeFormController } from './naked';
|
|
@@ -26,7 +25,8 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
26
25
|
methodsPay,
|
|
27
26
|
paymethod,
|
|
28
27
|
onCancel,
|
|
29
|
-
cart
|
|
28
|
+
cart,
|
|
29
|
+
merchantId
|
|
30
30
|
} = props;
|
|
31
31
|
|
|
32
32
|
const theme = useTheme();
|
|
@@ -54,17 +54,25 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
if (user?.address) {
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
billingDetails.address = {
|
|
58
|
+
line1: user?.address
|
|
59
|
+
}
|
|
60
|
+
}
|
|
59
61
|
|
|
60
62
|
const createPayMethod = async () => {
|
|
61
|
-
const params: any = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
const params: any = { paymentMethodType: 'Card', paymentMethodData: {} }
|
|
64
|
+
if (Object.keys(billingDetails).length > 0) {
|
|
65
|
+
params.paymentMethodData.billingDetails = {...billingDetails, token: card?.last4}
|
|
66
|
+
}
|
|
65
67
|
try {
|
|
66
68
|
setCreatePmLoading(true)
|
|
67
|
-
const { paymentMethod } = await createPaymentMethod(params);
|
|
69
|
+
const { paymentMethod, error } = await createPaymentMethod(params);
|
|
70
|
+
|
|
71
|
+
if (error) {
|
|
72
|
+
setErrors(error?.message);
|
|
73
|
+
setCreatePmLoading(false)
|
|
74
|
+
return
|
|
75
|
+
}
|
|
68
76
|
|
|
69
77
|
setCreatePmLoading(false)
|
|
70
78
|
handleSource && handleSource({
|
|
@@ -87,10 +95,10 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
87
95
|
createPayMethod();
|
|
88
96
|
return
|
|
89
97
|
}
|
|
90
|
-
const params: any = {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
98
|
+
const params: any = { paymentMethodType: 'Card', paymentMethodData: {} }
|
|
99
|
+
if (Object.keys(billingDetails).length > 0) {
|
|
100
|
+
params.paymentMethodData.billingDetails = {...billingDetails, token: card?.last4}
|
|
101
|
+
}
|
|
94
102
|
try {
|
|
95
103
|
const { setupIntent, error } = await confirmSetupIntent(requirements, params);
|
|
96
104
|
|
|
@@ -126,12 +134,13 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
126
134
|
<View style={styles.container}>
|
|
127
135
|
{publicKey ? (
|
|
128
136
|
<View style={{ flex: 1 }}>
|
|
129
|
-
<StripeProvider
|
|
137
|
+
<StripeProvider
|
|
130
138
|
publishableKey={publicKey}
|
|
131
|
-
merchantIdentifier={`merchant.${
|
|
139
|
+
merchantIdentifier={`merchant.${merchantId}`}
|
|
140
|
+
urlScheme={merchantId}
|
|
132
141
|
>
|
|
133
142
|
{methodsPay?.includes(paymethod) ? (
|
|
134
|
-
<StripeMethodForm
|
|
143
|
+
<StripeMethodForm
|
|
135
144
|
handleSource={handleSource}
|
|
136
145
|
onCancel={onCancel}
|
|
137
146
|
cart={cart}
|
|
@@ -2,7 +2,7 @@ import styled from 'styled-components/native';
|
|
|
2
2
|
|
|
3
3
|
export const Container = styled.View`
|
|
4
4
|
width: 100%;
|
|
5
|
-
padding: 0
|
|
5
|
+
padding: 0 30px;
|
|
6
6
|
`
|
|
7
7
|
|
|
8
8
|
export const CountDownContainer = styled.View`
|
|
@@ -20,7 +20,6 @@ export const ResendSection = styled.View`
|
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-direction: row;
|
|
22
22
|
justify-content: center;
|
|
23
|
-
flex-wrap: wrap;
|
|
24
23
|
`
|
|
25
24
|
|
|
26
25
|
export const WrappCountdown = styled.View`
|
|
@@ -4,14 +4,18 @@ const deviceHeight = Dimensions.get('window').height
|
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
6
|
open: boolean;
|
|
7
|
+
containerStyle: any;
|
|
7
8
|
title?: string;
|
|
9
|
+
titleStyle?: any;
|
|
8
10
|
children?: any;
|
|
9
11
|
onClose?: any;
|
|
10
12
|
}
|
|
11
13
|
const OBottomPopup = (props: Props) => {
|
|
12
14
|
const {
|
|
13
15
|
open,
|
|
16
|
+
containerStyle,
|
|
14
17
|
title,
|
|
18
|
+
titleStyle,
|
|
15
19
|
onClose,
|
|
16
20
|
children
|
|
17
21
|
} = props
|
|
@@ -29,9 +33,9 @@ const OBottomPopup = (props: Props) => {
|
|
|
29
33
|
>
|
|
30
34
|
<View style={styles.touchableOutsideStyle} />
|
|
31
35
|
</TouchableWithoutFeedback>
|
|
32
|
-
<View style={styles.bottomContainer}>
|
|
36
|
+
<View style={{ ...styles.bottomContainer, ...containerStyle }}>
|
|
33
37
|
<View>
|
|
34
|
-
<Text style={styles.titleStyle}>
|
|
38
|
+
<Text style={{ ...styles.titleStyle, ...titleStyle }}>
|
|
35
39
|
{title}
|
|
36
40
|
</Text>
|
|
37
41
|
{children}
|
package/src/index.tsx
CHANGED
|
@@ -36,6 +36,7 @@ import { LogoutButton } from './components/LogoutButton';
|
|
|
36
36
|
import { Messages } from './components/Messages';
|
|
37
37
|
import { MomentOption } from './components/MomentOption';
|
|
38
38
|
import NavBar from './components/NavBar';
|
|
39
|
+
import { NotificationSetting } from './components/NotificationSetting'
|
|
39
40
|
import { NotFoundSource } from './components/NotFoundSource';
|
|
40
41
|
import { OrderCreating } from './components/OrderCreating';
|
|
41
42
|
import { OrderDetails } from './components/OrderDetails';
|
|
@@ -136,6 +137,7 @@ export {
|
|
|
136
137
|
Messages,
|
|
137
138
|
MomentOption,
|
|
138
139
|
NavBar,
|
|
140
|
+
NotificationSetting,
|
|
139
141
|
NotFoundSource,
|
|
140
142
|
OrderCreating,
|
|
141
143
|
OrderDetails,
|
|
@@ -6,6 +6,7 @@ import AddressForm from '../pages/AddressForm'
|
|
|
6
6
|
import CartList from '../pages/CartList'
|
|
7
7
|
import CheckoutPage from '../pages/Checkout';
|
|
8
8
|
import BusinessProductsList from '../pages/BusinessProductsList';
|
|
9
|
+
import MultiCheckout from '../pages/MultiCheckout';
|
|
9
10
|
|
|
10
11
|
const Stack = createStackNavigator();
|
|
11
12
|
|
|
@@ -53,6 +54,11 @@ const CheckoutNavigator = (props: any) => {
|
|
|
53
54
|
component={AddressForm}
|
|
54
55
|
options={{ headerShown: false }}
|
|
55
56
|
/>
|
|
57
|
+
<Stack.Screen
|
|
58
|
+
name="MultiCheckout"
|
|
59
|
+
children={() => <MultiCheckout {...checkoutProps} />}
|
|
60
|
+
options={{ headerShown: false }}
|
|
61
|
+
/>
|
|
56
62
|
</Stack.Navigator>
|
|
57
63
|
);
|
|
58
64
|
}
|
|
@@ -23,6 +23,7 @@ import HelpAccountAndPayment from '../pages/HelpAccountAndPayment'
|
|
|
23
23
|
import Sessions from '../pages/Sessions';
|
|
24
24
|
import Splash from '../pages/Splash';
|
|
25
25
|
import ProductDetails from '../pages/ProductDetails';
|
|
26
|
+
import MultiOrdersDetails from '../pages/MultiOrdersDetails';
|
|
26
27
|
const Stack = createStackNavigator();
|
|
27
28
|
|
|
28
29
|
const HomeNavigator = (e : any) => {
|
|
@@ -170,6 +171,11 @@ const HomeNavigator = (e : any) => {
|
|
|
170
171
|
component={Sessions}
|
|
171
172
|
options={{ headerShown: false }}
|
|
172
173
|
/>
|
|
174
|
+
<Stack.Screen
|
|
175
|
+
name="MultiOrdersDetails"
|
|
176
|
+
component={MultiOrdersDetails}
|
|
177
|
+
options={{ headerShown: false }}
|
|
178
|
+
/>
|
|
173
179
|
</>
|
|
174
180
|
)}
|
|
175
181
|
</>
|
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
import React, {useEffect} from 'react'
|
|
1
|
+
import React, { useEffect } from 'react'
|
|
2
2
|
import { BusinessesListing as BusinessListingController } from '../components/BusinessesListing'
|
|
3
3
|
import styled from 'styled-components/native'
|
|
4
4
|
import { useTheme } from 'styled-components/native'
|
|
5
5
|
|
|
6
6
|
const BusinessesListing = (props: any) => {
|
|
7
7
|
const theme = useTheme()
|
|
8
|
-
const businessId =
|
|
8
|
+
const businessId = props.route.params?.businessId
|
|
9
9
|
const categoryId = props.route.params?.categoryId
|
|
10
|
-
const productId =
|
|
11
|
-
const store =
|
|
10
|
+
const productId = props.route.params?.productId
|
|
11
|
+
const store = props.route.params?.store
|
|
12
12
|
|
|
13
13
|
useEffect(() => {
|
|
14
|
-
if(store){
|
|
15
|
-
props.navigation.navigate('Business', {store,businessId,categoryId,productId})
|
|
14
|
+
if (store) {
|
|
15
|
+
props.navigation.navigate('Business', { store, businessId, categoryId, productId })
|
|
16
16
|
return
|
|
17
17
|
}
|
|
18
18
|
}, [businessId, categoryId, productId, store])
|
|
19
19
|
|
|
20
20
|
const BusinessesListingProps = {
|
|
21
21
|
...props,
|
|
22
|
+
navigation: props?.navigation,
|
|
22
23
|
isSearchByName: true,
|
|
23
24
|
isSearchByDescription: true,
|
|
24
25
|
propsToFetch: ['id', 'name', 'header', 'logo', 'ribbon', 'location', 'schedule', 'open', 'delivery_price', 'distance', 'delivery_time', 'pickup_time', 'reviews', 'featured', 'offers', 'food', 'laundry', 'alcohol', 'groceries', 'slug'],
|
|
@@ -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,
|
package/src/theme.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module '@fatnlazycat/react-native-recaptcha-v3'
|
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;
|
|
@@ -99,6 +101,8 @@ export interface SignupParams {
|
|
|
99
101
|
handleSendVerifyCode?: any;
|
|
100
102
|
handleCheckPhoneCode?: any;
|
|
101
103
|
notificationState?: any;
|
|
104
|
+
enableReCaptcha?: boolean;
|
|
105
|
+
handleReCaptcha?: (token: string) => void;
|
|
102
106
|
}
|
|
103
107
|
|
|
104
108
|
export interface PhoneInputParams {
|
|
@@ -248,8 +252,8 @@ export interface OrdersOptionParams {
|
|
|
248
252
|
navigation?: any,
|
|
249
253
|
loadOrders?: any,
|
|
250
254
|
setOrderList?: any,
|
|
251
|
-
setOrdersLength?: ({activeOrdersLength, previousOrdersLength}
|
|
252
|
-
ordersLength: {activeOrdersLength: number, previousOrdersLength: number}
|
|
255
|
+
setOrdersLength?: ({ activeOrdersLength, previousOrdersLength }: { activeOrdersLength: number, previousOrdersLength: number }) => void,
|
|
256
|
+
ordersLength: { activeOrdersLength: number, previousOrdersLength: number }
|
|
253
257
|
}
|
|
254
258
|
export interface ActiveOrdersParams {
|
|
255
259
|
orders?: any,
|
|
@@ -347,7 +351,7 @@ export interface MessagesParams {
|
|
|
347
351
|
messages?: any,
|
|
348
352
|
message?: string,
|
|
349
353
|
image?: string,
|
|
350
|
-
messagesToShow?: any
|
|
354
|
+
messagesToShow?: any,
|
|
351
355
|
sendMessage?: any,
|
|
352
356
|
handleSend?: () => {},
|
|
353
357
|
setImage?: (image: string | null) => {},
|
|
@@ -416,7 +420,7 @@ export interface UpsellingProductsParams {
|
|
|
416
420
|
setOpenUpselling?: any;
|
|
417
421
|
onRedirect?: any;
|
|
418
422
|
businessId?: number;
|
|
419
|
-
cartProducts?: Array<any>;
|
|
423
|
+
cartProducts?: Array<any>;
|
|
420
424
|
handleUpsellingPage: () => void;
|
|
421
425
|
openUpselling: boolean;
|
|
422
426
|
canOpenUpselling?: boolean;
|
|
@@ -424,16 +428,16 @@ export interface UpsellingProductsParams {
|
|
|
424
428
|
}
|
|
425
429
|
|
|
426
430
|
export interface GoogleMapsParams {
|
|
427
|
-
location: {lat: number, lng: number}
|
|
428
|
-
handleChangeAddressMap?: (address
|
|
429
|
-
setErrors?: (error
|
|
431
|
+
location: { lat: number, lng: number }
|
|
432
|
+
handleChangeAddressMap?: (address: any, details: any) => void
|
|
433
|
+
setErrors?: (error: string) => void
|
|
430
434
|
maxLimitLocation?: number
|
|
431
435
|
readOnly?: boolean
|
|
432
436
|
markerTitle?: string,
|
|
433
437
|
saveLocation?: boolean,
|
|
434
438
|
isSetInputs?: boolean,
|
|
435
439
|
locations?: Array<any>,
|
|
436
|
-
setSaveLocation?: (val
|
|
440
|
+
setSaveLocation?: (val: boolean) => void,
|
|
437
441
|
handleToggleMap?: () => void
|
|
438
442
|
}
|
|
439
443
|
|
|
@@ -481,7 +485,7 @@ export interface HelpAccountAndPaymentParams {
|
|
|
481
485
|
|
|
482
486
|
export interface StripeMethodFormParams {
|
|
483
487
|
cart: any;
|
|
484
|
-
handleSource: ({id, card}
|
|
488
|
+
handleSource: ({ id, card }: { id: string, card: any }) => void;
|
|
485
489
|
onCancel: () => void;
|
|
486
490
|
setErrors: (error: string) => void;
|
|
487
491
|
paymethod: string;
|
package/src/utils/index.tsx
CHANGED
|
@@ -34,7 +34,6 @@ export const getTraduction = (key: string, t: any) => {
|
|
|
34
34
|
ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY: 'Error adding product, very far for delivery',
|
|
35
35
|
ERROR_PRODUCT_NOT_FOUND: 'Error with the product',
|
|
36
36
|
ERROR_ADD_BUSINESS_INVALID: 'An error occurred with the business',
|
|
37
|
-
ERROR_INVALID_OFFER: 'The offer doesn\'t exist'
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
return keyList[key] ? t(key, keyList[key]) : t(key)
|
|
@@ -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,
|
|
@@ -67,11 +67,11 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
67
67
|
shadowColor: '#000',
|
|
68
68
|
shadowOffset: {
|
|
69
69
|
width: 0,
|
|
70
|
-
height: 1.5,
|
|
70
|
+
height: business?.logo ? 1.5 : 0,
|
|
71
71
|
},
|
|
72
72
|
shadowOpacity: 0.21,
|
|
73
73
|
shadowRadius: 3,
|
|
74
|
-
elevation: 7,
|
|
74
|
+
elevation: business?.logo ? 7 : 0,
|
|
75
75
|
},
|
|
76
76
|
header: {
|
|
77
77
|
flexDirection: 'row',
|
|
@@ -44,33 +44,6 @@ import { USER_TYPE } from '../../config/constants';
|
|
|
44
44
|
|
|
45
45
|
import SignatureScreen from 'react-native-signature-canvas';
|
|
46
46
|
|
|
47
|
-
const ORDER_STATUS: any = {
|
|
48
|
-
0: 'ORDER_STATUS_PENDING',
|
|
49
|
-
1: 'ORDERS_COMPLETED',
|
|
50
|
-
2: 'ORDER_REJECTED',
|
|
51
|
-
3: 'ORDER_STATUS_IN_BUSINESS',
|
|
52
|
-
4: 'ORDER_READY',
|
|
53
|
-
5: 'ORDER_REJECTED_RESTAURANT',
|
|
54
|
-
6: 'ORDER_STATUS_CANCELLEDBYDRIVER',
|
|
55
|
-
7: 'ORDER_STATUS_ACCEPTEDBYRESTAURANT',
|
|
56
|
-
8: 'ORDER_CONFIRMED_ACCEPTED_BY_DRIVER',
|
|
57
|
-
9: 'ORDER_PICKUP_COMPLETED_BY_DRIVER',
|
|
58
|
-
10: 'ORDER_PICKUP_FAILED_BY_DRIVER',
|
|
59
|
-
11: 'ORDER_DELIVERY_COMPLETED_BY_DRIVER',
|
|
60
|
-
12: 'ORDER_DELIVERY_FAILED_BY_DRIVER',
|
|
61
|
-
13: 'PREORDER',
|
|
62
|
-
14: 'ORDER_NOT_READY',
|
|
63
|
-
15: 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER',
|
|
64
|
-
16: 'ORDER_STATUS_CANCELLED_BY_CUSTOMER',
|
|
65
|
-
17: 'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
|
|
66
|
-
18: 'ORDER_DRIVER_ALMOST_ARRIVED_BUSINESS',
|
|
67
|
-
19: 'ORDER_DRIVER_ALMOST_ARRIVED_CUSTOMER',
|
|
68
|
-
20: 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
|
|
69
|
-
21: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
|
|
70
|
-
22: 'ORDER_LOOKING_FOR_DRIVER',
|
|
71
|
-
23: 'ORDER_DRIVER_ON_WAY'
|
|
72
|
-
}
|
|
73
|
-
|
|
74
47
|
const filterSpecialStatus = ['prepared_in', 'delivered_in', 'delivery_datetime']
|
|
75
48
|
|
|
76
49
|
const ChatUI = (props: MessagesParams) => {
|
|
@@ -97,6 +70,33 @@ const ChatUI = (props: MessagesParams) => {
|
|
|
97
70
|
const theme = useTheme();
|
|
98
71
|
const [messageList, setMessageList] = useState<any>([])
|
|
99
72
|
|
|
73
|
+
const ORDER_STATUS: any = {
|
|
74
|
+
0: t('ORDER_STATUS_PENDING', 'Order status pending'),
|
|
75
|
+
1: t('ORDERS_COMPLETED', 'Order completed'),
|
|
76
|
+
2: t('ORDER_REJECTED', 'Order rejected'),
|
|
77
|
+
3: t('ORDER_STATUS_IN_BUSINESS', 'Order status in business'),
|
|
78
|
+
4: t('ORDER_READY', 'Order ready'),
|
|
79
|
+
5: t('ORDER_REJECTED_RESTAURANT', 'Order rejected by restaurant'),
|
|
80
|
+
6: t('ORDER_STATUS_CANCELLEDBYDRIVER', 'Order status cancelled by driver'),
|
|
81
|
+
7: t('ORDER_STATUS_ACCEPTEDBYRESTAURANT', 'Order status accepted by restaurant'),
|
|
82
|
+
8: t('ORDER_CONFIRMED_ACCEPTED_BY_DRIVER', 'Order confirmed accepted by driver'),
|
|
83
|
+
9: t('ORDER_PICKUP_COMPLETED_BY_DRIVER', 'Order pickup completed by driver'),
|
|
84
|
+
10: t('ORDER_PICKUP_FAILED_BY_DRIVER', 'Order pickup failed by driver'),
|
|
85
|
+
11: t('ORDER_DELIVERY_COMPLETED_BY_DRIVER', 'Order delivery completed by driver'),
|
|
86
|
+
12: t('ORDER_DELIVERY_FAILED_BY_DRIVER', 'Order delivery failed by driver'),
|
|
87
|
+
13: t('PREORDER', 'Preorder'),
|
|
88
|
+
14: t('ORDER_NOT_READY', 'Order not ready'),
|
|
89
|
+
15: t('ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER', 'Order picked up completed by customer'),
|
|
90
|
+
16: t('ORDER_STATUS_CANCELLED_BY_CUSTOMER', 'Order status cancelled by customer'),
|
|
91
|
+
17: t('ORDER_NOT_PICKEDUP_BY_CUSTOMER', 'Order not picked up by customer'),
|
|
92
|
+
18: t('ORDER_DRIVER_ALMOST_ARRIVED_BUSINESS', 'Order driver almost arrived to business'),
|
|
93
|
+
19: t('ORDER_DRIVER_ALMOST_ARRIVED_CUSTOMER', 'Order driver almost arrived to customer'),
|
|
94
|
+
20: t('ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', 'Order customer almost arrived to business'),
|
|
95
|
+
21: t('ORDER_CUSTOMER_ARRIVED_BUSINESS', 'Order customer arrived to business'),
|
|
96
|
+
22: t('ORDER_LOOKING_FOR_DRIVER', 'Order looking for driver'),
|
|
97
|
+
23: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
|
|
98
|
+
}
|
|
99
|
+
|
|
100
100
|
const storeMessageList: any = [
|
|
101
101
|
{ key: 'store_message_1', text: t('STORE_MESSAGE_1', 'store_message_1') },
|
|
102
102
|
{ key: 'store_message_2', text: t('STORE_MESSAGE_2', 'store_message_2') },
|
|
@@ -111,6 +111,13 @@ const ChatUI = (props: MessagesParams) => {
|
|
|
111
111
|
{ key: 'driver_message_4', text: t('DRIVER_MESSAGE_4', 'driver_message_4') }
|
|
112
112
|
]
|
|
113
113
|
|
|
114
|
+
const adminMessageList: any = [
|
|
115
|
+
{ key: 'message_1', text: t('ADMIN_MESSAGE_1', 'admin_message_1') },
|
|
116
|
+
{ key: 'message_2', text: t('ADMIN_MESSAGE_2', 'admin_message_2') },
|
|
117
|
+
{ key: 'message_3', text: t('ADMIN_MESSAGE_3', 'admin_message_3') },
|
|
118
|
+
{ key: 'message_4', text: t('ADMIN_MESSAGE_4', 'admin_message_4') }
|
|
119
|
+
]
|
|
120
|
+
|
|
114
121
|
const handleClickQuickMessage = (text: string) => {
|
|
115
122
|
setMessage && setMessage(`${message}${text}`)
|
|
116
123
|
}
|
|
@@ -370,7 +377,7 @@ const ChatUI = (props: MessagesParams) => {
|
|
|
370
377
|
?
|
|
371
378
|
`${t('ORDER', 'Order')} ${t(message.change.attribute.toUpperCase(), message.change.attribute.replace('_', ' '))} ${t('CHANGED_FROM', 'Changed from')} ${filterSpecialStatus.includes(message.change.attribute) ?
|
|
372
379
|
`${message.change.old === null ? '0' : message.change.old} ${t('TO', 'to')} ${message.change.new} ${t('MINUTES', 'Minutes')}` :
|
|
373
|
-
`${message.change.old !== null &&
|
|
380
|
+
`${message.change.old !== null && ORDER_STATUS[parseInt(message.change.old, 10)]} ${t('TO', 'to')} ${ORDER_STATUS[parseInt(message.change.new, 10)]}`
|
|
374
381
|
}`
|
|
375
382
|
: message.change.new
|
|
376
383
|
?
|
|
@@ -426,7 +433,8 @@ const ChatUI = (props: MessagesParams) => {
|
|
|
426
433
|
};
|
|
427
434
|
|
|
428
435
|
useEffect(() => {
|
|
429
|
-
if (user.level ===
|
|
436
|
+
if (user.level === 0) setMessageList(adminMessageList)
|
|
437
|
+
else if (user.level === 2) setMessageList(storeMessageList)
|
|
430
438
|
else if (user.level === 4) setMessageList(driverMessageList)
|
|
431
439
|
else setMessageList([])
|
|
432
440
|
}, [user])
|
|
@@ -484,12 +492,12 @@ const ChatUI = (props: MessagesParams) => {
|
|
|
484
492
|
image: message.source,
|
|
485
493
|
system: message.type === 1,
|
|
486
494
|
user: {
|
|
487
|
-
_id: message.author
|
|
488
|
-
name: message.author
|
|
495
|
+
_id: message.author?.id,
|
|
496
|
+
name: message.author?.name,
|
|
489
497
|
can_see: message?.can_see,
|
|
490
|
-
level: message.author
|
|
498
|
+
level: message.author?.level,
|
|
491
499
|
avatar:
|
|
492
|
-
message.author
|
|
500
|
+
message.author?.id !== user?.id && type === USER_TYPE.DRIVER
|
|
493
501
|
? order?.driver?.photo
|
|
494
502
|
: order?.business?.logo,
|
|
495
503
|
},
|
|
@@ -734,7 +742,7 @@ const ChatUI = (props: MessagesParams) => {
|
|
|
734
742
|
color: '#414954'
|
|
735
743
|
}}
|
|
736
744
|
style={{ ...styles.editButton }}
|
|
737
|
-
onClick={() => handleClickQuickMessage(quickMessage.text)}
|
|
745
|
+
onClick={() => handleClickQuickMessage(message?.length > 0 ? ' ' + quickMessage.text : quickMessage.text)}
|
|
738
746
|
/>
|
|
739
747
|
</React.Fragment>
|
|
740
748
|
))}
|
|
@@ -13,6 +13,7 @@ import { useTheme } from 'styled-components/native';
|
|
|
13
13
|
import { useLocation } from '../../hooks/useLocation';
|
|
14
14
|
import { FloatingButton } from '../FloatingButton';
|
|
15
15
|
import { showLocation } from 'react-native-map-link';
|
|
16
|
+
import { transformDistance } from '../../utils';
|
|
16
17
|
|
|
17
18
|
export const DriverMap = (props: GoogleMapsParams) => {
|
|
18
19
|
const {
|
|
@@ -56,6 +57,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
56
57
|
content: Array<string>;
|
|
57
58
|
key?: string | null;
|
|
58
59
|
}>({ open: false, content: [], key: null });
|
|
60
|
+
const distanceUnit = configState?.configs?.distance_unit?.value
|
|
59
61
|
|
|
60
62
|
const {
|
|
61
63
|
hasLocation,
|
|
@@ -475,9 +477,10 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
475
477
|
src={theme.images.general.arrow_distance}
|
|
476
478
|
style={styles.arrowDistance}
|
|
477
479
|
/>
|
|
478
|
-
<OText size={12} numberOfLines={3}>
|
|
479
|
-
distancesFromTwoPlacesKm
|
|
480
|
-
|
|
480
|
+
<OText size={12} numberOfLines={3}>
|
|
481
|
+
{`${transformDistance(distancesFromTwoPlacesKm, distanceUnit)} ${t(distanceUnit.toUpperCase(), distanceUnit)}`}
|
|
482
|
+
</OText>
|
|
483
|
+
|
|
481
484
|
</View>
|
|
482
485
|
<View style={{ width: '75%', paddingRight: 20 }}>
|
|
483
486
|
<OText
|
|
@@ -485,8 +488,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
485
488
|
size={13}
|
|
486
489
|
numberOfLines={2}
|
|
487
490
|
adjustsFontSizeToFit>
|
|
488
|
-
{`${travelTime.toFixed(2)} - ${isMin ? t('MINNUTES', 'mins') : t('HOURS', 'hours')
|
|
489
|
-
} ${distancesFromTwoPlacesKm.toFixed(2)} km`}
|
|
491
|
+
{`${travelTime.toFixed(2)} - ${isMin ? t('MINNUTES', 'mins') : t('HOURS', 'hours')}`}
|
|
490
492
|
</OText>
|
|
491
493
|
</View>
|
|
492
494
|
</View>
|