ordering-ui-react-native 0.19.2-testing → 0.19.3-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 (217) 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 +9 -2
  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 +5 -5
  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 -103
  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 +27 -13
  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 +83 -37
  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 +24 -31
  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 +27 -10
  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 +10 -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/LoginForm/index.tsx +124 -96
  50. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  51. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  52. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  53. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  54. package/themes/original/index.tsx +7 -3
  55. package/themes/original/src/components/AddressForm/index.tsx +2 -2
  56. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  57. package/themes/original/src/components/AddressList/index.tsx +4 -7
  58. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  59. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  60. package/themes/original/src/components/BusinessBasicInformation/index.tsx +3 -3
  61. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +1 -1
  62. package/themes/original/src/components/BusinessController/index.tsx +9 -6
  63. package/themes/original/src/components/BusinessController/styles.tsx +8 -7
  64. package/themes/original/src/components/BusinessInformation/index.tsx +35 -3
  65. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  66. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -7
  67. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  68. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  69. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  70. package/themes/original/src/components/BusinessListingSearch/index.tsx +56 -361
  71. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -1
  72. package/themes/original/src/components/BusinessPreorder/index.tsx +3 -4
  73. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  74. package/themes/original/src/components/BusinessProductsList/index.tsx +2 -2
  75. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  76. package/themes/original/src/components/BusinessProductsListing/index.tsx +43 -19
  77. package/themes/original/src/components/BusinessProductsListing/styles.tsx +3 -4
  78. package/themes/original/src/components/BusinessReviews/index.tsx +1 -1
  79. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  80. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  81. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  82. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  83. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  84. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +29 -402
  85. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  86. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  87. package/themes/original/src/components/Cart/index.tsx +27 -8
  88. package/themes/original/src/components/CartContent/index.tsx +61 -39
  89. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  90. package/themes/original/src/components/Checkout/index.tsx +199 -55
  91. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  92. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  93. package/themes/original/src/components/DatePicker/index.tsx +17 -0
  94. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  95. package/themes/original/src/components/Favorite/index.tsx +4 -9
  96. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  97. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  98. package/themes/original/src/components/GPSButton/index.tsx +1 -1
  99. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  100. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +36 -3
  101. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
  102. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +67 -4
  103. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  104. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +2 -2
  105. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  106. package/themes/original/src/components/GoogleMap/index.tsx +50 -5
  107. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
  108. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  109. package/themes/original/src/components/Home/index.tsx +1 -1
  110. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  111. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  112. package/themes/original/src/components/LoginForm/Otp/index.tsx +53 -47
  113. package/themes/original/src/components/LoginForm/index.tsx +6 -1
  114. package/themes/original/src/components/Messages/index.tsx +9 -4
  115. package/themes/original/src/components/Messages/styles.tsx +1 -1
  116. package/themes/original/src/components/MomentOption/index.tsx +4 -4
  117. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  118. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  119. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +13 -4
  120. package/themes/original/src/components/MultiCheckout/index.tsx +184 -51
  121. package/themes/original/src/components/MultiOrdersDetails/index.tsx +1 -1
  122. package/themes/original/src/components/MyOrders/index.tsx +5 -5
  123. package/themes/original/src/components/NavBar/index.tsx +3 -1
  124. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  125. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  126. package/themes/original/src/components/Notifications/index.tsx +4 -8
  127. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  128. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +7 -3
  129. package/themes/original/src/components/OrderDetails/index.tsx +716 -667
  130. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  131. package/themes/original/src/components/OrderProgress/index.tsx +7 -7
  132. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  133. package/themes/original/src/components/OrderSummary/index.tsx +5 -3
  134. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  135. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  136. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  137. package/themes/original/src/components/OrdersOption/index.tsx +4 -3
  138. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  139. package/themes/original/src/components/PageBanner/index.tsx +3 -0
  140. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  141. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  142. package/themes/original/src/components/PaymentOptions/index.tsx +41 -32
  143. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -1
  144. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  145. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  146. package/themes/original/src/components/ProductForm/index.tsx +81 -167
  147. package/themes/original/src/components/ProductForm/styles.tsx +1 -1
  148. package/themes/original/src/components/ProductItemAccordion/index.tsx +5 -0
  149. package/themes/original/src/components/ProductOptionSubOption/index.tsx +120 -79
  150. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +10 -9
  151. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  152. package/themes/original/src/components/Promotions/index.tsx +4 -4
  153. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  154. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  155. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  156. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  157. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  158. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  159. package/themes/original/src/components/SingleOrderCard/index.tsx +4 -3
  160. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  161. package/themes/original/src/components/StripeCardsList/index.tsx +53 -7
  162. package/themes/original/src/components/StripeElementsForm/index.tsx +1 -1
  163. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  164. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  165. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  166. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  167. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  168. package/themes/original/src/components/UserFormDetails/index.tsx +53 -7
  169. package/themes/original/src/components/UserProfile/index.tsx +1 -1
  170. package/themes/original/src/components/UserProfileForm/index.tsx +30 -36
  171. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  172. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  173. package/themes/original/src/components/Wallets/index.tsx +8 -9
  174. package/themes/original/src/components/Wallets/styles.tsx +1 -1
  175. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  176. package/themes/original/src/components/shared/OInput.tsx +1 -4
  177. package/themes/original/src/components/shared/OModal.tsx +12 -14
  178. package/themes/original/src/layouts/Container.tsx +5 -3
  179. package/themes/original/src/types/index.tsx +10 -2
  180. package/themes/original/src/utils/index.tsx +124 -0
  181. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  182. package/src/navigators/BottomNavigator.tsx +0 -117
  183. package/src/navigators/CheckoutNavigator.tsx +0 -66
  184. package/src/navigators/HomeNavigator.tsx +0 -202
  185. package/src/navigators/NavigationRef.tsx +0 -7
  186. package/src/navigators/RootNavigator.tsx +0 -269
  187. package/src/pages/Account.tsx +0 -34
  188. package/src/pages/AddressForm.tsx +0 -62
  189. package/src/pages/AddressList.tsx +0 -24
  190. package/src/pages/BusinessProductsList.tsx +0 -81
  191. package/src/pages/BusinessesListing.tsx +0 -43
  192. package/src/pages/CartList.tsx +0 -49
  193. package/src/pages/Checkout.tsx +0 -101
  194. package/src/pages/ForgotPassword.tsx +0 -24
  195. package/src/pages/Help.tsx +0 -23
  196. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  197. package/src/pages/HelpGuide.tsx +0 -23
  198. package/src/pages/HelpOrder.tsx +0 -23
  199. package/src/pages/Home.tsx +0 -36
  200. package/src/pages/IntroductoryTutorial.tsx +0 -170
  201. package/src/pages/Login.tsx +0 -47
  202. package/src/pages/MomentOption.tsx +0 -30
  203. package/src/pages/MultiCheckout.tsx +0 -31
  204. package/src/pages/MultiOrdersDetails.tsx +0 -27
  205. package/src/pages/MyOrders.tsx +0 -40
  206. package/src/pages/NetworkError.tsx +0 -24
  207. package/src/pages/NotFound.tsx +0 -22
  208. package/src/pages/OrderDetails.tsx +0 -25
  209. package/src/pages/ProductDetails.tsx +0 -55
  210. package/src/pages/Profile.tsx +0 -36
  211. package/src/pages/ReviewDriver.tsx +0 -30
  212. package/src/pages/ReviewOrder.tsx +0 -32
  213. package/src/pages/ReviewProducts.tsx +0 -30
  214. package/src/pages/Sessions.tsx +0 -22
  215. package/src/pages/Signup.tsx +0 -53
  216. package/src/pages/SpinnerLoader.tsx +0 -10
  217. 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
@@ -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;
@@ -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;
@@ -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
@@ -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
@@ -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
@@ -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;