ordering-ui-react-native 0.21.27 → 0.21.29
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 +1 -1
- package/themes/business/src/components/NewOrderNotification/index.tsx +80 -79
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +9 -7
- package/themes/business/src/components/OrdersOption/index.tsx +83 -1
- package/themes/original/src/components/Checkout/index.tsx +4 -4
- package/themes/original/src/components/OrderDetails/index.tsx +17 -22
- package/themes/original/src/components/OrderProgress/index.tsx +5 -3
- package/themes/original/src/components/ProductForm/index.tsx +1 -1
- package/themes/original/src/utils/index.tsx +113 -0
- package/src/navigators/BottomNavigator.tsx +0 -117
- package/src/navigators/CheckoutNavigator.tsx +0 -66
- package/src/navigators/HomeNavigator.tsx +0 -202
- package/src/navigators/NavigationRef.tsx +0 -7
- package/src/navigators/RootNavigator.tsx +0 -269
- package/src/pages/Account.tsx +0 -34
- package/src/pages/AddressForm.tsx +0 -62
- package/src/pages/AddressList.tsx +0 -24
- package/src/pages/BusinessProductsList.tsx +0 -81
- package/src/pages/BusinessesListing.tsx +0 -43
- package/src/pages/CartList.tsx +0 -49
- package/src/pages/Checkout.tsx +0 -101
- package/src/pages/ForgotPassword.tsx +0 -24
- package/src/pages/Help.tsx +0 -23
- package/src/pages/HelpAccountAndPayment.tsx +0 -23
- package/src/pages/HelpGuide.tsx +0 -23
- package/src/pages/HelpOrder.tsx +0 -23
- package/src/pages/Home.tsx +0 -36
- package/src/pages/IntroductoryTutorial.tsx +0 -170
- package/src/pages/Login.tsx +0 -47
- package/src/pages/MomentOption.tsx +0 -30
- package/src/pages/MultiCheckout.tsx +0 -31
- package/src/pages/MultiOrdersDetails.tsx +0 -27
- package/src/pages/MyOrders.tsx +0 -40
- package/src/pages/NetworkError.tsx +0 -24
- package/src/pages/NotFound.tsx +0 -22
- package/src/pages/OrderDetails.tsx +0 -25
- package/src/pages/ProductDetails.tsx +0 -55
- package/src/pages/Profile.tsx +0 -36
- package/src/pages/ReviewDriver.tsx +0 -30
- package/src/pages/ReviewOrder.tsx +0 -32
- package/src/pages/ReviewProducts.tsx +0 -30
- package/src/pages/Sessions.tsx +0 -22
- package/src/pages/Signup.tsx +0 -53
- package/src/pages/SpinnerLoader.tsx +0 -10
- package/src/pages/Splash.tsx +0 -21
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useState } from 'react'
|
|
2
|
-
import styled from 'styled-components/native'
|
|
3
|
-
import { Platform } from 'react-native';
|
|
4
|
-
import { AddressForm as AddressFormController } from '../components/AddressForm'
|
|
5
|
-
import { SafeAreaContainer } from '../layouts/SafeAreaContainer'
|
|
6
|
-
import { _retrieveStoreData } from '../providers/StoreUtil';
|
|
7
|
-
|
|
8
|
-
const KeyboardView = styled.KeyboardAvoidingView`
|
|
9
|
-
flex-grow: 1;
|
|
10
|
-
flex-shrink: 1;
|
|
11
|
-
`;
|
|
12
|
-
|
|
13
|
-
const AddressForm = ({ navigation, route }: any) => {
|
|
14
|
-
const AddressFormProps = {
|
|
15
|
-
navigation,
|
|
16
|
-
route,
|
|
17
|
-
address: route?.params?.address,
|
|
18
|
-
addressId: route?.params?.address?.id,
|
|
19
|
-
isEditing: route?.params?.isEditing,
|
|
20
|
-
addressesList: route?.params?.addressList,
|
|
21
|
-
onSaveAddress: route?.params?.onSaveAddress,
|
|
22
|
-
isSelectedAfterAdd: true,
|
|
23
|
-
isGuestUser: route?.params?.isGuestUser,
|
|
24
|
-
isFromBusinesses: route?.params?.isFromBusinesses,
|
|
25
|
-
isFromProductsList: route?.params?.isFromProductsList,
|
|
26
|
-
isFromCheckout: route?.params?.isFromCheckout,
|
|
27
|
-
hasAddressDefault: route?.params?.hasAddressDefault,
|
|
28
|
-
afterSignup: route?.params?.afterSignup,
|
|
29
|
-
businessId: route.params?.businessId,
|
|
30
|
-
categoryId: route.params?.categoryId,
|
|
31
|
-
productId: route.params?.productId,
|
|
32
|
-
store: route.params?.store
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const [isGuestFromStore, setIsGuestFromStore] = useState(false)
|
|
36
|
-
|
|
37
|
-
const getDataFromStorage = async () => {
|
|
38
|
-
const value = await _retrieveStoreData('isGuestUser');
|
|
39
|
-
setIsGuestFromStore(value);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
useEffect(() => {
|
|
43
|
-
getDataFromStorage()
|
|
44
|
-
}, [])
|
|
45
|
-
|
|
46
|
-
return (
|
|
47
|
-
<SafeAreaContainer>
|
|
48
|
-
<KeyboardView
|
|
49
|
-
enabled
|
|
50
|
-
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
|
|
51
|
-
>
|
|
52
|
-
<AddressFormController
|
|
53
|
-
{ ...AddressFormProps }
|
|
54
|
-
isGuestFromStore={isGuestFromStore}
|
|
55
|
-
useValidationFileds
|
|
56
|
-
/>
|
|
57
|
-
</KeyboardView>
|
|
58
|
-
</SafeAreaContainer>
|
|
59
|
-
)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export default AddressForm
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { AddressList as AddressListController } from '../components/AddressList'
|
|
3
|
-
import { useSession } from 'ordering-components/native'
|
|
4
|
-
|
|
5
|
-
const AddressList = ({ route, navigation }: any) => {
|
|
6
|
-
const [{ user }] = useSession()
|
|
7
|
-
const addressListProps = {
|
|
8
|
-
navigation,
|
|
9
|
-
route,
|
|
10
|
-
userId: user?.id,
|
|
11
|
-
isGoBack: route?.params?.isGoBack,
|
|
12
|
-
isFromBusinesses: route?.params?.isFromBusinesses,
|
|
13
|
-
isFromProductsList: route?.params?.isFromProductsList,
|
|
14
|
-
isFromCheckout: route?.params?.isFromCheckout,
|
|
15
|
-
isFromProfile: route?.params?.isFromProfile,
|
|
16
|
-
afterSignup: route?.params?.afterSignup
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return (
|
|
20
|
-
<AddressListController {...addressListProps} />
|
|
21
|
-
)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export default AddressList
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { useApi } from 'ordering-components/native'
|
|
3
|
-
import { BusinessProductsListing as BusinessProductsListController } from '../components/BusinessProductsListing'
|
|
4
|
-
import styled from 'styled-components/native'
|
|
5
|
-
import { useTheme } from 'styled-components/native'
|
|
6
|
-
|
|
7
|
-
const BusinessProductsList = (props: any) => {
|
|
8
|
-
const theme = useTheme()
|
|
9
|
-
const [ordering] = useApi()
|
|
10
|
-
|
|
11
|
-
const store = props.route.params?.store || props.route.params?.productLogin?.slug
|
|
12
|
-
const header = props.route.params?.header
|
|
13
|
-
const logo = props.route.params?.logo
|
|
14
|
-
const product = props.route.params?.productLogin
|
|
15
|
-
const businessId = props.route.params?.businessId
|
|
16
|
-
const categoryId = props.route.params?.categoryId
|
|
17
|
-
const productId = props.route.params?.productId
|
|
18
|
-
|
|
19
|
-
const businessProductsProps = {
|
|
20
|
-
...props,
|
|
21
|
-
ordering,
|
|
22
|
-
isSearchByName: true,
|
|
23
|
-
isSearchByDescription: true,
|
|
24
|
-
slug: store,
|
|
25
|
-
businessProps: [
|
|
26
|
-
'id',
|
|
27
|
-
'name',
|
|
28
|
-
'header',
|
|
29
|
-
'logo',
|
|
30
|
-
'name',
|
|
31
|
-
'open',
|
|
32
|
-
'about',
|
|
33
|
-
'description',
|
|
34
|
-
'ribbon',
|
|
35
|
-
'address',
|
|
36
|
-
'location',
|
|
37
|
-
'schedule',
|
|
38
|
-
'service_fee',
|
|
39
|
-
'delivery_price',
|
|
40
|
-
'distance',
|
|
41
|
-
'delivery_time',
|
|
42
|
-
'gallery',
|
|
43
|
-
'pickup_time',
|
|
44
|
-
'reviews',
|
|
45
|
-
'featured',
|
|
46
|
-
'offers',
|
|
47
|
-
'food',
|
|
48
|
-
'laundry',
|
|
49
|
-
'alcohol',
|
|
50
|
-
'groceries',
|
|
51
|
-
'slug',
|
|
52
|
-
'products',
|
|
53
|
-
'zones',
|
|
54
|
-
'timezone'
|
|
55
|
-
],
|
|
56
|
-
handleSearchRedirect: () => {
|
|
57
|
-
props.navigation.navigate('BusinessList')
|
|
58
|
-
},
|
|
59
|
-
onProductRedirect: ({ slug, category, product }: any) => {},
|
|
60
|
-
onCheckoutRedirect: (cartUuid: any) => {},
|
|
61
|
-
logo,
|
|
62
|
-
header,
|
|
63
|
-
product,
|
|
64
|
-
productId,
|
|
65
|
-
categoryId,
|
|
66
|
-
businessId
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const BusinessProductsListView = styled.SafeAreaView`
|
|
70
|
-
flex: 1;
|
|
71
|
-
background-color: ${theme.colors.backgroundPage};
|
|
72
|
-
`
|
|
73
|
-
|
|
74
|
-
return (
|
|
75
|
-
<BusinessProductsListView>
|
|
76
|
-
<BusinessProductsListController {...businessProductsProps} />
|
|
77
|
-
</BusinessProductsListView>
|
|
78
|
-
)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export default BusinessProductsList
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import React, { useEffect } from 'react'
|
|
2
|
-
import { BusinessesListing as BusinessListingController } from '../components/BusinessesListing'
|
|
3
|
-
import styled from 'styled-components/native'
|
|
4
|
-
import { useTheme } from 'styled-components/native'
|
|
5
|
-
|
|
6
|
-
const BusinessesListing = (props: any) => {
|
|
7
|
-
const theme = useTheme()
|
|
8
|
-
const businessId = props.route.params?.businessId
|
|
9
|
-
const categoryId = props.route.params?.categoryId
|
|
10
|
-
const productId = props.route.params?.productId
|
|
11
|
-
const store = props.route.params?.store
|
|
12
|
-
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
if (store) {
|
|
15
|
-
props.navigation.navigate('Business', { store, businessId, categoryId, productId })
|
|
16
|
-
return
|
|
17
|
-
}
|
|
18
|
-
}, [businessId, categoryId, productId, store])
|
|
19
|
-
|
|
20
|
-
const BusinessesListingProps = {
|
|
21
|
-
...props,
|
|
22
|
-
navigation: props?.navigation,
|
|
23
|
-
isSearchByName: true,
|
|
24
|
-
isSearchByDescription: true,
|
|
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'],
|
|
26
|
-
onBusinessClick: (business: any) => {
|
|
27
|
-
props.navigation.navigate('Business', { store: store || business.slug, header: business.header, logo: business.logo })
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const BusinessListView = styled.SafeAreaView`
|
|
32
|
-
flex: 1;
|
|
33
|
-
background-color: ${theme.colors.backgroundPage};
|
|
34
|
-
`
|
|
35
|
-
|
|
36
|
-
return (
|
|
37
|
-
<BusinessListView>
|
|
38
|
-
<BusinessListingController {...BusinessesListingProps} />
|
|
39
|
-
</BusinessListView>
|
|
40
|
-
)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export default BusinessesListing
|
package/src/pages/CartList.tsx
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { useFocusEffect } from '@react-navigation/native'
|
|
3
|
-
import styled from 'styled-components/native';
|
|
4
|
-
import { useOrder } from 'ordering-components/native';
|
|
5
|
-
import { Platform } from 'react-native';
|
|
6
|
-
import { CartContent } from '../components/CartContent';
|
|
7
|
-
import { Container } from '../layouts/Container'
|
|
8
|
-
|
|
9
|
-
const KeyboardView = styled.KeyboardAvoidingView`
|
|
10
|
-
flex-grow: 1;
|
|
11
|
-
`;
|
|
12
|
-
|
|
13
|
-
interface Props {
|
|
14
|
-
navigation: any;
|
|
15
|
-
route: any;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const CartList = (props: Props) => {
|
|
19
|
-
const [{ carts }, { refreshOrderOptions }] = useOrder();
|
|
20
|
-
const cartsList = (carts && Object.values(carts).filter((cart: any) => cart.products.length > 0)) || []
|
|
21
|
-
|
|
22
|
-
useFocusEffect(
|
|
23
|
-
React.useCallback(() => {
|
|
24
|
-
refreshOrderOptions()
|
|
25
|
-
}, [props.navigation])
|
|
26
|
-
)
|
|
27
|
-
|
|
28
|
-
const cartProps = {
|
|
29
|
-
...props,
|
|
30
|
-
carts: cartsList,
|
|
31
|
-
isOrderStateCarts: !!carts,
|
|
32
|
-
onNavigationRedirect: (route: string, params: any) => props.navigation.navigate(route, params)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return (
|
|
36
|
-
<>
|
|
37
|
-
<KeyboardView
|
|
38
|
-
enabled
|
|
39
|
-
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
|
|
40
|
-
>
|
|
41
|
-
<Container>
|
|
42
|
-
<CartContent {...cartProps} />
|
|
43
|
-
</Container>
|
|
44
|
-
</KeyboardView>
|
|
45
|
-
</>
|
|
46
|
-
);
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
export default CartList;
|
package/src/pages/Checkout.tsx
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Platform } from 'react-native';
|
|
3
|
-
import { Checkout } from '../components/Checkout';
|
|
4
|
-
|
|
5
|
-
import { initStripe, useConfirmPayment } from '@stripe/stripe-react-native';
|
|
6
|
-
import styled from 'styled-components/native';
|
|
7
|
-
|
|
8
|
-
import { useOrder, useLanguage, ToastType, useToast } from 'ordering-components/native';
|
|
9
|
-
|
|
10
|
-
const stripePaymentOptions = ['stripe', 'stripe_direct', 'stripe_connect', 'google_pay', 'apple_pay'];
|
|
11
|
-
|
|
12
|
-
const KeyboardView = styled.KeyboardAvoidingView`
|
|
13
|
-
flex: 1;
|
|
14
|
-
`;
|
|
15
|
-
|
|
16
|
-
export const CheckoutPage = (props: any) => {
|
|
17
|
-
const [, { showToast }] = useToast();
|
|
18
|
-
const [, t] = useLanguage();
|
|
19
|
-
const [orderState, { confirmCart, changeMoment }] = useOrder();
|
|
20
|
-
const { confirmPayment, loading: confirmPaymentLoading } = useConfirmPayment();
|
|
21
|
-
const checkoutProps = {
|
|
22
|
-
...props,
|
|
23
|
-
cartUuid: props?.cartUuid || props.route?.params?.cartUuid,
|
|
24
|
-
businessLogo: props.route?.params?.businessLogo,
|
|
25
|
-
businessName: props.route?.params?.businessName,
|
|
26
|
-
cartTotal: props.route?.params?.cartTotal,
|
|
27
|
-
stripePaymentOptions,
|
|
28
|
-
onPlaceOrderClick: async (data: any, paymethod: any, cart: any) => {
|
|
29
|
-
if (cart?.order?.uuid) {
|
|
30
|
-
if (orderState?.options?.moment) {
|
|
31
|
-
changeMoment(null);
|
|
32
|
-
}
|
|
33
|
-
props.navigation.navigate('OrderDetails', { orderId: cart.order?.uuid, isFromCheckout: true });
|
|
34
|
-
return
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (cart?.status === 2 && stripePaymentOptions.includes(paymethod?.gateway)) {
|
|
38
|
-
const clientSecret = cart?.paymethod_data?.result?.client_secret;
|
|
39
|
-
const paymentMethodId = paymethod?.gateway === 'stripe_connect'
|
|
40
|
-
? cart.paymethod_data?.result?.payment_method_id
|
|
41
|
-
: cart.paymethod_data?.data?.source_id
|
|
42
|
-
const stripeAccountId = paymethod?.paymethod?.credentials?.user;
|
|
43
|
-
const publicKey = paymethod?.paymethod?.credentials?.publishable;
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
const stripeParams = stripeAccountId
|
|
47
|
-
? { publishableKey: publicKey, stripeAccountId: stripeAccountId}
|
|
48
|
-
: { publishableKey: publicKey };
|
|
49
|
-
initStripe(stripeParams);
|
|
50
|
-
} catch (error: any) {
|
|
51
|
-
showToast(ToastType.Error, error?.toString() || error.message)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
try {
|
|
55
|
-
const { paymentIntent, error } = await confirmPayment(clientSecret, {
|
|
56
|
-
type: 'Card',
|
|
57
|
-
paymentMethodId
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
if (error) {
|
|
61
|
-
showToast(ToastType.Error, error.message)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
props.handleIsRedirect && props.handleIsRedirect(true);
|
|
65
|
-
try {
|
|
66
|
-
const confirmCartRes = await confirmCart(cart?.uuid)
|
|
67
|
-
if (confirmCartRes.error) {
|
|
68
|
-
showToast(ToastType.Error, confirmCartRes.error.message)
|
|
69
|
-
}
|
|
70
|
-
if (confirmCartRes.result.order?.uuid) {
|
|
71
|
-
props.navigation.navigate('OrderDetails', { orderId: confirmCartRes.result.order.uuid, isFromCheckout: true })
|
|
72
|
-
return
|
|
73
|
-
}
|
|
74
|
-
} catch (error: any) {
|
|
75
|
-
showToast(ToastType.Error, error?.toString() || error.message)
|
|
76
|
-
}
|
|
77
|
-
return
|
|
78
|
-
} catch (error: any) {
|
|
79
|
-
const e = error?.message?.toLowerCase() === 'failed'
|
|
80
|
-
? t('FAILED_PAYMENT', 'The payment has failed')
|
|
81
|
-
: error?.toString() || error.message
|
|
82
|
-
showToast(ToastType.Error, e)
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
onNavigationRedirect: (page: string, params: any) => {
|
|
87
|
-
if (!page) return
|
|
88
|
-
props.navigation.navigate(page, params);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return (
|
|
92
|
-
<KeyboardView
|
|
93
|
-
enabled
|
|
94
|
-
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
|
|
95
|
-
>
|
|
96
|
-
<Checkout {...checkoutProps} />
|
|
97
|
-
</KeyboardView>
|
|
98
|
-
)
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export default CheckoutPage;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Platform } from 'react-native';
|
|
3
|
-
import styled from 'styled-components/native';
|
|
4
|
-
import { ForgotPasswordForm } from '../components/ForgotPasswordForm';
|
|
5
|
-
import { Container } from '../layouts/Container';
|
|
6
|
-
|
|
7
|
-
const KeyboardView = styled.KeyboardAvoidingView`
|
|
8
|
-
flex: 1;
|
|
9
|
-
`;
|
|
10
|
-
|
|
11
|
-
export const ForgotPassword = (props: any) => {
|
|
12
|
-
return (
|
|
13
|
-
<KeyboardView
|
|
14
|
-
enabled
|
|
15
|
-
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
|
|
16
|
-
>
|
|
17
|
-
<Container>
|
|
18
|
-
<ForgotPasswordForm {...props} />
|
|
19
|
-
</Container>
|
|
20
|
-
</KeyboardView>
|
|
21
|
-
)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export default ForgotPassword;
|
package/src/pages/Help.tsx
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { Container } from '../layouts/Container'
|
|
3
|
-
import { Help as HelpController } from '../components/Help'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
navigation: any;
|
|
8
|
-
route: any;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const Help = (props: Props) => {
|
|
12
|
-
const helpProps = {
|
|
13
|
-
...props
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<Container>
|
|
18
|
-
<HelpController {...helpProps} />
|
|
19
|
-
</Container>
|
|
20
|
-
)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export default Help
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { Container } from '../layouts/Container'
|
|
3
|
-
import { HelpAccountAndPayment as HelpAccountAndPaymentController } from '../components/HelpAccountAndPayment'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
navigation: any;
|
|
8
|
-
route: any;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const HelpAccountAndPayment = (props: Props) => {
|
|
12
|
-
const helpAccountAndPaymentProps = {
|
|
13
|
-
...props
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<Container>
|
|
18
|
-
<HelpAccountAndPaymentController {...helpAccountAndPaymentProps} />
|
|
19
|
-
</Container>
|
|
20
|
-
)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export default HelpAccountAndPayment
|
package/src/pages/HelpGuide.tsx
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { Container } from '../layouts/Container'
|
|
3
|
-
import { HelpGuide as HelpGuideController } from '../components/HelpGuide'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
navigation: any;
|
|
8
|
-
route: any;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const HelpGuide = (props: Props) => {
|
|
12
|
-
const helpGuideProps = {
|
|
13
|
-
...props
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<Container>
|
|
18
|
-
<HelpGuideController {...helpGuideProps} />
|
|
19
|
-
</Container>
|
|
20
|
-
)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export default HelpGuide
|
package/src/pages/HelpOrder.tsx
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { Container } from '../layouts/Container'
|
|
3
|
-
import { HelpOrder as HelpOrderController } from '../components/HelpOrder'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
navigation: any;
|
|
8
|
-
route: any;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const HelpOrder = (props: Props) => {
|
|
12
|
-
const helpOrderProps = {
|
|
13
|
-
...props
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<Container>
|
|
18
|
-
<HelpOrderController {...helpOrderProps} />
|
|
19
|
-
</Container>
|
|
20
|
-
)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export default HelpOrder
|
package/src/pages/Home.tsx
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { StyleSheet, SafeAreaView } from 'react-native';
|
|
3
|
-
import { Home as HomePage } from '../components/Home';
|
|
4
|
-
import { useTheme } from 'styled-components/native';
|
|
5
|
-
|
|
6
|
-
export const Home = (props: any) => {
|
|
7
|
-
const theme = useTheme();
|
|
8
|
-
|
|
9
|
-
const homeProps = {
|
|
10
|
-
...props,
|
|
11
|
-
onNavigationRedirect: (page: string, params: any) => {
|
|
12
|
-
if (!page) return
|
|
13
|
-
props.navigation.navigate(page, params);
|
|
14
|
-
},
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const styles = StyleSheet.create({
|
|
18
|
-
wrapper: {
|
|
19
|
-
flex: 1,
|
|
20
|
-
display: 'flex',
|
|
21
|
-
flexDirection: 'column',
|
|
22
|
-
justifyContent: 'center',
|
|
23
|
-
alignItems: 'center',
|
|
24
|
-
height: '100%',
|
|
25
|
-
backgroundColor: theme.colors.backgroundPage,
|
|
26
|
-
}
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
return (
|
|
30
|
-
<SafeAreaView style={styles.wrapper}>
|
|
31
|
-
<HomePage {...homeProps} />
|
|
32
|
-
</SafeAreaView>
|
|
33
|
-
);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export default Home;
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {View, Text, Image, StyleSheet, StatusBar} from 'react-native';
|
|
3
|
-
import AppIntroSlider from 'react-native-app-intro-slider';
|
|
4
|
-
import { _setStoreData } from '../providers/StoreUtil';
|
|
5
|
-
import { useTheme } from 'styled-components/native';
|
|
6
|
-
import { useLanguage } from 'ordering-components/native';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const IntroductoryTutorial = ({ navigation, route }: any) => {
|
|
10
|
-
const [, t] = useLanguage();
|
|
11
|
-
const theme = useTheme()
|
|
12
|
-
const setTutorial = route?.params?.setTutorial
|
|
13
|
-
const data = [
|
|
14
|
-
{
|
|
15
|
-
title: t('DELIVERY_BY_ADDRESS', 'Delivery by Address'),
|
|
16
|
-
text: t('DELIVERY_BY_ADDRESS_INST', 'DELIVERY_BY_ADDRESS_INST'),
|
|
17
|
-
image: theme.images.tutorials.slide1,
|
|
18
|
-
bg: theme.colors.primaryContrast
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
title: t('SELECT_A_BUSINESS', 'SELECT_A_BUSINESS'),
|
|
22
|
-
text: t('SELECT_A_BUSINESS_INST', 'SELECT_A_BUSINESS_INST'),
|
|
23
|
-
image: theme.images.tutorials.slide2,
|
|
24
|
-
bg: theme.colors.primaryContrast
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
title: t('BUSINESS_MENU', 'BUSINESS_MENU'),
|
|
28
|
-
text: t('BUSINESS_MENU_INST', 'BUSINESS_MENU_INST'),
|
|
29
|
-
image: theme.images.tutorials.slide3,
|
|
30
|
-
bg: theme.colors.primaryContrast
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
title: t('PRODUCT_LIST', 'PRODUCT_LIST'),
|
|
34
|
-
text: t('PRODUCT_LIST_INST', 'PRODUCT_LIST_INST'),
|
|
35
|
-
image: theme.images.tutorials.slide4,
|
|
36
|
-
bg: theme.colors.primaryContrast
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
title: t('CHECKOUT_SCREEN', 'CHECKOUT_SCREEN'),
|
|
40
|
-
text: t('CHECKOUT_SCREEN_INST', 'CHECKOUT_SCREEN_INST'),
|
|
41
|
-
image: theme.images.tutorials.slide5,
|
|
42
|
-
bg: theme.colors.primaryContrast
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
title: t('TUTORIAL_ORDER_COMPLETED', 'TUTORIAL_ORDER_COMPLETED'),
|
|
46
|
-
text: t('TUTORIAL_ORDER_COMPLETED_INST', 'TUTORIAL_ORDER_COMPLETED_INST'),
|
|
47
|
-
image: theme.images.tutorials.slide6,
|
|
48
|
-
bg: theme.colors.primaryContrast
|
|
49
|
-
},
|
|
50
|
-
];
|
|
51
|
-
type Item = typeof data[0];
|
|
52
|
-
const styles = StyleSheet.create({
|
|
53
|
-
slide: {
|
|
54
|
-
flex: 1,
|
|
55
|
-
alignItems: 'center',
|
|
56
|
-
justifyContent: 'center',
|
|
57
|
-
paddingBottom: 80,
|
|
58
|
-
},
|
|
59
|
-
image: {
|
|
60
|
-
flex: 0,
|
|
61
|
-
top: 30,
|
|
62
|
-
width: '100%',
|
|
63
|
-
height: '75%',
|
|
64
|
-
resizeMode: 'contain',
|
|
65
|
-
},
|
|
66
|
-
text: {
|
|
67
|
-
color: theme.colors.colorTextTutorial,
|
|
68
|
-
textAlign: 'center',
|
|
69
|
-
fontSize: 17,
|
|
70
|
-
paddingRight: '2%',
|
|
71
|
-
paddingLeft: '2%',
|
|
72
|
-
top: '4%',
|
|
73
|
-
},
|
|
74
|
-
title: {
|
|
75
|
-
top: '2%',
|
|
76
|
-
fontSize: 25,
|
|
77
|
-
color: theme.colors.colorTextTutorial,
|
|
78
|
-
textAlign: 'center',
|
|
79
|
-
},
|
|
80
|
-
buttonCircle: {
|
|
81
|
-
top: '15%',
|
|
82
|
-
width: 50,
|
|
83
|
-
height: 40,
|
|
84
|
-
justifyContent: 'center',
|
|
85
|
-
alignItems: 'center',
|
|
86
|
-
position:'relative'
|
|
87
|
-
},
|
|
88
|
-
tutorialText: {
|
|
89
|
-
fontSize: 18,
|
|
90
|
-
fontWeight: '300',
|
|
91
|
-
color: theme.colors.primary
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
const _renderItem = ({item}: {item: Item}) => {
|
|
96
|
-
return (
|
|
97
|
-
<View
|
|
98
|
-
style={[
|
|
99
|
-
styles.slide,
|
|
100
|
-
{
|
|
101
|
-
backgroundColor: item.bg,
|
|
102
|
-
},
|
|
103
|
-
]}>
|
|
104
|
-
<Text style={styles.title}>{item.title}</Text>
|
|
105
|
-
<Text style={styles.text}>{item.text}</Text>
|
|
106
|
-
<Image source={item.image} style={styles.image} />
|
|
107
|
-
</View>
|
|
108
|
-
);
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
const RenderNextButton = () => {
|
|
112
|
-
return (
|
|
113
|
-
<View style={styles.buttonCircle}>
|
|
114
|
-
<Text style={styles.tutorialText}>{t('TUTORIAL_NEXT', 'Next')}</Text>
|
|
115
|
-
</View>
|
|
116
|
-
);
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
const RenderSkipButton = () => {
|
|
120
|
-
return (
|
|
121
|
-
<View style={styles.buttonCircle}>
|
|
122
|
-
<Text style={styles.tutorialText}>{t('TUTORIAL_SKIP', 'Skip')}</Text>
|
|
123
|
-
</View>
|
|
124
|
-
);
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
const RenderPrevButton = () => {
|
|
128
|
-
return (
|
|
129
|
-
<View style={styles.buttonCircle}>
|
|
130
|
-
<Text style={styles.tutorialText}>{t('TUTORIAL_BACK', 'Back')}</Text>
|
|
131
|
-
</View>
|
|
132
|
-
);
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
const RenderDoneButton = () => {
|
|
136
|
-
return (
|
|
137
|
-
<View style={styles.buttonCircle}>
|
|
138
|
-
<Text style={styles.tutorialText}>{t('TUTORIAL_DONE', 'Done')}</Text>
|
|
139
|
-
</View>
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
const _onDone = () => {
|
|
144
|
-
setTutorial(false)
|
|
145
|
-
_setStoreData('isTutorial', false)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
const _keyExtractor = (item: Item) => item.title;
|
|
149
|
-
|
|
150
|
-
return (
|
|
151
|
-
<View style={{flex: 1}}>
|
|
152
|
-
<StatusBar translucent backgroundColor="transparent" />
|
|
153
|
-
<AppIntroSlider
|
|
154
|
-
keyExtractor={_keyExtractor}
|
|
155
|
-
renderItem={_renderItem}
|
|
156
|
-
data={data}
|
|
157
|
-
onDone={_onDone}
|
|
158
|
-
activeDotStyle= {{backgroundColor: theme.colors.primary}}
|
|
159
|
-
renderDoneButton={RenderDoneButton}
|
|
160
|
-
renderNextButton={RenderNextButton}
|
|
161
|
-
renderSkipButton={RenderSkipButton}
|
|
162
|
-
renderPrevButton={RenderPrevButton}
|
|
163
|
-
showSkipButton
|
|
164
|
-
showPrevButton
|
|
165
|
-
/>
|
|
166
|
-
</View>
|
|
167
|
-
);
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
export default IntroductoryTutorial;
|