ordering-ui-react-native 0.19.0-testing → 0.19.1-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.
Files changed (215) hide show
  1. package/package.json +6 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/VerifyPhone/styles.tsx +1 -2
  6. package/src/components/shared/OToast.tsx +3 -2
  7. package/src/utils/index.tsx +2 -2
  8. package/themes/business/index.tsx +2 -0
  9. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +14 -7
  10. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  11. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  12. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  13. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  14. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  15. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  16. package/themes/business/src/components/Chat/index.tsx +41 -13
  17. package/themes/business/src/components/DriverMap/index.tsx +4 -2
  18. package/themes/business/src/components/DriverSchedule/index.tsx +16 -6
  19. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  20. package/themes/business/src/components/MapView/index.tsx +11 -7
  21. package/themes/business/src/components/MessagesOption/index.tsx +22 -94
  22. package/themes/business/src/components/NewOrderNotification/index.tsx +121 -104
  23. package/themes/business/src/components/OrderDetails/Delivery.tsx +19 -10
  24. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +88 -51
  25. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +26 -6
  26. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +6 -1
  27. package/themes/business/src/components/OrderSummary/index.tsx +7 -8
  28. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  29. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  30. package/themes/business/src/components/OrdersOption/index.tsx +43 -32
  31. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  32. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  33. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +21 -28
  34. package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
  35. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  36. package/themes/business/src/components/PreviousOrders/index.tsx +192 -220
  37. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  38. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  39. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  40. package/themes/business/src/components/StoresList/index.tsx +5 -3
  41. package/themes/business/src/components/UserProfileForm/index.tsx +9 -8
  42. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  43. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  44. package/themes/business/src/types/index.tsx +9 -0
  45. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  46. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  47. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  48. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  49. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  50. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  51. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  52. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  53. package/themes/original/index.tsx +7 -3
  54. package/themes/original/src/components/AddressForm/index.tsx +2 -2
  55. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  56. package/themes/original/src/components/AddressList/index.tsx +4 -7
  57. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  58. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  59. package/themes/original/src/components/BusinessBasicInformation/index.tsx +3 -3
  60. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +1 -1
  61. package/themes/original/src/components/BusinessController/index.tsx +9 -6
  62. package/themes/original/src/components/BusinessController/styles.tsx +8 -7
  63. package/themes/original/src/components/BusinessInformation/index.tsx +35 -3
  64. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  65. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -7
  66. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  67. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  68. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  69. package/themes/original/src/components/BusinessListingSearch/index.tsx +56 -361
  70. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -1
  71. package/themes/original/src/components/BusinessPreorder/index.tsx +3 -4
  72. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  73. package/themes/original/src/components/BusinessProductsList/index.tsx +2 -2
  74. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  75. package/themes/original/src/components/BusinessProductsListing/index.tsx +35 -15
  76. package/themes/original/src/components/BusinessProductsListing/styles.tsx +3 -4
  77. package/themes/original/src/components/BusinessReviews/index.tsx +1 -1
  78. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  79. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  80. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  81. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  82. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  83. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +29 -402
  84. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  85. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  86. package/themes/original/src/components/Cart/index.tsx +25 -6
  87. package/themes/original/src/components/CartContent/index.tsx +61 -39
  88. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  89. package/themes/original/src/components/Checkout/index.tsx +136 -19
  90. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  91. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  92. package/themes/original/src/components/DatePicker/index.tsx +17 -0
  93. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  94. package/themes/original/src/components/Favorite/index.tsx +4 -9
  95. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  96. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  97. package/themes/original/src/components/GPSButton/index.tsx +1 -1
  98. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  99. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +36 -3
  100. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
  101. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +67 -4
  102. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  103. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  104. package/themes/original/src/components/GoogleMap/index.tsx +50 -5
  105. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  106. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  107. package/themes/original/src/components/Home/index.tsx +1 -1
  108. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  109. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  110. package/themes/original/src/components/LoginForm/Otp/index.tsx +53 -47
  111. package/themes/original/src/components/LoginForm/index.tsx +6 -1
  112. package/themes/original/src/components/Messages/index.tsx +9 -4
  113. package/themes/original/src/components/Messages/styles.tsx +1 -1
  114. package/themes/original/src/components/MomentOption/index.tsx +4 -4
  115. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  116. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  117. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +13 -4
  118. package/themes/original/src/components/MultiCheckout/index.tsx +184 -51
  119. package/themes/original/src/components/MultiOrdersDetails/index.tsx +1 -1
  120. package/themes/original/src/components/MyOrders/index.tsx +5 -5
  121. package/themes/original/src/components/NavBar/index.tsx +3 -1
  122. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  123. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  124. package/themes/original/src/components/Notifications/index.tsx +4 -8
  125. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  126. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +7 -3
  127. package/themes/original/src/components/OrderDetails/index.tsx +717 -667
  128. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  129. package/themes/original/src/components/OrderProgress/index.tsx +7 -7
  130. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  131. package/themes/original/src/components/OrderSummary/index.tsx +5 -3
  132. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  133. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  134. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  135. package/themes/original/src/components/OrdersOption/index.tsx +4 -3
  136. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  137. package/themes/original/src/components/PageBanner/index.tsx +3 -0
  138. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  139. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  140. package/themes/original/src/components/PaymentOptions/index.tsx +41 -32
  141. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -1
  142. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  143. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  144. package/themes/original/src/components/ProductForm/index.tsx +81 -167
  145. package/themes/original/src/components/ProductForm/styles.tsx +1 -1
  146. package/themes/original/src/components/ProductItemAccordion/index.tsx +5 -0
  147. package/themes/original/src/components/ProductOptionSubOption/index.tsx +120 -79
  148. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +10 -9
  149. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  150. package/themes/original/src/components/Promotions/index.tsx +4 -4
  151. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  152. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  153. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  154. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  155. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  156. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  157. package/themes/original/src/components/SingleOrderCard/index.tsx +4 -3
  158. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  159. package/themes/original/src/components/StripeCardsList/index.tsx +53 -7
  160. package/themes/original/src/components/StripeElementsForm/index.tsx +1 -1
  161. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  162. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  163. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  164. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  165. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  166. package/themes/original/src/components/UserFormDetails/index.tsx +53 -7
  167. package/themes/original/src/components/UserProfile/index.tsx +1 -1
  168. package/themes/original/src/components/UserProfileForm/index.tsx +30 -36
  169. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  170. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  171. package/themes/original/src/components/Wallets/index.tsx +8 -9
  172. package/themes/original/src/components/Wallets/styles.tsx +1 -1
  173. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  174. package/themes/original/src/components/shared/OInput.tsx +1 -4
  175. package/themes/original/src/components/shared/OModal.tsx +12 -14
  176. package/themes/original/src/layouts/Container.tsx +5 -3
  177. package/themes/original/src/types/index.tsx +10 -2
  178. package/themes/original/src/utils/index.tsx +124 -0
  179. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  180. package/src/navigators/BottomNavigator.tsx +0 -117
  181. package/src/navigators/CheckoutNavigator.tsx +0 -66
  182. package/src/navigators/HomeNavigator.tsx +0 -202
  183. package/src/navigators/NavigationRef.tsx +0 -7
  184. package/src/navigators/RootNavigator.tsx +0 -269
  185. package/src/pages/Account.tsx +0 -34
  186. package/src/pages/AddressForm.tsx +0 -62
  187. package/src/pages/AddressList.tsx +0 -24
  188. package/src/pages/BusinessProductsList.tsx +0 -81
  189. package/src/pages/BusinessesListing.tsx +0 -43
  190. package/src/pages/CartList.tsx +0 -49
  191. package/src/pages/Checkout.tsx +0 -101
  192. package/src/pages/ForgotPassword.tsx +0 -24
  193. package/src/pages/Help.tsx +0 -23
  194. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  195. package/src/pages/HelpGuide.tsx +0 -23
  196. package/src/pages/HelpOrder.tsx +0 -23
  197. package/src/pages/Home.tsx +0 -36
  198. package/src/pages/IntroductoryTutorial.tsx +0 -170
  199. package/src/pages/Login.tsx +0 -47
  200. package/src/pages/MomentOption.tsx +0 -30
  201. package/src/pages/MultiCheckout.tsx +0 -31
  202. package/src/pages/MultiOrdersDetails.tsx +0 -27
  203. package/src/pages/MyOrders.tsx +0 -40
  204. package/src/pages/NetworkError.tsx +0 -24
  205. package/src/pages/NotFound.tsx +0 -22
  206. package/src/pages/OrderDetails.tsx +0 -25
  207. package/src/pages/ProductDetails.tsx +0 -55
  208. package/src/pages/Profile.tsx +0 -36
  209. package/src/pages/ReviewDriver.tsx +0 -30
  210. package/src/pages/ReviewOrder.tsx +0 -32
  211. package/src/pages/ReviewProducts.tsx +0 -30
  212. package/src/pages/Sessions.tsx +0 -22
  213. package/src/pages/Signup.tsx +0 -53
  214. package/src/pages/SpinnerLoader.tsx +0 -10
  215. package/src/pages/Splash.tsx +0 -21
