ordering-ui-react-native 0.21.87 → 0.21.88-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 +6 -7
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/StripeMethodForm/index.tsx +6 -4
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/types/index.tsx +3 -1
- package/themes/business/index.tsx +2 -0
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -6
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
- package/themes/business/src/components/BusinessController/index.tsx +8 -3
- package/themes/business/src/components/BusinessProductList/index.tsx +2 -1
- package/themes/business/src/components/Chat/index.tsx +5 -2
- package/themes/business/src/components/DriverMap/index.tsx +49 -27
- package/themes/business/src/components/GoogleMap/index.tsx +15 -8
- package/themes/business/src/components/Home/index.tsx +5 -1
- package/themes/business/src/components/LanguageSelector/index.tsx +2 -3
- package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
- package/themes/business/src/components/LogoutButton/index.tsx +1 -1
- package/themes/business/src/components/MapView/index.tsx +36 -17
- package/themes/business/src/components/NewOrderNotification/index.tsx +69 -33
- package/themes/business/src/components/OrderDetails/Business.tsx +74 -9
- package/themes/business/src/components/OrderDetails/Delivery.tsx +131 -51
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +112 -41
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +62 -24
- package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
- package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +221 -0
- package/themes/business/src/components/OrderDetailsLogistic/index.tsx +3 -2
- package/themes/business/src/components/OrderSummary/index.tsx +223 -73
- package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
- package/themes/business/src/components/OrdersOption/index.tsx +251 -159
- package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
- package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +42 -20
- package/themes/business/src/components/PreviousOrders/index.tsx +76 -66
- package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
- package/themes/business/src/components/PrinterEdition/index.tsx +431 -0
- package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
- package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
- package/themes/business/src/components/PrinterSettings/index.tsx +267 -0
- package/themes/business/src/components/PrinterSettings/styles.tsx +30 -0
- package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
- package/themes/business/src/components/Sessions/index.tsx +1 -1
- package/themes/business/src/components/StoresList/index.tsx +2 -2
- package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
- package/themes/business/src/components/UserProfileForm/index.tsx +47 -29
- package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
- package/themes/business/src/components/shared/OInput.tsx +2 -0
- package/themes/business/src/components/shared/OTextarea.tsx +8 -9
- package/themes/business/src/hooks/useLocation.tsx +5 -4
- package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
- package/themes/business/src/types/index.tsx +14 -4
- package/themes/business/src/utils/index.tsx +25 -1
- package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
- package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
- package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
- package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +11 -0
- package/themes/original/src/components/AddressDetails/index.tsx +20 -10
- package/themes/original/src/components/AddressForm/index.tsx +32 -17
- package/themes/original/src/components/AddressList/index.tsx +8 -7
- package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +5 -8
- package/themes/original/src/components/BusinessController/index.tsx +12 -7
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +13 -5
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +2 -3
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +1 -3
- package/themes/original/src/components/BusinessListingSearch/index.tsx +1 -2
- package/themes/original/src/components/BusinessPreorder/index.tsx +20 -15
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +5 -5
- package/themes/original/src/components/BusinessProductsList/index.tsx +2 -2
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +18 -6
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
- package/themes/original/src/components/Cart/index.tsx +43 -15
- package/themes/original/src/components/CartContent/index.tsx +21 -8
- package/themes/original/src/components/Checkout/index.tsx +105 -59
- package/themes/original/src/components/CitiesControl/index.tsx +0 -3
- package/themes/original/src/components/CouponControl/index.tsx +1 -3
- package/themes/original/src/components/DriverTips/index.tsx +1 -3
- package/themes/original/src/components/Favorite/index.tsx +1 -5
- package/themes/original/src/components/FavoriteList/index.tsx +0 -1
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -7
- package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
- package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
- package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +7 -9
- package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +11 -12
- package/themes/original/src/components/GoogleMap/index.tsx +39 -18
- package/themes/original/src/components/Help/index.tsx +2 -0
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
- package/themes/original/src/components/Home/index.tsx +2 -10
- package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
- package/themes/original/src/components/LoginForm/index.tsx +4 -7
- package/themes/original/src/components/MessageListing/index.tsx +2 -1
- package/themes/original/src/components/Messages/index.tsx +13 -9
- package/themes/original/src/components/MomentOption/index.tsx +13 -2
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
- package/themes/original/src/components/MultiCheckout/index.tsx +130 -86
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +2 -1
- package/themes/original/src/components/MyOrders/index.tsx +10 -23
- package/themes/original/src/components/NavBar/index.tsx +7 -4
- package/themes/original/src/components/NetworkError/index.tsx +0 -5
- package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
- package/themes/original/src/components/OrderDetails/OrderEta.tsx +4 -3
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +13 -10
- package/themes/original/src/components/OrderDetails/index.tsx +42 -19
- package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
- package/themes/original/src/components/OrderProgress/index.tsx +26 -6
- package/themes/original/src/components/OrderSummary/index.tsx +28 -9
- package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -6
- package/themes/original/src/components/OrdersOption/index.tsx +3 -6
- package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +17 -9
- package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
- package/themes/original/src/components/PreviousOrders/index.tsx +1 -2
- package/themes/original/src/components/ProductForm/ActionButton.tsx +17 -20
- package/themes/original/src/components/ProductForm/index.tsx +107 -102
- package/themes/original/src/components/ProductItemAccordion/index.tsx +55 -49
- package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
- package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
- package/themes/original/src/components/Promotions/index.tsx +6 -9
- package/themes/original/src/components/ReviewDriver/index.tsx +1 -1
- package/themes/original/src/components/ReviewOrder/index.tsx +2 -2
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
- package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
- package/themes/original/src/components/ServiceForm/index.tsx +52 -54
- package/themes/original/src/components/Sessions/index.tsx +3 -3
- package/themes/original/src/components/SignupForm/index.tsx +86 -78
- package/themes/original/src/components/SingleOrderCard/index.tsx +7 -5
- package/themes/original/src/components/SingleProductCard/index.tsx +3 -4
- package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
- package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
- package/themes/original/src/components/StripeCardsList/index.tsx +10 -3
- package/themes/original/src/components/StripeElementsForm/index.tsx +77 -60
- package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -1
- package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
- package/themes/original/src/components/TaxInformation/index.tsx +3 -2
- package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +10 -7
- package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +8 -3
- package/themes/original/src/components/UserDetails/index.tsx +3 -2
- package/themes/original/src/components/UserFormDetails/index.tsx +154 -130
- package/themes/original/src/components/UserProfile/index.tsx +9 -1
- package/themes/original/src/components/Wallets/index.tsx +6 -3
- package/themes/original/src/components/WebsocketStatus/index.tsx +1 -4
- package/themes/original/src/components/shared/OAlert.tsx +2 -1
- package/themes/original/src/components/shared/OButton.tsx +5 -4
- package/themes/original/src/components/shared/OInput.tsx +4 -8
- package/themes/original/src/components/shared/OModal.tsx +7 -2
- package/themes/original/src/types/index.tsx +5 -1
- package/themes/original/src/utils/index.tsx +30 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ordering-ui-react-native",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.88-release",
|
|
4
4
|
"description": "Reusable components made in react native",
|
|
5
5
|
"main": "src/index.tsx",
|
|
6
6
|
"author": "ordering.inc",
|
|
@@ -52,13 +52,13 @@
|
|
|
52
52
|
"@segment/analytics-react-native": "2.1.11",
|
|
53
53
|
"@segment/sovran-react-native": "0.2.6",
|
|
54
54
|
"@sentry/react-native": "^2.6.0",
|
|
55
|
-
|
|
55
|
+
"@stripe/stripe-react-native": "0.23.0",
|
|
56
56
|
"@types/react-native-loading-spinner-overlay": "^0.5.2",
|
|
57
57
|
"@types/react-native-snap-carousel": "^3.8.4",
|
|
58
58
|
"@types/styled-components": "^5.1.3",
|
|
59
59
|
"axios": "^0.21.0",
|
|
60
60
|
"moment": "^2.29.1",
|
|
61
|
-
"ordering-components": "github:Ordering-Inc/ordering-components#
|
|
61
|
+
"ordering-components": "github:Ordering-Inc/ordering-components#release",
|
|
62
62
|
"patch-package": "^6.4.7",
|
|
63
63
|
"postinstall-postinstall": "^2.1.0",
|
|
64
64
|
"prop-types": "^15.7.2",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"react-native-color-matrix-image-filters": "^5.2.10",
|
|
77
77
|
"react-native-country-picker-modal": "^2.0.0",
|
|
78
78
|
"react-native-credit-card-input": "^0.4.1",
|
|
79
|
-
"react-native-date-picker": "
|
|
79
|
+
"react-native-date-picker": "4.2.14",
|
|
80
80
|
"react-native-device-info": "^8.7.1",
|
|
81
81
|
"react-native-document-picker": "^5.2.0",
|
|
82
82
|
"react-native-elements": "^3.0.0-alpha.1",
|
|
@@ -86,12 +86,12 @@
|
|
|
86
86
|
"react-native-gesture-handler": "^1.8.0",
|
|
87
87
|
"react-native-get-random-values": "1.8.0",
|
|
88
88
|
"react-native-gifted-chat": "^0.16.3",
|
|
89
|
-
"react-native-google-places-autocomplete": "
|
|
89
|
+
"react-native-google-places-autocomplete": "2.1.3",
|
|
90
90
|
"react-native-html-to-pdf": "^0.10.0",
|
|
91
91
|
"react-native-image-picker": "^4.0.6",
|
|
92
92
|
"react-native-intersection-observer": "^0.0.9",
|
|
93
93
|
"react-native-lightbox": "^0.8.1",
|
|
94
|
-
"react-native-linear-gradient": "
|
|
94
|
+
"react-native-linear-gradient": "2.7.3",
|
|
95
95
|
"react-native-loading-spinner-overlay": "^2.0.0",
|
|
96
96
|
"react-native-map-link": "^2.8.2",
|
|
97
97
|
"react-native-maps": "^0.28.0",
|
|
@@ -102,7 +102,6 @@
|
|
|
102
102
|
"react-native-phone-number-input": "^2.0.0",
|
|
103
103
|
"react-native-picker-select": "^8.0.4",
|
|
104
104
|
"react-native-print": "^0.9.0",
|
|
105
|
-
"react-native-reanimated": "^1.13.1",
|
|
106
105
|
"react-native-recaptcha-that-works": "^1.2.0",
|
|
107
106
|
"react-native-restart": "^0.0.22",
|
|
108
107
|
"react-native-safe-area-context": "^3.1.8",
|
package/src/DeliveryApp.tsx
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import * as React from 'react';
|
|
10
|
-
import { LogBox } from 'react-native';
|
|
10
|
+
import { LogBox, Platform } from 'react-native';
|
|
11
|
+
import * as Sentry from "@sentry/react-native";
|
|
11
12
|
import { OrderingProvider } from 'ordering-components/native';
|
|
12
13
|
import RNBootSplash from "react-native-bootsplash";
|
|
13
14
|
|
|
@@ -22,6 +23,47 @@ import theme from './theme.json';
|
|
|
22
23
|
import AppContainer from './AppContainer';
|
|
23
24
|
import { FacebookPixel } from './components/FacebookPixel';
|
|
24
25
|
|
|
26
|
+
Sentry.init({
|
|
27
|
+
environment: Platform.OS === 'ios' ? 'ios' : 'android',
|
|
28
|
+
dsn: 'https://e5e1115dc93b49109f4ab65f2098bef9@o460529.ingest.sentry.io/5722123',
|
|
29
|
+
release: 'ordering-ui-native@' + process.env.npm_package_version,
|
|
30
|
+
ignoreErrors: [
|
|
31
|
+
'is not defined',
|
|
32
|
+
'is not a function',
|
|
33
|
+
'can\'t find variable',
|
|
34
|
+
'objects are not valid',
|
|
35
|
+
'element type is invalid',
|
|
36
|
+
'requiring module',
|
|
37
|
+
'has not been registered',
|
|
38
|
+
'failed to connect to debugger!',
|
|
39
|
+
'rendered more hooks than',
|
|
40
|
+
'rendered fewer hooks than',
|
|
41
|
+
'should have a queue',
|
|
42
|
+
'the OS most likely terminated',
|
|
43
|
+
'Connection timed out',
|
|
44
|
+
'java.io.EOFException',
|
|
45
|
+
'Abort',
|
|
46
|
+
'Segfault',
|
|
47
|
+
'Failed to allocate a',
|
|
48
|
+
'Application Not Responding',
|
|
49
|
+
'connection no longer valid',
|
|
50
|
+
'IllegalInstruction',
|
|
51
|
+
'React.Children.only expected to receive a single React element child.',
|
|
52
|
+
'unrecognized selector sent to instance'
|
|
53
|
+
],
|
|
54
|
+
tracesSampleRate: 0.2,
|
|
55
|
+
// Release health
|
|
56
|
+
enableAutoSessionTracking: true,
|
|
57
|
+
// Sessions close after app is 10 seconds in the background.
|
|
58
|
+
sessionTrackingIntervalMillis: 10000,
|
|
59
|
+
|
|
60
|
+
integrations: [
|
|
61
|
+
new Sentry.ReactNativeTracing({
|
|
62
|
+
routingInstrumentation: reactNavigationV5Instrumentation,
|
|
63
|
+
})
|
|
64
|
+
]
|
|
65
|
+
});
|
|
66
|
+
|
|
25
67
|
LogBox.ignoreLogs([
|
|
26
68
|
'Sending \`onAnimatedValueUpdate` with no listeners registered.',
|
|
27
69
|
'Non-serializable values were found in the navigation state.',
|
|
@@ -191,7 +191,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
|
|
|
191
191
|
{isFarAway && (
|
|
192
192
|
<FarAwayMessage style={styles.farAwayMsg}>
|
|
193
193
|
<Ionicons name='md-warning-outline' style={styles.iconStyle} />
|
|
194
|
-
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', '
|
|
194
|
+
<OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
|
|
195
195
|
</FarAwayMessage>
|
|
196
196
|
)}
|
|
197
197
|
</OrderControlContainer>
|
|
@@ -3,7 +3,6 @@ import { useLanguage, useConfig, useOrder } from 'ordering-components/native'
|
|
|
3
3
|
import { useGooglePay, useApplePay } from '@stripe/stripe-react-native'
|
|
4
4
|
import { Platform } from 'react-native';
|
|
5
5
|
import { StripeMethodFormParams } from '../../types';
|
|
6
|
-
import { android_app_id } from '../../config.json'
|
|
7
6
|
|
|
8
7
|
export const StripeMethodForm = (props: StripeMethodFormParams) => {
|
|
9
8
|
const {
|
|
@@ -17,7 +16,9 @@ export const StripeMethodForm = (props: StripeMethodFormParams) => {
|
|
|
17
16
|
placeByMethodPay,
|
|
18
17
|
methodPaySupported,
|
|
19
18
|
setPlaceByMethodPay,
|
|
20
|
-
cartTotal
|
|
19
|
+
cartTotal,
|
|
20
|
+
androidAppId,
|
|
21
|
+
businessNames
|
|
21
22
|
} = props
|
|
22
23
|
const { initGooglePay, createGooglePayPaymentMethod, loading } = useGooglePay();
|
|
23
24
|
const { presentApplePay, isApplePaySupported } = useApplePay();
|
|
@@ -61,7 +62,7 @@ export const StripeMethodForm = (props: StripeMethodFormParams) => {
|
|
|
61
62
|
})
|
|
62
63
|
const { error } = await initGooglePay({
|
|
63
64
|
testEnv: devMode,
|
|
64
|
-
merchantName:
|
|
65
|
+
merchantName: androidAppId,
|
|
65
66
|
countryCode: 'US',
|
|
66
67
|
billingAddressConfig: {
|
|
67
68
|
format: 'FULL',
|
|
@@ -152,7 +153,8 @@ export const StripeMethodForm = (props: StripeMethodFormParams) => {
|
|
|
152
153
|
|
|
153
154
|
const { error, paymentMethod } = await presentApplePay({
|
|
154
155
|
cartItems: [{
|
|
155
|
-
label: t('
|
|
156
|
+
label: businessNames ? `${businessNames.join(', ')} ${t('VIA_CHEW_APP', 'via Chew App')}`
|
|
157
|
+
: `${cart?.business?.name} ${t('VIA_CHEW_APP', 'via Chew App')}`,
|
|
156
158
|
amount: cartTotal?.toString?.() ?? cart?.balance?.toString() ?? cart?.total?.toString?.(),
|
|
157
159
|
paymentType: 'Immediate'
|
|
158
160
|
}],
|
|
@@ -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`
|
package/src/types/index.tsx
CHANGED
|
@@ -29,6 +29,7 @@ import { OrderSummary } from './src/components/OrderSummary';
|
|
|
29
29
|
import { PhoneInputNumber } from './src/components/PhoneInputNumber';
|
|
30
30
|
import { PreviousMessages } from './src/components/PreviousMessages';
|
|
31
31
|
import { PreviousOrders } from './src/components/PreviousOrders';
|
|
32
|
+
import { PrinterSettings } from './src/components/PrinterSettings';
|
|
32
33
|
import { ProductItemAccordion } from './src/components/ProductItemAccordion';
|
|
33
34
|
import { ReviewCustomer } from './src/components/ReviewCustomer'
|
|
34
35
|
import { SearchBar } from './src/components/SearchBar';
|
|
@@ -103,6 +104,7 @@ export {
|
|
|
103
104
|
PhoneInputNumber,
|
|
104
105
|
PreviousMessages,
|
|
105
106
|
PreviousOrders,
|
|
107
|
+
PrinterSettings,
|
|
106
108
|
ProductItemAccordion,
|
|
107
109
|
ReviewCustomer,
|
|
108
110
|
SafeAreaContainerLayout,
|
|
@@ -31,6 +31,7 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
31
31
|
notShowCustomerPhone,
|
|
32
32
|
orderTitle,
|
|
33
33
|
appTitle,
|
|
34
|
+
isLoadingOrder
|
|
34
35
|
} = props;
|
|
35
36
|
|
|
36
37
|
const [, t] = useLanguage();
|
|
@@ -277,7 +278,7 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
277
278
|
}
|
|
278
279
|
|
|
279
280
|
bodyToSend.id = orderId;
|
|
280
|
-
handleUpdateOrder
|
|
281
|
+
handleUpdateOrder?.(bodyToSend.status, bodyToSend);
|
|
281
282
|
};
|
|
282
283
|
|
|
283
284
|
useEffect(() => {
|
|
@@ -427,13 +428,15 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
427
428
|
{action === 'accept' && (
|
|
428
429
|
<View style={{ height: 300, justifyContent: 'center' }}>
|
|
429
430
|
<Timer onPress={() => openTimerIOnput()}>
|
|
430
|
-
<OText weight="600"
|
|
431
|
+
<OText weight="600" size={55}>
|
|
431
432
|
{hour}
|
|
432
433
|
</OText>
|
|
433
|
-
{hour.length > 0 && <OText size={55}>:</OText>}
|
|
434
|
-
<OText weight="600"
|
|
434
|
+
{hour.length > 0 && <OText size={55} style={{ marginBottom: 10 }}>:</OText>}
|
|
435
|
+
<OText weight="600" size={55}>
|
|
435
436
|
{min}
|
|
436
437
|
</OText>
|
|
438
|
+
{time?.length > 2 && <OText style={{ position: 'absolute', bottom: 60, left: 55 }}>{t('HOURS', 'Hours')}</OText>}
|
|
439
|
+
<OText style={{ position: 'absolute', bottom: 60, right: time?.length > 2 ? 55 : 95 }}>{t('MINUTES', 'Minutes')}</OText>
|
|
437
440
|
</Timer>
|
|
438
441
|
</View>
|
|
439
442
|
)}
|
|
@@ -517,7 +520,7 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
517
520
|
...styles.bottomParent,
|
|
518
521
|
marginBottom: Platform.OS === 'ios'
|
|
519
522
|
? 30 : (keyboardState.height === 0)
|
|
520
|
-
? isPage ? 0 :
|
|
523
|
+
? isPage ? 0 : 40
|
|
521
524
|
: keyboardState.height - (isPage ? 20 : -10)
|
|
522
525
|
}}
|
|
523
526
|
>
|
|
@@ -529,7 +532,7 @@ export const AcceptOrRejectOrder = (props: AcceptOrRejectOrderParams) => {
|
|
|
529
532
|
style={{ borderRadius: 7, height: 45 }}
|
|
530
533
|
parentStyle={{ width: '100%' }}
|
|
531
534
|
textStyle={{ color: '#FFF', fontSize: 18 }}
|
|
532
|
-
isDisabled={showTextArea && !comments}
|
|
535
|
+
isDisabled={(showTextArea && !comments) || isLoadingOrder}
|
|
533
536
|
onClick={() => handleAcceptOrReject()}
|
|
534
537
|
/>
|
|
535
538
|
</View>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { StyleSheet, View, ActivityIndicator, TouchableOpacity } from 'react-native';
|
|
3
|
+
import FastImage from 'react-native-fast-image'
|
|
3
4
|
import ToggleSwitch from 'toggle-switch-react-native';
|
|
4
5
|
import { useTheme } from 'styled-components/native';
|
|
5
6
|
import {
|
|
@@ -99,10 +100,14 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
|
|
|
99
100
|
onPress={() => navigation && business?.slug && navigation.navigate('BusinessProductListing', { slug: business?.slug })}
|
|
100
101
|
>
|
|
101
102
|
<Logo style={styles.logo}>
|
|
102
|
-
<
|
|
103
|
-
url={optimizeImage(business?.logo, 'h_300,c_limit')}
|
|
104
|
-
src={!business?.logo && theme?.images?.dummies?.businessLogo}
|
|
103
|
+
<FastImage
|
|
105
104
|
style={styles.icon}
|
|
105
|
+
source={business?.logo?.includes('https') ? {
|
|
106
|
+
uri: business?.logo,
|
|
107
|
+
priority: FastImage.priority.high,
|
|
108
|
+
cache: FastImage.cacheControl.immutable
|
|
109
|
+
} : business?.logo ?? theme?.images?.dummies?.businessLogo}
|
|
110
|
+
resizeMode={FastImage.resizeMode.cover}
|
|
106
111
|
/>
|
|
107
112
|
</Logo>
|
|
108
113
|
<Information>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import { View, StyleSheet, ScrollView, Dimensions, TouchableOpacity } from 'react-native';
|
|
2
|
+
import { View, StyleSheet, ScrollView, Dimensions, TouchableOpacity, Platform } from 'react-native';
|
|
3
3
|
import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
|
|
4
4
|
import { useTheme } from 'styled-components/native';
|
|
5
5
|
import { SearchBar } from '../SearchBar';
|
|
@@ -190,6 +190,7 @@ export const BusinessProductList = (props: any) => {
|
|
|
190
190
|
const businessProductListProps = {
|
|
191
191
|
...props,
|
|
192
192
|
UIComponent: BusinessProductListUI,
|
|
193
|
+
isIos: Platform.OS === 'ios'
|
|
193
194
|
};
|
|
194
195
|
|
|
195
196
|
return <StoreProductList {...businessProductListProps} />;
|
|
@@ -69,7 +69,7 @@ const ChatUI = (props: MessagesParams) => {
|
|
|
69
69
|
const [, { showToast }] = useToast();
|
|
70
70
|
const theme = useTheme();
|
|
71
71
|
const [messageList, setMessageList] = useState<any>([])
|
|
72
|
-
const previousStatus = [1, 2, 5, 6, 10, 11, 12, 16, 17]
|
|
72
|
+
const previousStatus = [1, 2, 5, 6, 10, 11, 12, 15, 16, 17]
|
|
73
73
|
const chatDisabled = previousStatus.includes(order?.status)
|
|
74
74
|
|
|
75
75
|
const ORDER_STATUS: any = {
|
|
@@ -96,7 +96,10 @@ const ChatUI = (props: MessagesParams) => {
|
|
|
96
96
|
20: t('ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', 'Order customer almost arrived to business'),
|
|
97
97
|
21: t('ORDER_CUSTOMER_ARRIVED_BUSINESS', 'Order customer arrived to business'),
|
|
98
98
|
22: t('ORDER_LOOKING_FOR_DRIVER', 'Order looking for driver'),
|
|
99
|
-
23: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
|
|
99
|
+
23: t('ORDER_DRIVER_ON_WAY', 'Driver on way'),
|
|
100
|
+
24: t('ORDER_DRIVER_WAITING_FOR_ORDER', 'Driver waiting for order'),
|
|
101
|
+
25: t('ORDER_ACCEPTED_BY_DRIVER_COMPANY', 'Accepted by driver company'),
|
|
102
|
+
26: t('ORDER_DRIVER_ARRIVED_CUSTOMER', 'Driver arrived to customer')
|
|
100
103
|
}
|
|
101
104
|
|
|
102
105
|
const getLogisticTag = (status: any) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useEffect, useRef } from 'react';
|
|
1
|
+
import React, { useState, useEffect, useRef, useCallback } from 'react';
|
|
2
2
|
import { Dimensions, Platform, SafeAreaView, StyleSheet, View } from 'react-native';
|
|
3
3
|
import MapView, {
|
|
4
4
|
PROVIDER_GOOGLE,
|
|
@@ -30,7 +30,6 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
30
30
|
isBusinessMarker,
|
|
31
31
|
isToFollow,
|
|
32
32
|
handleViewActionOrder,
|
|
33
|
-
updateDriverPosition,
|
|
34
33
|
driverUpdateLocation,
|
|
35
34
|
setDriverUpdateLocation,
|
|
36
35
|
} = props;
|
|
@@ -70,11 +69,26 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
70
69
|
stopFollowUserLocation,
|
|
71
70
|
} = useLocation();
|
|
72
71
|
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
const parsedInitialPosition = useCallback(() => {
|
|
73
|
+
return {
|
|
74
|
+
latitude: typeof initialPosition.latitude === 'string' ? parseFloat(initialPosition.latitude) || 0 : initialPosition.latitude || 0,
|
|
75
|
+
longitude: typeof initialPosition.longitude === 'string' ? parseFloat(initialPosition.longitude) || 0 : initialPosition.longitude || 0,
|
|
76
|
+
}
|
|
77
|
+
}, [JSON.stringify(initialPosition)])
|
|
78
|
+
|
|
79
|
+
const parsedUserLocation = useCallback(() => {
|
|
80
|
+
return {
|
|
81
|
+
latitude: typeof userLocation?.latitude === 'string' ? parseFloat(userLocation?.latitude) || 0 : userLocation?.latitude || 0,
|
|
82
|
+
longitude: typeof userLocation?.longitude === 'string' ? parseFloat(userLocation?.longitude) || 0 : userLocation?.longitude || 0
|
|
83
|
+
}
|
|
84
|
+
}, [JSON.stringify(userLocation)])
|
|
85
|
+
|
|
86
|
+
const parsedDestination = useCallback(() => {
|
|
87
|
+
return {
|
|
88
|
+
latitude: typeof location?.lat === 'string' ? parseFloat(location?.lat) || 0 : location?.lat || 0,
|
|
89
|
+
longitude: typeof location?.lng === 'string' ? parseFloat(location?.lng) || 0 : location?.lng || 0
|
|
90
|
+
}
|
|
91
|
+
}, [JSON.stringify(location)])
|
|
78
92
|
|
|
79
93
|
useEffect(() => {
|
|
80
94
|
if (isToFollow) {
|
|
@@ -162,21 +176,21 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
162
176
|
if (driverUpdateLocation.error) return;
|
|
163
177
|
|
|
164
178
|
calculateDistance(
|
|
165
|
-
{ lat:
|
|
166
|
-
|
|
179
|
+
{ lat: parsedUserLocation()?.latitude, lng: parsedUserLocation()?.longitude },
|
|
180
|
+
parsedDestination(),
|
|
167
181
|
);
|
|
168
182
|
// geocodePosition(userLocation);
|
|
169
183
|
|
|
170
184
|
if (!following.current) return;
|
|
171
185
|
fitCoordinates();
|
|
172
186
|
|
|
173
|
-
const { latitude, longitude } =
|
|
187
|
+
const { latitude, longitude } = parsedUserLocation();
|
|
174
188
|
|
|
175
189
|
mapRef.current?.animateCamera({
|
|
176
190
|
center: { latitude, longitude },
|
|
177
191
|
});
|
|
178
192
|
|
|
179
|
-
}, [userLocation]);
|
|
193
|
+
}, [JSON.stringify(userLocation)]);
|
|
180
194
|
|
|
181
195
|
const handleArrowBack: any = () => {
|
|
182
196
|
setDriverUpdateLocation?.({
|
|
@@ -222,6 +236,11 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
222
236
|
19: theme.colors.statusOrderBlue,
|
|
223
237
|
20: theme.colors.statusOrderBlue,
|
|
224
238
|
21: theme.colors.statusOrderBlue,
|
|
239
|
+
22: theme.colors.statusOrderBlue,
|
|
240
|
+
23: theme.colors.statusOrderBlue,
|
|
241
|
+
24: theme.colors.statusOrderBlue,
|
|
242
|
+
25: theme.colors.statusOrderBlue,
|
|
243
|
+
26: theme.colors.statusOrderBlue,
|
|
225
244
|
//GREEN
|
|
226
245
|
1: theme.colors.statusOrderGreen,
|
|
227
246
|
11: theme.colors.statusOrderGreen,
|
|
@@ -242,8 +261,8 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
242
261
|
[
|
|
243
262
|
{ latitude: location.lat, longitude: location.lng },
|
|
244
263
|
{
|
|
245
|
-
latitude:
|
|
246
|
-
longitude:
|
|
264
|
+
latitude: parsedInitialPosition()?.latitude,
|
|
265
|
+
longitude: parsedInitialPosition()?.longitude,
|
|
247
266
|
},
|
|
248
267
|
],
|
|
249
268
|
{
|
|
@@ -256,7 +275,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
256
275
|
|
|
257
276
|
useEffect(() => {
|
|
258
277
|
const interval = setInterval(() => {
|
|
259
|
-
if (
|
|
278
|
+
if (parsedInitialPosition()?.latitude !== 0 && autoFit.current) {
|
|
260
279
|
if (mapRef.current) {
|
|
261
280
|
fitCoordinates();
|
|
262
281
|
autoFit.current = false;
|
|
@@ -264,7 +283,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
264
283
|
}
|
|
265
284
|
}, 1000);
|
|
266
285
|
return () => clearInterval(interval);
|
|
267
|
-
}, [
|
|
286
|
+
}, [parsedInitialPosition()]);
|
|
268
287
|
|
|
269
288
|
const fitCoordinatesZoom = () => {
|
|
270
289
|
following.current = false;
|
|
@@ -347,8 +366,8 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
347
366
|
ref={mapRef}
|
|
348
367
|
provider={PROVIDER_GOOGLE}
|
|
349
368
|
initialRegion={{
|
|
350
|
-
latitude:
|
|
351
|
-
longitude:
|
|
369
|
+
latitude: parsedInitialPosition()?.latitude,
|
|
370
|
+
longitude: parsedInitialPosition()?.longitude,
|
|
352
371
|
latitudeDelta: 0.001,
|
|
353
372
|
longitudeDelta: 0.001 * ASPECT_RATIO,
|
|
354
373
|
}}
|
|
@@ -370,8 +389,8 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
370
389
|
<>
|
|
371
390
|
<Marker
|
|
372
391
|
coordinate={{
|
|
373
|
-
latitude:
|
|
374
|
-
longitude:
|
|
392
|
+
latitude: parsedDestination()?.latitude,
|
|
393
|
+
longitude: parsedDestination()?.longitude
|
|
375
394
|
}}
|
|
376
395
|
title={location.title}>
|
|
377
396
|
<Icon
|
|
@@ -388,7 +407,10 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
388
407
|
/>
|
|
389
408
|
</View>
|
|
390
409
|
</Marker>
|
|
391
|
-
<Marker coordinate={
|
|
410
|
+
<Marker coordinate={{
|
|
411
|
+
latitude: userLocation?.latitude,
|
|
412
|
+
longitude: userLocation?.longitude
|
|
413
|
+
}}>
|
|
392
414
|
<View style={styles.driverIcon}>
|
|
393
415
|
<OIcon
|
|
394
416
|
style={styles.image}
|
|
@@ -402,8 +424,8 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
402
424
|
) : (
|
|
403
425
|
<Marker
|
|
404
426
|
coordinate={{
|
|
405
|
-
latitude:
|
|
406
|
-
longitude:
|
|
427
|
+
latitude: parsedUserLocation()?.latitude,
|
|
428
|
+
longitude: parsedUserLocation()?.longitude
|
|
407
429
|
}}
|
|
408
430
|
title={markerTitle || t('YOUR_LOCATION', 'Your Location')}
|
|
409
431
|
/>
|
|
@@ -515,10 +537,10 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
515
537
|
animationIn: 'slideInUp'
|
|
516
538
|
}}
|
|
517
539
|
options={{
|
|
518
|
-
latitude:
|
|
519
|
-
longitude:
|
|
520
|
-
sourceLatitude:
|
|
521
|
-
sourceLongitude:
|
|
540
|
+
latitude: parsedDestination()?.latitude,
|
|
541
|
+
longitude: parsedDestination()?.longitude,
|
|
542
|
+
sourceLatitude: parsedUserLocation()?.latitude,
|
|
543
|
+
sourceLongitude: parsedUserLocation()?.longitude,
|
|
522
544
|
naverCallerName: 'com.deliveryapp',
|
|
523
545
|
dialogTitle: t('SHOW_IN_OTHER_MAPS', 'Show in other maps'),
|
|
524
546
|
dialogMessage: t('WHAT_APP_WOULD_YOU_USE', 'What app would you like to use?'),
|
|
@@ -540,7 +562,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
|
|
|
540
562
|
secondButton={true}
|
|
541
563
|
firstColorCustom={theme.colors.red}
|
|
542
564
|
secondColorCustom={theme.colors.green}
|
|
543
|
-
widthButton={isHideRejectButtons ? '100%': '45%'}
|
|
565
|
+
widthButton={isHideRejectButtons ? '100%' : '45%'}
|
|
544
566
|
isPadding
|
|
545
567
|
isHideRejectButtons={isHideRejectButtons}
|
|
546
568
|
/>
|
|
@@ -50,12 +50,16 @@ export const GoogleMap = (props: GoogleMapsParams) => {
|
|
|
50
50
|
const ASPECT_RATIO = width / height;
|
|
51
51
|
const [isMapReady, setIsMapReady] = useState(false);
|
|
52
52
|
const [markerPosition, setMarkerPosition] = useState({
|
|
53
|
-
latitude: locations
|
|
54
|
-
|
|
53
|
+
latitude: locations
|
|
54
|
+
? typeof locations[locations.length - 1].lat === 'string' ? parseFloat(locations[locations.length - 1].lat) || 0 : locations[locations.length - 1].lat || 0
|
|
55
|
+
: typeof location?.lat === 'string' ? parseFloat(location?.lat) || 0 : location?.lat || 0,
|
|
56
|
+
longitude: locations
|
|
57
|
+
? typeof locations[locations.length - 1].lng === 'string' ? parseFloat(locations[locations.length - 1].lng) || 0 : locations[locations.length - 1].lng || 0
|
|
58
|
+
: typeof location?.lng === 'string' ? parseFloat(location?.lng) || 0 : location?.lng || 0,
|
|
55
59
|
});
|
|
56
60
|
const [region, setRegion] = useState({
|
|
57
|
-
latitude: location
|
|
58
|
-
longitude: location
|
|
61
|
+
latitude: typeof location?.lat === 'string' ? parseFloat(location?.lat) || 0 : location?.lat || 0,
|
|
62
|
+
longitude: typeof location?.lng === 'string' ? parseFloat(location?.lng) || 0 : location?.lng || 0,
|
|
59
63
|
latitudeDelta: 0.001,
|
|
60
64
|
longitudeDelta: 0.001 * ASPECT_RATIO,
|
|
61
65
|
});
|
|
@@ -78,12 +82,15 @@ export const GoogleMap = (props: GoogleMapsParams) => {
|
|
|
78
82
|
let MARKERS =
|
|
79
83
|
locations &&
|
|
80
84
|
locations.map((location: { lat: number; lng: number; level: number }) => {
|
|
81
|
-
return location.level === 4 && driverLocation?.lat
|
|
85
|
+
return location.level === 4 && driverLocation?.lat && driverLocation?.lng
|
|
82
86
|
? {
|
|
83
|
-
latitude: driverLocation?.lat,
|
|
84
|
-
longitude: driverLocation?.lng,
|
|
87
|
+
latitude: typeof driverLocation?.lat === 'string' ? parseFloat(driverLocation?.lat) || 0 : driverLocation?.lat,
|
|
88
|
+
longitude: typeof driverLocation?.lng === 'string' ? parseFloat(driverLocation?.lng) || 0 : driverLocation?.lng,
|
|
85
89
|
}
|
|
86
|
-
: {
|
|
90
|
+
: {
|
|
91
|
+
latitude: typeof location?.lat === 'string' ? parseFloat(location?.lat) || 0 : location?.lat,
|
|
92
|
+
longitude: typeof location?.lng === 'string' ? parseFloat(location?.lng) || 0 : location?.lng
|
|
93
|
+
};
|
|
87
94
|
});
|
|
88
95
|
|
|
89
96
|
const handleArrowBack: any = () => {
|
|
@@ -138,7 +138,10 @@ export const Home = (props: any) => {
|
|
|
138
138
|
placeholder={t('PROJECT_NAME', 'Project Name')}
|
|
139
139
|
icon={theme.images.general.project}
|
|
140
140
|
iconColor={theme.colors.arrowColor}
|
|
141
|
-
onChange={(e: any) =>
|
|
141
|
+
onChange={(e: any) => {
|
|
142
|
+
const project = e?.target?.value?.replace(/\s/g, '')
|
|
143
|
+
onChange(project)
|
|
144
|
+
}}
|
|
142
145
|
selectionColor={theme.colors.primary}
|
|
143
146
|
color={theme.colors.white}
|
|
144
147
|
value={value}
|
|
@@ -148,6 +151,7 @@ export const Home = (props: any) => {
|
|
|
148
151
|
autoCapitalize='none'
|
|
149
152
|
blurOnSubmit={false}
|
|
150
153
|
onSubmitEditing={() => handleSubmit(onSubmit)()}
|
|
154
|
+
isValueSync
|
|
151
155
|
/>
|
|
152
156
|
)}
|
|
153
157
|
/>
|
|
@@ -25,8 +25,7 @@ const LanguageSelectorUI = (props: LanguageSelectorParams) => {
|
|
|
25
25
|
value: language?.code,
|
|
26
26
|
label: language?.name,
|
|
27
27
|
inputLabel: language?.code.toUpperCase(),
|
|
28
|
-
countryCode: langCountries.find(item => item.value == language?.code)
|
|
29
|
-
?.countryCode,
|
|
28
|
+
countryCode: langCountries.find(item => item.value == language?.code)?.countryCode,
|
|
30
29
|
};
|
|
31
30
|
});
|
|
32
31
|
|
|
@@ -50,7 +49,7 @@ const LanguageSelectorUI = (props: LanguageSelectorParams) => {
|
|
|
50
49
|
},
|
|
51
50
|
});
|
|
52
51
|
|
|
53
|
-
return (
|
|
52
|
+
return !languagesState?.loading && languagesState?.languages?.length > 1 && (
|
|
54
53
|
<Container style={{ backgroundColor: theme.colors.inputChat }}>
|
|
55
54
|
{languagesState?.languages && (
|
|
56
55
|
<CountryPicker
|