ordering-ui-react-native 0.17.62 → 0.17.63-release
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +8 -7
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/OrderCreating/index.tsx +1 -21
- package/src/components/PaymentOptionsWebView/index.tsx +29 -8
- package/src/components/PhoneInputNumber/index.tsx +6 -2
- package/src/components/StripeMethodForm/index.tsx +136 -102
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OToast.tsx +2 -2
- package/src/types/index.tsx +5 -0
- package/src/utils/index.tsx +5 -0
- package/themes/business/index.tsx +2 -0
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +270 -245
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
- package/themes/business/src/components/BusinessController/index.tsx +0 -1
- package/themes/business/src/components/Chat/index.tsx +123 -111
- package/themes/business/src/components/DriverMap/index.tsx +17 -6
- package/themes/business/src/components/DriverSchedule/index.tsx +42 -5
- package/themes/business/src/components/GoogleMap/index.tsx +58 -57
- package/themes/business/src/components/LoginForm/Otp/index.tsx +31 -3
- package/themes/business/src/components/LoginForm/index.tsx +15 -22
- package/themes/business/src/components/MapView/index.tsx +10 -10
- package/themes/business/src/components/NewOrderNotification/index.tsx +35 -21
- package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
- package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
- package/themes/business/src/components/OrderDetails/Delivery.tsx +191 -6
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +133 -65
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +64 -63
- package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
- package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
- package/themes/business/src/components/OrderMessage/index.tsx +19 -18
- package/themes/business/src/components/OrderSummary/index.tsx +114 -123
- package/themes/business/src/components/OrdersOption/index.tsx +32 -75
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +249 -0
- package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
- package/themes/business/src/components/PreviousOrders/index.tsx +444 -242
- package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
- package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
- package/themes/business/src/components/ReviewCustomer/index.tsx +30 -15
- package/themes/business/src/components/StoresList/index.tsx +3 -4
- package/themes/business/src/components/UserProfileForm/index.tsx +11 -13
- package/themes/business/src/components/shared/OLink.tsx +33 -13
- package/themes/business/src/components/shared/OModal.tsx +16 -9
- package/themes/business/src/components/shared/OText.tsx +8 -2
- package/themes/business/src/types/index.tsx +28 -12
- package/themes/business/src/utils/index.tsx +29 -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/Checkout/index.tsx +6 -0
- package/themes/kiosk/src/components/Intro/index.tsx +16 -1
- package/themes/kiosk/src/components/LoginForm/index.tsx +7 -9
- 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/PhoneInputNumber/index.tsx +2 -2
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +4 -0
- package/themes/original/src/components/AddressDetails/index.tsx +19 -3
- package/themes/original/src/components/AddressForm/index.tsx +61 -39
- package/themes/original/src/components/AddressList/index.tsx +27 -22
- package/themes/original/src/components/AddressList/styles.tsx +4 -2
- package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +153 -96
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
- package/themes/original/src/components/BusinessController/index.tsx +94 -66
- package/themes/original/src/components/BusinessController/styles.tsx +22 -3
- package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
- package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
- package/themes/original/src/components/BusinessInformation/index.tsx +142 -109
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
- package/themes/original/src/components/BusinessListingSearch/index.tsx +349 -339
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -18
- package/themes/original/src/components/BusinessPreorder/index.tsx +103 -19
- package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -2
- package/themes/original/src/components/BusinessProductsList/index.tsx +25 -15
- package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
- package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
- package/themes/original/src/components/BusinessProductsListing/index.tsx +684 -555
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
- package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +90 -85
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +0 -1
- package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
- package/themes/original/src/components/Cart/index.tsx +77 -50
- package/themes/original/src/components/CartContent/index.tsx +117 -20
- package/themes/original/src/components/CartContent/styles.tsx +17 -7
- package/themes/original/src/components/Checkout/index.tsx +356 -124
- package/themes/original/src/components/CitiesControl/index.tsx +89 -0
- package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
- package/themes/original/src/components/CouponControl/index.tsx +10 -3
- package/themes/original/src/components/DriverTips/index.tsx +52 -34
- package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
- package/themes/original/src/components/Favorite/index.tsx +8 -9
- package/themes/original/src/components/Favorite/styles.tsx +1 -1
- package/themes/original/src/components/FavoriteList/index.tsx +1 -35
- package/themes/original/src/components/FloatingButton/index.tsx +1 -2
- package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
- package/themes/original/src/components/GPSButton/index.tsx +6 -4
- package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
- package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
- package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +191 -0
- package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
- package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
- package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
- package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
- package/themes/original/src/components/GoogleMap/index.tsx +60 -5
- package/themes/original/src/components/Help/index.tsx +8 -8
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +10 -31
- package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +5 -3
- package/themes/original/src/components/HelpGuide/index.tsx +6 -6
- package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
- package/themes/original/src/components/HelpOrder/index.tsx +6 -15
- package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
- package/themes/original/src/components/Home/index.tsx +13 -4
- package/themes/original/src/components/LastOrder/index.tsx +1 -34
- package/themes/original/src/components/LoginForm/Otp/index.tsx +55 -13
- package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
- package/themes/original/src/components/LoginForm/index.tsx +59 -34
- package/themes/original/src/components/LottieAnimation/index.tsx +89 -55
- package/themes/original/src/components/MessageListing/index.tsx +16 -42
- package/themes/original/src/components/Messages/index.tsx +29 -7
- package/themes/original/src/components/MomentOption/index.tsx +195 -90
- package/themes/original/src/components/MomentSelector/index.tsx +1 -1
- package/themes/original/src/components/MultiCart/index.tsx +50 -0
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +162 -51
- package/themes/original/src/components/MultiCheckout/index.tsx +308 -88
- package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
- package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +68 -21
- package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
- package/themes/original/src/components/MyOrders/index.tsx +40 -29
- package/themes/original/src/components/NavBar/index.tsx +20 -17
- package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
- package/themes/original/src/components/Notifications/index.tsx +46 -50
- package/themes/original/src/components/Notifications/styles.tsx +6 -3
- package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +15 -3
- package/themes/original/src/components/OrderDetails/index.tsx +190 -363
- package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
- package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
- package/themes/original/src/components/OrderProgress/index.tsx +33 -56
- package/themes/original/src/components/OrderSummary/index.tsx +88 -59
- package/themes/original/src/components/OrderTypeSelector/index.tsx +2 -1
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +24 -19
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
- package/themes/original/src/components/OrdersOption/index.tsx +78 -67
- package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
- package/themes/original/src/components/PageBanner/index.tsx +106 -31
- package/themes/original/src/components/PageBanner/styles.tsx +4 -4
- package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
- package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +78 -35
- package/themes/original/src/components/PhoneInputNumber/index.tsx +3 -3
- package/themes/original/src/components/ProductForm/index.tsx +114 -35
- package/themes/original/src/components/ProductForm/styles.tsx +5 -5
- package/themes/original/src/components/ProductItemAccordion/index.tsx +14 -11
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +20 -18
- package/themes/original/src/components/ProductOptionSubOption/styles.tsx +5 -9
- package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
- package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
- package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
- package/themes/original/src/components/Promotions/index.tsx +5 -4
- package/themes/original/src/components/Promotions/styles.tsx +3 -1
- package/themes/original/src/components/ReviewOrder/index.tsx +26 -9
- package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
- package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
- package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
- package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
- package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
- package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
- package/themes/original/src/components/ServiceForm/index.tsx +66 -17
- package/themes/original/src/components/Sessions/index.tsx +11 -8
- package/themes/original/src/components/Sessions/styles.tsx +5 -0
- package/themes/original/src/components/SignupForm/index.tsx +43 -27
- package/themes/original/src/components/SingleOrderCard/index.tsx +130 -56
- package/themes/original/src/components/SingleOrderCard/styles.tsx +11 -2
- package/themes/original/src/components/SingleProductCard/index.tsx +72 -31
- package/themes/original/src/components/SingleProductCard/styles.tsx +20 -4
- package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
- package/themes/original/src/components/StripeCardsList/index.tsx +49 -5
- package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
- package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
- package/themes/original/src/components/UpsellingProducts/index.tsx +238 -224
- package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
- package/themes/original/src/components/UserDetails/index.tsx +3 -1
- package/themes/original/src/components/UserFormDetails/index.tsx +76 -7
- package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
- package/themes/original/src/components/UserProfile/index.tsx +88 -79
- package/themes/original/src/components/UserProfileForm/index.tsx +27 -29
- package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
- package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
- package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
- package/themes/original/src/components/Wallets/index.tsx +66 -30
- package/themes/original/src/components/Wallets/styles.tsx +3 -4
- package/themes/original/src/components/shared/OButton.tsx +6 -2
- package/themes/original/src/components/shared/OInput.tsx +6 -1
- package/themes/original/src/components/shared/OModal.tsx +3 -3
- package/themes/original/src/types/index.tsx +36 -10
- package/themes/original/src/utils/index.tsx +273 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -9,8 +9,9 @@ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
|
|
|
9
9
|
|
|
10
10
|
import {
|
|
11
11
|
Content,
|
|
12
|
-
|
|
12
|
+
Container
|
|
13
13
|
} from './styles'
|
|
14
|
+
import NavBar from '../NavBar'
|
|
14
15
|
|
|
15
16
|
export const HelpAccountAndPayment = (props: HelpAccountAndPaymentParams) => {
|
|
16
17
|
const {
|
|
@@ -20,15 +21,6 @@ export const HelpAccountAndPayment = (props: HelpAccountAndPaymentParams) => {
|
|
|
20
21
|
const theme = useTheme()
|
|
21
22
|
|
|
22
23
|
const styles = StyleSheet.create({
|
|
23
|
-
btnBackArrow: {
|
|
24
|
-
borderWidth: 0,
|
|
25
|
-
backgroundColor: theme.colors.white,
|
|
26
|
-
borderColor: theme.colors.white,
|
|
27
|
-
shadowColor: theme.colors.white,
|
|
28
|
-
display: 'flex',
|
|
29
|
-
justifyContent: 'flex-start',
|
|
30
|
-
paddingLeft: 0,
|
|
31
|
-
},
|
|
32
24
|
imageStyle: {
|
|
33
25
|
width: '100%',
|
|
34
26
|
height: 300,
|
|
@@ -39,26 +31,13 @@ export const HelpAccountAndPayment = (props: HelpAccountAndPaymentParams) => {
|
|
|
39
31
|
const goToBack = () => navigation?.canGoBack() && navigation.goBack()
|
|
40
32
|
|
|
41
33
|
return (
|
|
42
|
-
|
|
43
|
-
<
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
iconProps={{
|
|
50
|
-
name: 'arrowleft',
|
|
51
|
-
size: 26
|
|
52
|
-
}}
|
|
53
|
-
/>
|
|
54
|
-
<OText
|
|
55
|
-
size={24}
|
|
56
|
-
weight={Platform.OS === 'ios' ? '600' : 'bold'}
|
|
57
|
-
color={theme.colors.textNormal}
|
|
58
|
-
>
|
|
59
|
-
{t('ACCOUNT_PAYMENT_OPTIONS', 'Account and Payment Options')}
|
|
60
|
-
</OText>
|
|
61
|
-
</HeaderWrapper>
|
|
34
|
+
<Container>
|
|
35
|
+
<NavBar
|
|
36
|
+
title={t('ACCOUNT_PAYMENT_OPTIONS', 'Account and Payment Options')}
|
|
37
|
+
onActionLeft={goToBack}
|
|
38
|
+
btnStyle={{ paddingLeft: 0 }}
|
|
39
|
+
showCall={false}
|
|
40
|
+
/>
|
|
62
41
|
<Content>
|
|
63
42
|
<OText mBottom={20}>
|
|
64
43
|
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vel in congue nisl, nisi. Mauris, condimentum auctor sed cras cursus arcu pellentesque.
|
|
@@ -78,6 +57,6 @@ export const HelpAccountAndPayment = (props: HelpAccountAndPaymentParams) => {
|
|
|
78
57
|
cover
|
|
79
58
|
/>
|
|
80
59
|
</Content>
|
|
81
|
-
|
|
60
|
+
</Container>
|
|
82
61
|
)
|
|
83
62
|
}
|
|
@@ -4,7 +4,9 @@ export const Content = styled.View`
|
|
|
4
4
|
padding-vertical: 20px;
|
|
5
5
|
margin-bottom: 20px;
|
|
6
6
|
`
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
|
|
8
|
+
export const Container = styled.ScrollView`
|
|
9
|
+
position: relative;
|
|
10
|
+
flex: 1;
|
|
11
|
+
margin: 10px 0;
|
|
10
12
|
`
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { useLanguage } from 'ordering-components/native'
|
|
3
3
|
import { HelpGuideParams } from '../../types'
|
|
4
|
-
import { OText,
|
|
4
|
+
import { OText, OIcon } from '../shared'
|
|
5
5
|
import { useTheme } from 'styled-components/native'
|
|
6
|
-
import {
|
|
6
|
+
import { Platform, StyleSheet } from 'react-native'
|
|
7
7
|
import NavBar from '../NavBar'
|
|
8
8
|
import {
|
|
9
|
-
Content
|
|
9
|
+
Content,
|
|
10
|
+
Container
|
|
10
11
|
} from './styles'
|
|
11
|
-
import AntDesignIcon from 'react-native-vector-icons/AntDesign'
|
|
12
12
|
|
|
13
13
|
export const HelpGuide = (props: HelpGuideParams) => {
|
|
14
14
|
const {
|
|
@@ -37,7 +37,7 @@ export const HelpGuide = (props: HelpGuideParams) => {
|
|
|
37
37
|
const goToBack = () => navigation?.canGoBack() && navigation.goBack()
|
|
38
38
|
|
|
39
39
|
return (
|
|
40
|
-
|
|
40
|
+
<Container pdng={Platform.OS === 'ios' ? '10px' : '0px'}>
|
|
41
41
|
<NavBar
|
|
42
42
|
title={t('GUIDE_TO_ORDERING', 'Guide to Ordering')}
|
|
43
43
|
onActionLeft={goToBack}
|
|
@@ -63,6 +63,6 @@ export const HelpGuide = (props: HelpGuideParams) => {
|
|
|
63
63
|
cover
|
|
64
64
|
/>
|
|
65
65
|
</Content>
|
|
66
|
-
|
|
66
|
+
</Container>
|
|
67
67
|
)
|
|
68
68
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { useLanguage } from 'ordering-components/native'
|
|
3
3
|
import { HelpOrderParams } from '../../types'
|
|
4
|
-
import { OText,
|
|
4
|
+
import { OText, OIcon } from '../shared'
|
|
5
5
|
import { useTheme } from 'styled-components/native'
|
|
6
|
-
import { StyleSheet
|
|
6
|
+
import { StyleSheet } from 'react-native'
|
|
7
7
|
import { WebView } from 'react-native-webview'
|
|
8
|
-
import AntDesignIcon from 'react-native-vector-icons/AntDesign'
|
|
9
8
|
import NavBar from '../NavBar'
|
|
10
9
|
|
|
11
10
|
import {
|
|
12
|
-
Content
|
|
11
|
+
Content,
|
|
12
|
+
Container
|
|
13
13
|
} from './styles'
|
|
14
14
|
|
|
15
15
|
export const HelpOrder = (props: HelpOrderParams) => {
|
|
@@ -20,15 +20,6 @@ export const HelpOrder = (props: HelpOrderParams) => {
|
|
|
20
20
|
const theme = useTheme()
|
|
21
21
|
|
|
22
22
|
const styles = StyleSheet.create({
|
|
23
|
-
btnBackArrow: {
|
|
24
|
-
borderWidth: 0,
|
|
25
|
-
backgroundColor: theme.colors.white,
|
|
26
|
-
borderColor: theme.colors.white,
|
|
27
|
-
shadowColor: theme.colors.white,
|
|
28
|
-
display: 'flex',
|
|
29
|
-
justifyContent: 'flex-start',
|
|
30
|
-
paddingLeft: 0,
|
|
31
|
-
},
|
|
32
23
|
imageStyle: {
|
|
33
24
|
width: '100%',
|
|
34
25
|
height: 120
|
|
@@ -42,7 +33,7 @@ export const HelpOrder = (props: HelpOrderParams) => {
|
|
|
42
33
|
const goToBack = () => navigation?.canGoBack() && navigation.goBack()
|
|
43
34
|
|
|
44
35
|
return (
|
|
45
|
-
|
|
36
|
+
<Container>
|
|
46
37
|
<NavBar
|
|
47
38
|
title={t('HELP_WITH_ORDER', 'Help with an order')}
|
|
48
39
|
onActionLeft={goToBack}
|
|
@@ -75,6 +66,6 @@ export const HelpOrder = (props: HelpOrderParams) => {
|
|
|
75
66
|
style={styles.videoStyle}
|
|
76
67
|
/>
|
|
77
68
|
</Content>
|
|
78
|
-
|
|
69
|
+
</Container>
|
|
79
70
|
)
|
|
80
71
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { useLanguage, useOrder } from 'ordering-components/native';
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { useLanguage, useOrder, useConfig } from 'ordering-components/native';
|
|
3
3
|
import { useTheme } from 'styled-components/native';
|
|
4
4
|
import { StyleSheet, View } from 'react-native';
|
|
5
5
|
import { OButton, OIcon, OText } from '../shared';
|
|
@@ -8,12 +8,21 @@ import { TouchableOpacity } from 'react-native-gesture-handler';
|
|
|
8
8
|
import { useWindowDimensions, Platform } from 'react-native';
|
|
9
9
|
|
|
10
10
|
export const Home = (props: any) => {
|
|
11
|
-
const { onNavigationRedirect } = props;
|
|
11
|
+
const { onNavigationRedirect, businessSlug } = props;
|
|
12
12
|
const { width, height } = useWindowDimensions();
|
|
13
13
|
const [, t] = useLanguage();
|
|
14
14
|
const [orderState] = useOrder();
|
|
15
|
+
const [{ configs }] = useConfig()
|
|
15
16
|
|
|
16
17
|
const theme = useTheme();
|
|
18
|
+
const unaddressedTypes = configs?.unaddressed_order_types_allowed?.value.split('|').map((value: any) => Number(value)) || []
|
|
19
|
+
const isAllowUnaddressOrderType = unaddressedTypes.includes(orderState?.options?.type)
|
|
20
|
+
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (isAllowUnaddressOrderType) {
|
|
23
|
+
onNavigationRedirect(!!businessSlug ? 'Business' : 'BusinessList')
|
|
24
|
+
}
|
|
25
|
+
}, [isAllowUnaddressOrderType])
|
|
17
26
|
|
|
18
27
|
return (
|
|
19
28
|
<View style={styles.container}>
|
|
@@ -60,7 +69,7 @@ export const Home = (props: any) => {
|
|
|
60
69
|
style={{ ...styles.textLink, marginTop: 12 }}
|
|
61
70
|
onPress={() =>
|
|
62
71
|
orderState?.options?.address?.address
|
|
63
|
-
? onNavigationRedirect('BusinessList', { isGuestUser: true })
|
|
72
|
+
? onNavigationRedirect(!!businessSlug ? 'Business' : 'BusinessList', { isGuestUser: true })
|
|
64
73
|
: onNavigationRedirect('AddressForm', { isGuestUser: true })
|
|
65
74
|
}>
|
|
66
75
|
<OText weight="normal" size={18} color={theme.colors.white}>
|
|
@@ -6,6 +6,7 @@ import { NotFoundSource } from '../NotFoundSource'
|
|
|
6
6
|
|
|
7
7
|
import { ItemWrap } from './styles'
|
|
8
8
|
import { OrdersOptionParams } from '../../types'
|
|
9
|
+
import { getOrderStatus } from '../../utils'
|
|
9
10
|
|
|
10
11
|
import {
|
|
11
12
|
Placeholder,
|
|
@@ -67,40 +68,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
67
68
|
return moment(dateStr).format('MMMM DD,YYYY - hh:mm a');
|
|
68
69
|
}
|
|
69
70
|
|
|
70
|
-
const getOrderStatus = (s: string) => {
|
|
71
|
-
const status = parseInt(s)
|
|
72
|
-
const orderStatus = [
|
|
73
|
-
{ key: 0, value: t('PENDING', 'Pending') },
|
|
74
|
-
{ key: 1, value: t('COMPLETED', 'Completed') },
|
|
75
|
-
{ key: 2, value: t('REJECTED', 'Rejected') },
|
|
76
|
-
{ key: 3, value: t('DRIVER_IN_BUSINESS', 'Driver in business') },
|
|
77
|
-
{ key: 4, value: t('PREPARATION_COMPLETED', 'Preparation Completed') },
|
|
78
|
-
{ key: 5, value: t('REJECTED_BY_BUSINESS', 'Rejected by business') },
|
|
79
|
-
{ key: 6, value: t('REJECTED_BY_DRIVER', 'Rejected by Driver') },
|
|
80
|
-
{ key: 7, value: t('ACCEPTED_BY_BUSINESS', 'Accepted by business') },
|
|
81
|
-
{ key: 8, value: t('ACCEPTED_BY_DRIVER', 'Accepted by driver') },
|
|
82
|
-
{ key: 9, value: t('PICK_UP_COMPLETED_BY_DRIVER', 'Pick up completed by driver') },
|
|
83
|
-
{ key: 10, value: t('PICK_UP_FAILED_BY_DRIVER', 'Pick up Failed by driver') },
|
|
84
|
-
{ key: 11, value: t('DELIVERY_COMPLETED_BY_DRIVER', 'Delivery completed by driver') },
|
|
85
|
-
{ key: 12, value: t('DELIVERY_FAILED_BY_DRIVER', 'Delivery Failed by driver') },
|
|
86
|
-
{ key: 13, value: t('PREORDER', 'PreOrder') },
|
|
87
|
-
{ key: 14, value: t('ORDER_NOT_READY', 'Order not ready') },
|
|
88
|
-
{ key: 15, value: t('ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER', 'Order picked up completed by customer') },
|
|
89
|
-
{ key: 16, value: t('CANCELLED_BY_CUSTOMER', 'Cancelled by customer') },
|
|
90
|
-
{ key: 17, value: t('ORDER_NOT_PICKEDUP_BY_CUSTOMER', 'Order not picked up by customer') },
|
|
91
|
-
{ key: 18, value: t('DRIVER_ALMOST_ARRIVED_TO_BUSINESS', 'Driver almost arrived to business') },
|
|
92
|
-
{ key: 19, value: t('DRIVER_ALMOST_ARRIVED_TO_CUSTOMER', 'Driver almost arrived to customer') },
|
|
93
|
-
{ key: 20, value: t('ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', 'Customer almost arrived to business') },
|
|
94
|
-
{ key: 21, value: t('ORDER_CUSTOMER_ARRIVED_BUSINESS', 'Customer arrived to business') },
|
|
95
|
-
{ key: 22, value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver') },
|
|
96
|
-
{ key: 23, value: t('ORDER_DRIVER_ON_WAY', 'Driver on way') }
|
|
97
|
-
]
|
|
98
|
-
|
|
99
|
-
const objectStatus = orderStatus.find((o) => o.key === status)
|
|
100
|
-
|
|
101
|
-
return objectStatus && objectStatus
|
|
102
|
-
}
|
|
103
|
-
|
|
104
71
|
return (
|
|
105
72
|
<>
|
|
106
73
|
{/* {(orders.length > 0) && (
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React, { useEffect, useState } from 'react'
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react'
|
|
2
2
|
import { formatSeconds } from '../../../utils'
|
|
3
|
-
import { StyleSheet, TouchableOpacity } from 'react-native';
|
|
3
|
+
import { StyleSheet, TouchableOpacity, View, Platform } from 'react-native';
|
|
4
4
|
import { useCountdownTimer } from '../../../../../../src/hooks/useCountdownTimer';
|
|
5
5
|
import { useLanguage } from 'ordering-components/native';
|
|
6
6
|
import { OTPContainer } from './styles';
|
|
7
|
-
import { OText, OButton } from '../../shared';
|
|
7
|
+
import { OText, OButton, OIcon } from '../../shared';
|
|
8
8
|
import OtpInputs from 'react-native-otp-inputs';
|
|
9
9
|
import { useTheme } from 'styled-components/native';
|
|
10
10
|
import { otpParams } from '../../../types'
|
|
@@ -16,7 +16,9 @@ export const Otp = (props: otpParams) => {
|
|
|
16
16
|
onSubmit,
|
|
17
17
|
handleLoginOtp,
|
|
18
18
|
setAlertState,
|
|
19
|
-
pinCount
|
|
19
|
+
pinCount,
|
|
20
|
+
otpError,
|
|
21
|
+
setOtpError
|
|
20
22
|
} = props
|
|
21
23
|
|
|
22
24
|
const theme = useTheme();
|
|
@@ -25,7 +27,7 @@ export const Otp = (props: otpParams) => {
|
|
|
25
27
|
600, willVerifyOtpState)
|
|
26
28
|
|
|
27
29
|
const [code, setCode] = useState('')
|
|
28
|
-
|
|
30
|
+
const inputRef = useRef<any>()
|
|
29
31
|
|
|
30
32
|
const handleOnSubmit = () => {
|
|
31
33
|
setAlertState({
|
|
@@ -36,6 +38,16 @@ export const Otp = (props: otpParams) => {
|
|
|
36
38
|
onSubmit()
|
|
37
39
|
}
|
|
38
40
|
|
|
41
|
+
const handleChangeCode = (code : string) => {
|
|
42
|
+
setCode(code)
|
|
43
|
+
setOtpError(null)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const handleCloseOtp = () => {
|
|
47
|
+
setWillVerifyOtpState(false)
|
|
48
|
+
setOtpError(null)
|
|
49
|
+
}
|
|
50
|
+
|
|
39
51
|
useEffect(() => {
|
|
40
52
|
if (otpLeftTime === 0) {
|
|
41
53
|
setAlertState({
|
|
@@ -49,6 +61,7 @@ export const Otp = (props: otpParams) => {
|
|
|
49
61
|
useEffect(() => {
|
|
50
62
|
if (code?.length === (pinCount || 6)) {
|
|
51
63
|
handleLoginOtp(code)
|
|
64
|
+
inputRef?.current?.reset()
|
|
52
65
|
}
|
|
53
66
|
}, [code])
|
|
54
67
|
|
|
@@ -59,11 +72,6 @@ export const Otp = (props: otpParams) => {
|
|
|
59
72
|
justifyContent: 'space-between',
|
|
60
73
|
marginVertical: 30
|
|
61
74
|
},
|
|
62
|
-
focusStyles: {
|
|
63
|
-
borderColor: theme.colors.primary,
|
|
64
|
-
borderWidth: 1,
|
|
65
|
-
borderRadius: 8
|
|
66
|
-
},
|
|
67
75
|
underlineStyleBase: {
|
|
68
76
|
width: 45,
|
|
69
77
|
height: 50,
|
|
@@ -78,29 +86,63 @@ export const Otp = (props: otpParams) => {
|
|
|
78
86
|
color: theme.colors.primary,
|
|
79
87
|
fontSize: 16
|
|
80
88
|
},
|
|
89
|
+
wrapperIcon: {
|
|
90
|
+
marginTop: Platform.OS === 'ios' ? 40 : 12,
|
|
91
|
+
marginBottom: 20,
|
|
92
|
+
alignItems: 'center',
|
|
93
|
+
justifyContent: 'center',
|
|
94
|
+
paddingRight: 35
|
|
95
|
+
},
|
|
96
|
+
closeContainer: {
|
|
97
|
+
width: '100%',
|
|
98
|
+
flexDirection: 'row',
|
|
99
|
+
}
|
|
81
100
|
});
|
|
82
101
|
|
|
83
102
|
return (
|
|
84
103
|
<>
|
|
85
104
|
<OTPContainer>
|
|
105
|
+
<View
|
|
106
|
+
style={loginStyle.closeContainer}>
|
|
107
|
+
<TouchableOpacity onPress={() => handleCloseOtp()} style={loginStyle.wrapperIcon}>
|
|
108
|
+
<OIcon
|
|
109
|
+
src={theme.images.general.close}
|
|
110
|
+
width={22}
|
|
111
|
+
/>
|
|
112
|
+
</TouchableOpacity>
|
|
113
|
+
<OText size={22} style={{
|
|
114
|
+
marginTop: 5
|
|
115
|
+
}}>
|
|
116
|
+
{t('ENTER_VERIFICATION_CODE', 'Enter verification code')}
|
|
117
|
+
</OText>
|
|
118
|
+
</View>
|
|
86
119
|
<OText size={24}>
|
|
87
120
|
{formatSeconds(otpLeftTime)}
|
|
88
121
|
</OText>
|
|
89
122
|
<OtpInputs
|
|
123
|
+
ref={inputRef}
|
|
90
124
|
autofillFromClipboard
|
|
91
125
|
numberOfInputs={pinCount || 6}
|
|
92
126
|
style={loginStyle.container}
|
|
93
127
|
inputStyles={loginStyle.underlineStyleBase}
|
|
94
|
-
|
|
95
|
-
handleChange={setCode}
|
|
128
|
+
handleChange={handleChangeCode}
|
|
96
129
|
/>
|
|
130
|
+
{!!otpError && (
|
|
131
|
+
<OText
|
|
132
|
+
color={theme?.colors?.error}
|
|
133
|
+
size={20}
|
|
134
|
+
mBottom={10}
|
|
135
|
+
>
|
|
136
|
+
{t(otpError, otpError)}
|
|
137
|
+
</OText>
|
|
138
|
+
)}
|
|
97
139
|
<TouchableOpacity onPress={() => handleOnSubmit()} disabled={otpLeftTime > 520}>
|
|
98
140
|
<OText size={16} mBottom={30} color={otpLeftTime > 520 ? theme.colors.disabled : theme.colors.primary}>
|
|
99
141
|
{t('RESEND_CODE', 'Resend code')}
|
|
100
142
|
</OText>
|
|
101
143
|
</TouchableOpacity>
|
|
102
144
|
<OButton
|
|
103
|
-
onClick={() =>
|
|
145
|
+
onClick={() => handleCloseOtp()}
|
|
104
146
|
bgColor={theme.colors.white}
|
|
105
147
|
borderColor={theme.colors.primary}
|
|
106
148
|
textStyle={{ color: theme.colors.primary }}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React, { useEffect, useState, useRef } from 'react';
|
|
2
|
-
import { StyleSheet, View, Keyboard,
|
|
2
|
+
import { StyleSheet, View, Keyboard, Modal } from 'react-native';
|
|
3
3
|
import Spinner from 'react-native-loading-spinner-overlay';
|
|
4
4
|
import { useForm, Controller } from 'react-hook-form';
|
|
5
5
|
import { PhoneInputNumber } from '../PhoneInputNumber';
|
|
6
6
|
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
|
|
7
7
|
import Recaptcha from 'react-native-recaptcha-that-works'
|
|
8
8
|
import ReCaptcha from '@fatnlazycat/react-native-recaptcha-v3'
|
|
9
|
+
import ReactNativeHapticFeedback from "react-native-haptic-feedback";
|
|
9
10
|
|
|
10
11
|
import {
|
|
11
12
|
LoginForm as LoginFormController,
|
|
@@ -72,6 +73,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
72
73
|
generateOtpCode,
|
|
73
74
|
useLoginOtpEmail,
|
|
74
75
|
useLoginOtpCellphone,
|
|
76
|
+
isGuest
|
|
75
77
|
} = props;
|
|
76
78
|
|
|
77
79
|
const [, { showToast }] = useToast();
|
|
@@ -95,6 +97,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
95
97
|
const [recaptchaVerified, setRecaptchaVerified] = useState(false)
|
|
96
98
|
const [alertState, setAlertState] = useState({ open: false, title: '', content: [] })
|
|
97
99
|
const [tabLayouts, setTabLayouts] = useState<any>({})
|
|
100
|
+
const [otpError, setOtpError] = useState(null)
|
|
98
101
|
const tabsRef = useRef<any>(null)
|
|
99
102
|
const enabledPoweredByOrdering = configs?.powered_by_ordering_module?.value
|
|
100
103
|
const theme = useTheme();
|
|
@@ -160,12 +163,24 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
160
163
|
handleCategoryScroll(otpType ? `${val}_${otpType}` : val)
|
|
161
164
|
};
|
|
162
165
|
|
|
166
|
+
const vibrateApp = (impact?: string) => {
|
|
167
|
+
const options = {
|
|
168
|
+
enableVibrateFallback: true,
|
|
169
|
+
ignoreAndroidSystemSettings: false
|
|
170
|
+
};
|
|
171
|
+
ReactNativeHapticFeedback.trigger(impact || "impactLight", options);
|
|
172
|
+
}
|
|
173
|
+
|
|
163
174
|
const onSubmit = (values?: any) => {
|
|
164
175
|
Keyboard.dismiss();
|
|
165
176
|
if (loginTab === 'otp') {
|
|
166
177
|
if (phoneInputData.error && (loginTab !== 'otp' || (otpType === 'cellphone' && loginTab === 'otp'))) {
|
|
167
178
|
showToast(ToastType.Error, t('INVALID_PHONE_NUMBER', 'Invalid phone number'));
|
|
168
|
-
|
|
179
|
+
vibrateApp()
|
|
180
|
+
return
|
|
181
|
+
}
|
|
182
|
+
if (!values?.cellphone && otpType === 'cellphone') {
|
|
183
|
+
showToast(ToastType.Error, t('PHONE_NUMBER_REQUIRED', 'Phone number is required'));
|
|
169
184
|
return
|
|
170
185
|
}
|
|
171
186
|
if (loginTab === 'otp') {
|
|
@@ -178,7 +193,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
178
193
|
} else {
|
|
179
194
|
if (phoneInputData.error) {
|
|
180
195
|
showToast(ToastType.Error, phoneInputData.error);
|
|
181
|
-
|
|
196
|
+
vibrateApp()
|
|
182
197
|
return;
|
|
183
198
|
}
|
|
184
199
|
handleButtonLoginClick({
|
|
@@ -191,7 +206,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
191
206
|
const handleVerifyCodeClick = () => {
|
|
192
207
|
if (phoneInputData.error) {
|
|
193
208
|
showToast(ToastType.Error, phoneInputData.error);
|
|
194
|
-
|
|
209
|
+
vibrateApp()
|
|
195
210
|
return;
|
|
196
211
|
}
|
|
197
212
|
if (
|
|
@@ -206,7 +221,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
206
221
|
'The field Mobile phone is required.',
|
|
207
222
|
),
|
|
208
223
|
);
|
|
209
|
-
|
|
224
|
+
vibrateApp()
|
|
210
225
|
return;
|
|
211
226
|
}
|
|
212
227
|
handleSendVerifyCode && handleSendVerifyCode(phoneInputData.phone);
|
|
@@ -221,19 +236,19 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
221
236
|
};
|
|
222
237
|
|
|
223
238
|
const handleChangeInputEmail = (value: string, onChange: any) => {
|
|
224
|
-
onChange(value.toLowerCase().replace(/[&,()%";:ç?<>{}\\[\]\s]/g, ''));
|
|
239
|
+
onChange(value.toLowerCase().trim().replace(/[&,()%";:ç?<>{}\\[\]\s]/g, ''));
|
|
225
240
|
};
|
|
226
241
|
|
|
227
242
|
const handleOpenRecaptcha = () => {
|
|
228
243
|
setRecaptchaVerified(false)
|
|
229
244
|
if (!recaptchaConfig?.siteKey) {
|
|
230
245
|
showToast(ToastType.Error, t('NO_RECAPTCHA_SITE_KEY', 'The config doesn\'t have recaptcha site key'));
|
|
231
|
-
|
|
246
|
+
vibrateApp()
|
|
232
247
|
return
|
|
233
248
|
}
|
|
234
249
|
if (!recaptchaConfig?.baseUrl) {
|
|
235
250
|
showToast(ToastType.Error, t('NO_RECAPTCHA_BASE_URL', 'The config doesn\'t have recaptcha base url'));
|
|
236
|
-
|
|
251
|
+
vibrateApp()
|
|
237
252
|
return
|
|
238
253
|
}
|
|
239
254
|
|
|
@@ -250,9 +265,14 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
250
265
|
setOtpType(type)
|
|
251
266
|
}
|
|
252
267
|
|
|
253
|
-
const handleLoginOtp = (code: string) => {
|
|
254
|
-
|
|
255
|
-
|
|
268
|
+
const handleLoginOtp = async (code: string) => {
|
|
269
|
+
if (!code) return
|
|
270
|
+
const logged = await handleButtonLoginClick({ code })
|
|
271
|
+
if (logged) {
|
|
272
|
+
setWillVerifyOtpState(false)
|
|
273
|
+
} else {
|
|
274
|
+
setOtpError(t('OTP_CODE_INCORRECT', 'Otp code incorrect'))
|
|
275
|
+
}
|
|
256
276
|
}
|
|
257
277
|
|
|
258
278
|
const closeAlert = () => {
|
|
@@ -310,7 +330,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
310
330
|
baseUrl: configs?.security_recaptcha_base_url?.value || null
|
|
311
331
|
})
|
|
312
332
|
showToast(ToastType.Info, t('TRY_AGAIN', 'Please try again'))
|
|
313
|
-
|
|
333
|
+
vibrateApp()
|
|
314
334
|
return
|
|
315
335
|
}
|
|
316
336
|
formState.result?.result &&
|
|
@@ -320,7 +340,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
320
340
|
? formState.result?.result
|
|
321
341
|
: formState.result?.result[0],
|
|
322
342
|
);
|
|
323
|
-
formState.result?.result &&
|
|
343
|
+
formState.result?.result && vibrateApp()
|
|
324
344
|
}
|
|
325
345
|
}, [formState]);
|
|
326
346
|
|
|
@@ -332,7 +352,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
332
352
|
? verifyPhoneState?.result?.result
|
|
333
353
|
: verifyPhoneState?.result?.result[0];
|
|
334
354
|
verifyPhoneState.result?.result && showToast(ToastType.Error, message);
|
|
335
|
-
verifyPhoneState.result?.result &&
|
|
355
|
+
verifyPhoneState.result?.result && vibrateApp();
|
|
336
356
|
setIsLoadingVerifyModal(false);
|
|
337
357
|
return;
|
|
338
358
|
}
|
|
@@ -373,20 +393,24 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
373
393
|
}, [checkPhoneCodeState])
|
|
374
394
|
|
|
375
395
|
useEffect(() => {
|
|
376
|
-
if (!!Object.values(errors)?.length)
|
|
396
|
+
if (!!Object.values(errors)?.length) vibrateApp()
|
|
377
397
|
}, [errors])
|
|
378
398
|
|
|
379
399
|
return (
|
|
380
400
|
<Container>
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
401
|
+
{isGuest ? (
|
|
402
|
+
<OText style={{ textAlign: 'center', marginBottom: 10 }} size={18}>{t('LOGIN', 'Login')}</OText>
|
|
403
|
+
) : (
|
|
404
|
+
<NavBar
|
|
405
|
+
title={t('LOGIN', 'Login')}
|
|
406
|
+
titleAlign={'center'}
|
|
407
|
+
onActionLeft={() => navigation?.canGoBack() && navigation.goBack()}
|
|
408
|
+
showCall={false}
|
|
409
|
+
btnStyle={{ paddingLeft: 0 }}
|
|
410
|
+
titleWrapStyle={{ paddingHorizontal: 0 }}
|
|
411
|
+
titleStyle={{ marginRight: 0, marginLeft: 0 }}
|
|
412
|
+
/>
|
|
413
|
+
)}
|
|
390
414
|
<FormSide>
|
|
391
415
|
{(Number(useLoginByEmail) + Number(useLoginByCellphone) + Number(useLoginOtpEmail) + Number(useLoginOtpCellphone) > 1) && (
|
|
392
416
|
<LoginWith>
|
|
@@ -733,7 +757,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
733
757
|
{configs && Object.keys(configs).length > 0 ? (
|
|
734
758
|
(((configs?.facebook_login?.value === 'true' || configs?.facebook_login?.value === '1') && configs?.facebook_id?.value && facebookLoginEnabled) ||
|
|
735
759
|
((configs?.google_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null) && googleLoginEnabled) ||
|
|
736
|
-
((configs?.apple_login_client_id?.value !== '' && configs?.apple_login_client_id?.value !== null) && appleLoginEnabled)) &&
|
|
760
|
+
((configs?.apple_login_client_id?.value !== '' && configs?.apple_login_client_id?.value !== null) && appleLoginEnabled)) && !isGuest &&
|
|
737
761
|
(
|
|
738
762
|
<>
|
|
739
763
|
<View
|
|
@@ -761,7 +785,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
761
785
|
facebookLoginEnabled && (
|
|
762
786
|
<FacebookLogin
|
|
763
787
|
notificationState={notificationState}
|
|
764
|
-
handleErrors={(err: any) => { showToast(ToastType.Error, err),
|
|
788
|
+
handleErrors={(err: any) => { showToast(ToastType.Error, err), vibrateApp() }}
|
|
765
789
|
handleLoading={(val: boolean) => setIsFBLoading(val)}
|
|
766
790
|
handleSuccessFacebookLogin={handleSuccessFacebook}
|
|
767
791
|
/>
|
|
@@ -770,7 +794,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
770
794
|
<GoogleLogin
|
|
771
795
|
notificationState={notificationState}
|
|
772
796
|
webClientId={configs?.google_login_client_id?.value}
|
|
773
|
-
handleErrors={(err: any) => { showToast(ToastType.Error, err),
|
|
797
|
+
handleErrors={(err: any) => { showToast(ToastType.Error, err), vibrateApp() }}
|
|
774
798
|
handleLoading={(val: boolean) => setIsFBLoading(val)}
|
|
775
799
|
handleSuccessGoogleLogin={handleSuccessFacebook}
|
|
776
800
|
/>
|
|
@@ -778,7 +802,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
778
802
|
{(configs?.apple_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null) && appleLoginEnabled && (
|
|
779
803
|
<AppleLogin
|
|
780
804
|
notificationState={notificationState}
|
|
781
|
-
handleErrors={(err: any) => { showToast(ToastType.Error, err),
|
|
805
|
+
handleErrors={(err: any) => { showToast(ToastType.Error, err), vibrateApp() }}
|
|
782
806
|
handleLoading={(val: boolean) => setIsFBLoading(val)}
|
|
783
807
|
handleSuccessAppleLogin={handleSuccessFacebook}
|
|
784
808
|
/>
|
|
@@ -824,20 +848,21 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
824
848
|
onClose={() => setIsModalVisible(false)}
|
|
825
849
|
/>
|
|
826
850
|
</OModal>
|
|
827
|
-
<
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
title={t('ENTER_VERIFICATION_CODE', 'Enter verification code')}
|
|
851
|
+
<Modal
|
|
852
|
+
visible={willVerifyOtpState}
|
|
853
|
+
onDismiss={() => setWillVerifyOtpState(false)}
|
|
854
|
+
animationType='slide'
|
|
832
855
|
>
|
|
833
856
|
<Otp
|
|
834
857
|
willVerifyOtpState={willVerifyOtpState}
|
|
858
|
+
otpError={otpError}
|
|
859
|
+
setOtpError={setOtpError}
|
|
835
860
|
setWillVerifyOtpState={setWillVerifyOtpState}
|
|
836
861
|
handleLoginOtp={handleLoginOtp}
|
|
837
862
|
onSubmit={onSubmit}
|
|
838
863
|
setAlertState={setAlertState}
|
|
839
864
|
/>
|
|
840
|
-
</
|
|
865
|
+
</Modal>
|
|
841
866
|
<Alert
|
|
842
867
|
open={alertState.open}
|
|
843
868
|
content={alertState.content}
|