@@ -1,117 +0,0 @@
1
- import React from 'react'
2
- import { View, Platform, PlatformIOSStatic } from 'react-native'
3
- import { useOrder } from 'ordering-components/native'
4
- import { createMaterialBottomTabNavigator } from '@react-navigation/material-bottom-tabs'
5
- import MaterialCommunityIcon from 'react-native-vector-icons/MaterialCommunityIcons'
6
- import MaterialIcon from 'react-native-vector-icons/MaterialIcons'
7
- import styled from 'styled-components/native'
8
-
9
- import { OText } from '../components/shared'
10
- import BusinessList from '../pages/BusinessesListing'
11
- import MyOrders from '../pages/MyOrders'
12
- import CartList from '../pages/CartList'
13
- import Profile from '../pages/Profile'
14
- import { useTheme } from 'styled-components/native'
15
-
16
- const CartsLenght = styled.View`
17
- width: 25px;
18
- height: 25px;
19
- background-color: ${(props: any) => props.theme.colors.primary};
20
- display: flex;
21
- justify-content: center;
22
- align-items: center;
23
- position: absolute;
24
- right: 0;
25
- `
26
-
27
- const Tab = createMaterialBottomTabNavigator();
28
-
29
- const BottomNavigator = () => {
30
- const theme = useTheme()
31
- const [{ carts }] = useOrder()
32
- const cartsList = (carts && Object.values(carts).filter((cart: any) => cart.products.length > 0)) || []
33
- const isIos = Platform.OS === 'ios'
34
- const platformIOS = Platform as PlatformIOSStatic
35
- const androidStyles = isIos
36
- ? platformIOS.isPad
37
- ? { paddingBottom: 30 }
38
- : {}
39
- : {height: 40, position: 'relative', bottom: 15}
40
- return (
41
- <Tab.Navigator
42
- initialRouteName="BusinessList"
43
- activeColor={theme.colors.primary}
44
- barStyle={{ backgroundColor: theme.colors.white, ...androidStyles }}
45
- labeled={false}
46
- inactiveColor={theme.colors.disabled}
47
- >
48
- <Tab.Screen
49
- name="BusinessList"
50
- component={BusinessList}
51
- options={{
52
- tabBarIcon:
53
- ({ color }: any) => (
54
- <View style={{ width: 50, height: 50, justifyContent: !isIos ? 'flex-start' : 'space-evenly', position: 'relative', bottom: !isIos ? 10 : 0 }}>
55
- <MaterialCommunityIcon name='home' size={46} color={color} />
56
- </View>
57
- )
58
- }}
59
- />
60
- <Tab.Screen
61
- name="MyOrders"
62
- component={MyOrders}
63
- options={
64
- {
65
- tabBarIcon:
66
- ({ color }: any) => (
67
- <View style={{ width: 50, height: 50, justifyContent: !isIos ? 'flex-start' : 'space-evenly', position: 'relative', bottom: !isIos ? 10 : 0 }}>
68
- <MaterialIcon name='format-list-bulleted' size={46} color={color} />
69
- </View>
70
- ),
71
- }}
72
- />
73
- <Tab.Screen
74
- name="Cart"
75
- component={CartList}
76
- options={{
77
- tabBarIcon:
78
- ({ color }: any) => (
79
- <View style={{
80
- width: 50,
81
- height: 50,
82
- justifyContent: !isIos ? 'flex-start' : 'space-evenly',
83
- position: 'relative',
84
- bottom: !isIos ? 10 : 0
85
- }}
86
- >
87
- <MaterialIcon name='shopping-basket' size={46} color={color} />
88
- {cartsList.length > 0 && (
89
- <CartsLenght style={{ borderRadius: 100 / 2 }}>
90
- <OText
91
- color={theme.colors.white}
92
- >
93
- {cartsList.length}
94
- </OText>
95
- </CartsLenght>
96
- )}
97
- </View>
98
- )
99
- }}
100
- />
101
- <Tab.Screen
102
- name="Profile"
103
- component={Profile}
104
- options={{
105
- tabBarIcon:
106
- ({ color }: any) => (
107
- <View style={{ width: 50, height: 50, justifyContent: !isIos ? 'flex-start' : 'space-evenly', position: 'relative', bottom: !isIos ? 10 : 0 }}>
108
- <MaterialIcon name='person' size={46} color={color} />
109
- </View>
110
- )
111
- }}
112
- />
113
- </Tab.Navigator>
114
- );
115
- }
116
-
117
- export default BottomNavigator
@@ -1,66 +0,0 @@
1
- import React from 'react';
2
- import { createStackNavigator } from "@react-navigation/stack";
3
-
4
- import AddressList from '../pages/AddressList'
5
- import AddressForm from '../pages/AddressForm'
6
- import CartList from '../pages/CartList'
7
- import CheckoutPage from '../pages/Checkout';
8
- import BusinessProductsList from '../pages/BusinessProductsList';
9
- import MultiCheckout from '../pages/MultiCheckout';
10
-
11
- const Stack = createStackNavigator();
12
-
13
- const CheckoutNavigator = (props: any) => {
14
- const {
15
- navigation,
16
- route
17
- } = props;
18
-
19
- const cartUuid = route?.params?.cartUuid
20
-
21
- const checkoutProps = {
22
- navigation,
23
- route,
24
- cartUuid: route?.params?.cartUuid
25
- }
26
-
27
- return (
28
- <Stack.Navigator>
29
- {!cartUuid && (
30
- <Stack.Screen
31
- name="Cart"
32
- component={CartList}
33
- options={{ headerShown: false }}
34
- />
35
- )}
36
- <Stack.Screen
37
- name="CheckoutPage"
38
- children={() => <CheckoutPage {...checkoutProps} />}
39
- options={{ headerShown: false }}
40
- />
41
- <Stack.Screen
42
- name="Business"
43
- component={BusinessProductsList}
44
- options={{ headerShown: false }}
45
- />
46
- <Stack.Screen
47
- name="AddressList"
48
- component={AddressList}
49
- options={{ headerShown: false }}
50
- initialParams={{isFromCheckout: true}}
51
- />
52
- <Stack.Screen
53
- name="AddressForm"
54
- component={AddressForm}
55
- options={{ headerShown: false }}
56
- />
57
- <Stack.Screen
58
- name="MultiCheckout"
59
- children={() => <MultiCheckout {...checkoutProps} />}
60
- options={{ headerShown: false }}
61
- />
62
- </Stack.Navigator>
63
- );
64
- }
65
-
66
- export default CheckoutNavigator;
@@ -1,202 +0,0 @@
1
- import * as React from 'react';
2
- import { AppState } from 'react-native'
3
- import { createStackNavigator } from "@react-navigation/stack";
4
- import { useSession, useOrder, useWebsocket } from 'ordering-components/native';
5
- import BottomNavigator from '../navigators/BottomNavigator';
6
- import RootNavigator from '../navigators/RootNavigator';
7
- import CheckoutNavigator from '../navigators/CheckoutNavigator';
8
- import BackgroundTimer from 'react-native-background-timer';
9
-
10
- import AddressList from '../pages/AddressList';
11
- import AddressForm from '../pages/AddressForm';
12
- import OrderDetails from '../pages/OrderDetails';
13
- import BusinessProductsList from '../pages/BusinessProductsList';
14
- import ReviewOrder from '../pages/ReviewOrder'
15
- import ReviewProducts from '../pages/ReviewProducts';
16
- import ReviewDriver from '../pages/ReviewDriver'
17
- import MomentOption from '../pages/MomentOption'
18
- import Account from '../pages/Account'
19
- import Help from '../pages/Help'
20
- import HelpOrder from '../pages/HelpOrder'
21
- import HelpGuide from '../pages/HelpGuide'
22
- import HelpAccountAndPayment from '../pages/HelpAccountAndPayment'
23
- import Sessions from '../pages/Sessions';
24
- import Splash from '../pages/Splash';
25
- import ProductDetails from '../pages/ProductDetails';
26
- import MultiOrdersDetails from '../pages/MultiOrdersDetails';
27
- const Stack = createStackNavigator();
28
-
29
- const HomeNavigator = (e : any) => {
30
- const [orderState] = useOrder();
31
- const [{ auth, user }] = useSession();
32
- const socket = useWebsocket();
33
-
34
- const appState = React.useRef(AppState.currentState);
35
- let interval: any
36
-
37
- const _handleAppStateChange = (nextAppState: any) => {
38
- if (appState.current.match(/inactive|background/) && nextAppState === 'active') {
39
- BackgroundTimer.clearInterval(interval)
40
- }else{
41
- interval = BackgroundTimer.setInterval(()=>{
42
- const ordersRoom = user?.level === 0 ? 'orders' : `orders_${user?.id}`
43
- socket.join(ordersRoom)
44
- }, 5000)
45
- appState.current = nextAppState;
46
- }
47
- }
48
-
49
- React.useEffect (() => {
50
- AppState.addEventListener('change', _handleAppStateChange);
51
- return () => {
52
- AppState.removeEventListener('change', _handleAppStateChange);
53
- };
54
- },[])
55
-
56
- return (
57
- <Stack.Navigator>
58
- {!orderState.loading || (orderState?.options?.user_id && orderState.loading) || orderState?.options?.address?.location ? (
59
- <>
60
- {auth ? (
61
- <>
62
- {Object.keys(orderState?.carts).length === 0 && !orderState?.options?.address?.location && !orderState.loading ? (
63
- <>
64
- <Stack.Screen
65
- name="AddressListInitial"
66
- component={AddressList}
67
- options={{ headerShown: false }}
68
- initialParams={{ afterSignup: true }}
69
- />
70
- <Stack.Screen
71
- name="AddressFormInitial"
72
- component={AddressForm}
73
- options={{ headerShown: false }}
74
- initialParams={{ afterSignup: true }}
75
- />
76
- </>
77
- ) : (
78
- <>
79
- {!!Object.keys(e?.route?.params?.productLogin || {})?.length && (
80
- <Stack.Screen
81
- name="BusinessAfterLogin"
82
- component={BusinessProductsList}
83
- options={{headerShown: false}}
84
- initialParams={{productLogin: e?.route?.params?.productLogin}}
85
- />
86
- )}
87
- <Stack.Screen
88
- name='BottomTab'
89
- component={BottomNavigator}
90
- options={{ headerShown: false }}
91
- />
92
- <Stack.Screen
93
- name="CheckoutNavigator"
94
- component={CheckoutNavigator}
95
- options={{ headerShown: false }}
96
- />
97
- <Stack.Screen
98
- name="OrderDetails"
99
- component={OrderDetails}
100
- options={{ headerShown: false }}
101
- />
102
- <Stack.Screen
103
- name="Business"
104
- component={BusinessProductsList}
105
- options={{ headerShown: false }}
106
- />
107
- <Stack.Screen
108
- name="ProductDetails"
109
- component={ProductDetails}
110
- options={{ headerShown: false }}
111
- />
112
- <Stack.Screen
113
- name="ReviewOrder"
114
- component={ReviewOrder}
115
- options={{ headerShown: false }}
116
- />
117
- <Stack.Screen
118
- name="ReviewProducts"
119
- component={ReviewProducts}
120
- options={{ headerShown: false }}
121
- />
122
- <Stack.Screen
123
- name="ReviewDriver"
124
- component={ReviewDriver}
125
- options={{ headerShown: false }}
126
- />
127
- <Stack.Screen
128
- name='MomentOption'
129
- component={MomentOption}
130
- options={{ headerShown: false }}
131
- />
132
- <Stack.Screen
133
- name="AddressList"
134
- component={AddressList}
135
- options={{ headerShown: false }}
136
- initialParams={{ afterSignup: false }}
137
- />
138
- <Stack.Screen
139
- name="AddressForm"
140
- component={AddressForm}
141
- options={{ headerShown: false }}
142
- initialParams={{ afterSignup: false }}
143
- />
144
- <Stack.Screen
145
- name="Account"
146
- component={Account}
147
- options={{ headerShown: false }}
148
- />
149
- <Stack.Screen
150
- name="Help"
151
- component={Help}
152
- options={{ headerShown: false }}
153
- />
154
- <Stack.Screen
155
- name="HelpOrder"
156
- component={HelpOrder}
157
- options={{ headerShown: false }}
158
- />
159
- <Stack.Screen
160
- name="HelpGuide"
161
- component={HelpGuide}
162
- options={{ headerShown: false }}
163
- />
164
- <Stack.Screen
165
- name="HelpAccountAndPayment"
166
- component={HelpAccountAndPayment}
167
- options={{ headerShown: false }}
168
- />
169
- <Stack.Screen
170
- name="Sessions"
171
- component={Sessions}
172
- options={{ headerShown: false }}
173
- />
174
- <Stack.Screen
175
- name="MultiOrdersDetails"
176
- component={MultiOrdersDetails}
177
- options={{ headerShown: false }}
178
- />
179
- </>
180
- )}
181
- </>
182
- )
183
- : (
184
- <Stack.Screen
185
- name='root'
186
- component={RootNavigator}
187
- options={{ headerShown: false }}
188
- />
189
- )}
190
- </>
191
- ) : (
192
- <Stack.Screen
193
- name="Splash"
194
- component={Splash}
195
- options={{ headerShown: false }}
196
- />
197
- )}
198
- </Stack.Navigator>
199
- );
200
- }
201
-
202
- export default HomeNavigator;
@@ -1,7 +0,0 @@
1
- import * as React from 'react';
2
-
3
- export const navigationRef: any = React.createRef();
4
-
5
- export const navigate = (name: string, params: any) => {
6
- navigationRef.current?.navigate(name, params);
7
- }
@@ -1,269 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
- import { Platform } from 'react-native'
3
- import { createStackNavigator } from '@react-navigation/stack';
4
- import { useOrder, useSession, useConfig } from 'ordering-components/native';
5
- import dayjs from 'dayjs'
6
- import utc from 'dayjs/plugin/utc'
7
- import isSameOrAfter from 'dayjs/plugin/isSameOrAfter'
8
- import OneSignal from 'react-native-onesignal';
9
- import NetInfo from '@react-native-community/netinfo'
10
-
11
- dayjs.extend(isSameOrAfter)
12
- dayjs.extend(utc)
13
-
14
- import Login from '../pages/Login';
15
- import Signup from '../pages/Signup';
16
- import Forgot from '../pages/ForgotPassword';
17
- import Home from '../pages/Home';
18
- import IntroductoryTutorial from '../pages/IntroductoryTutorial';
19
- import AddressForm from '../pages/AddressForm';
20
- import MomentOption from '../pages/MomentOption';
21
- import Splash from '../pages/Splash';
22
- import BusinessList from '../pages/BusinessesListing';
23
- import BusinessProductsList from '../pages/BusinessProductsList';
24
- import NotFound from '../pages/NotFound'
25
- import HomeNavigator from './HomeNavigator';
26
- import settings from '../config.json';
27
- import NetworkError from '../pages/NetworkError';
28
-
29
- import * as RootNavigation from '../navigators/NavigationRef';
30
- import { _retrieveStoreData, _setStoreData } from '../providers/StoreUtil';
31
-
32
- const Stack = createStackNavigator();
33
- const RootNavigator = () => {
34
- const [orderId, setOrderId] = useState(null)
35
- const [{ auth, loading: sessionLoading }] = useSession();
36
- const [orderStatus, { changeMoment }] = useOrder();
37
- const [{ configs, loading: configsLoading }] = useConfig();
38
- const [loaded, setLoaded] = useState(false);
39
- const [productLogin, setProductLogin] = useState({})
40
- const [oneSignalState, setOneSignalState] = useState<any>({
41
- notification_app: settings.notification_app
42
- });
43
- const [ isTutorial, setTutorial] = useState(true)
44
- const [isPushLoading, setIsPushLoading] = useState({ loading: true })
45
- const [connectionState, setConnectionState] = useState<{
46
- connection_status: boolean;
47
- } | null>(null);
48
-
49
- const validDate = (date : any) => {
50
- if (!date) return
51
- const _date = dayjs(date, 'YYYY-MM-DD HH:mm').isSameOrAfter(dayjs(), 'day')
52
- ? dayjs(date).format('YYYY-MM-DD HH:mm')
53
- : dayjs().format('YYYY-MM-DD HH:mm')
54
- return _date
55
- };
56
-
57
- const oneSignalSetup = async () => {
58
- setIsPushLoading({ loading: true });
59
- OneSignal.setLogLevel(6, 0);
60
-
61
- OneSignal.setAppId(configs?.onesignal_orderingapp_id?.value);
62
-
63
- if (Platform.OS === 'ios') {
64
- OneSignal.promptForPushNotificationsWithUserResponse((response : any) => {
65
- console.log('Prompt response:', response);
66
- });
67
- }
68
-
69
- OneSignal.setNotificationOpenedHandler(({ notification }: any) => {
70
- if(notification?.additionalData?.order_uuid) {
71
- setOrderId(notification?.additionalData?.order_uuid)
72
- }
73
- });
74
-
75
- OneSignal.addSubscriptionObserver((event: any) => {
76
- setOneSignalState({ ...oneSignalState, notification_token: event?.to?.userId });
77
- });
78
-
79
- const deviceState: any = await OneSignal.getDeviceState();
80
-
81
- if (!deviceState?.isSubscribed) {
82
- OneSignal.addTrigger("prompt_ios", "true");
83
- }
84
-
85
- OneSignal.disablePush(false);
86
-
87
- const data = {
88
- ...oneSignalState,
89
- notification_token: deviceState?.userId,
90
- notification_app: settings.notification_app
91
- }
92
- setOneSignalState(data);
93
- setIsPushLoading({ loading: false });
94
- };
95
- useEffect(() => {
96
- if (!loaded && !orderStatus.loading && !isPushLoading.loading) {
97
- setLoaded(true)
98
- }
99
- }, [orderStatus, isPushLoading])
100
-
101
- useEffect(() => {
102
- if (orderId && loaded && auth) {
103
- RootNavigation.navigate('OrderDetails', {
104
- orderId: orderId,
105
- isFromRoot: true
106
- });
107
-
108
- setOrderId(null)
109
- }
110
- }, [loaded, orderId])
111
-
112
- useEffect(() => {
113
- const setTutorialLocal = async () => {
114
- const data = await _retrieveStoreData('isTutorial');
115
- if(data === false){
116
- setTutorial(false)
117
- }
118
- }
119
- setTutorialLocal();
120
- }, [isTutorial])
121
-
122
- useEffect(() => {
123
- if (!sessionLoading && !isPushLoading.loading && !auth) {
124
- setLoaded(!auth)
125
- }
126
- }, [sessionLoading, isPushLoading])
127
-
128
- useEffect(() => {
129
- const _currentDate = dayjs.utc(validDate(orderStatus.options?.moment)).local()
130
- if (!_currentDate) {
131
- return
132
- }
133
- const selected = dayjs(_currentDate, 'YYYY-MM-DD HH:mm')
134
- const now = dayjs()
135
- const secondsDiff = selected.diff(now, 'seconds')
136
- const checkTime = setTimeout(() => {
137
- changeMoment(null)
138
- }, secondsDiff * 1000)
139
-
140
- return () => {
141
- clearTimeout(checkTime)
142
- }
143
- }, [orderStatus.options?.moment])
144
-
145
- useEffect(() => {
146
- if (configsLoading) return
147
- if (configs?.onesignal_orderingapp_id?.value) {
148
- oneSignalSetup();
149
- }
150
- if (!!!configs?.onesignal_orderingapp_id?.value) {
151
- setIsPushLoading({ loading: false });
152
- }
153
- }, [configsLoading]);
154
-
155
- let netInfoSuscription : any = null
156
- useEffect(() => {
157
- netInfoSuscription = NetInfo.addEventListener(handleConnectivityChange);
158
-
159
- return () => {
160
- netInfoSuscription && netInfoSuscription()
161
- }
162
- }, []);
163
-
164
- const handleConnectivityChange = (state : any) => {
165
- setConnectionState({ connection_status: state.isConnected });
166
- };
167
-
168
- return (
169
- <Stack.Navigator>
170
- {
171
- !loaded && (
172
- <Stack.Screen
173
- name="Splash"
174
- component={Splash}
175
- options={{ headerShown: false }}
176
- />
177
- )
178
- }
179
- {
180
- loaded && connectionState?.connection_status && (
181
- <>
182
- {!auth ? (
183
- <>
184
- { isTutorial ? (
185
- <Stack.Screen
186
- name="IntroductoryTutorial"
187
- component={IntroductoryTutorial}
188
- options={{ headerShown: false }}
189
- initialParams={{ setTutorial }}
190
- />):(
191
- <Stack.Screen
192
- name="Home"
193
- component={Home}
194
- options={{ headerShown: false }}
195
- />)}
196
- <Stack.Screen
197
- name="Login"
198
- component={Login}
199
- options={{ headerShown: false }}
200
- listeners={{
201
- state: (e: any) => {
202
- setProductLogin(e.data.state.routes.find((object: any) => object?.params?.product)?.params?.product)
203
- }
204
- }}
205
- initialParams={{ notification_state: oneSignalState }}
206
- />
207
- <Stack.Screen
208
- name="Signup"
209
- component={Signup}
210
- options={{ headerShown: false }}
211
- initialParams={{ notification_state: oneSignalState }}
212
- />
213
- <Stack.Screen
214
- name="Forgot"
215
- component={Forgot}
216
- options={{ headerShown: false }}
217
- />
218
- <Stack.Screen
219
- name="AddressForm"
220
- component={AddressForm}
221
- options={{ headerShown: false }}
222
- />
223
- <Stack.Screen
224
- name='BusinessList'
225
- component={BusinessList}
226
- options={{ headerShown: false }}
227
- />
228
- <Stack.Screen
229
- name='Business'
230
- component={BusinessProductsList}
231
- options={{ headerShown: false }}
232
- initialParams={{ setProductLogin }}
233
- />
234
- <Stack.Screen
235
- name='MomentOption'
236
- component={MomentOption}
237
- options={{ headerShown: false }}
238
- />
239
- </>
240
- ) : (
241
- <>
242
- <Stack.Screen
243
- name='MyAccount'
244
- component={HomeNavigator}
245
- options={{ headerShown: false }}
246
- initialParams={{ productLogin }}
247
- />
248
- </>
249
- )}
250
- </>
251
- )
252
- }
253
- {connectionState?.connection_status === false ? (
254
- <Stack.Screen
255
- name='NetworkError'
256
- component={NetworkError}
257
- options={{ headerShown: false }}
258
- />
259
- ) : (
260
- <Stack.Screen
261
- name='NotFound'
262
- component={NotFound}
263
- options={{ headerShown: false }}
264
- />
265
- )}
266
- </Stack.Navigator>
267
- );
268
- };
269
- export default RootNavigator;
@@ -1,34 +0,0 @@
1
- import React from 'react'
2
- import styled from 'styled-components/native';
3
- import { Platform } from 'react-native';
4
- import { Container } from '../layouts/Container'
5
- import { Account as AccountController } from '../components/Account'
6
-
7
- const KeyboardView = styled.KeyboardAvoidingView`
8
- flex-grow: 1;
9
- `;
10
- interface Props {
11
- navigation: any;
12
- route: any;
13
- }
14
-
15
- const Account = (props: Props) => {
16
- const accountProps = {
17
- ...props,
18
- useSessionUser: true,
19
- useValidationFields: true
20
- }
21
-
22
- return (
23
- <KeyboardView
24
- enabled
25
- behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
26
- >
27
- <Container>
28
- <AccountController {...accountProps} />
29
- </Container>
30
- </KeyboardView>
31
- )
32
- }
33
-
34
- export default Account