ordering-ui-react-native 0.16.20 → 0.16.22-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 (204) hide show
  1. package/package.json +7 -4
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/index.tsx +61 -63
  4. package/src/components/ActiveOrders/styles.tsx +8 -14
  5. package/src/components/AddressForm/index.tsx +18 -2
  6. package/src/components/BusinessBasicInformation/index.tsx +11 -19
  7. package/src/components/BusinessController/index.tsx +10 -8
  8. package/src/components/BusinessInformation/index.tsx +33 -4
  9. package/src/components/BusinessInformation/styles.tsx +2 -2
  10. package/src/components/BusinessProductsList/index.tsx +10 -10
  11. package/src/components/BusinessesListing/index.tsx +1 -1
  12. package/src/components/Checkout/index.tsx +2 -1
  13. package/src/components/LanguageSelector/index.tsx +21 -16
  14. package/src/components/LoginForm/index.tsx +118 -30
  15. package/src/components/LoginForm/styles.tsx +6 -0
  16. package/src/components/Messages/index.tsx +2 -2
  17. package/src/components/NotificationSetting/index.tsx +85 -0
  18. package/src/components/OrderDetails/index.tsx +2 -20
  19. package/src/components/OrdersOption/index.tsx +54 -56
  20. package/src/components/PaymentOptions/index.tsx +335 -365
  21. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  22. package/src/components/ReviewDriver/index.tsx +1 -1
  23. package/src/components/ReviewOrder/index.tsx +2 -1
  24. package/src/components/ReviewProducts/index.tsx +11 -0
  25. package/src/components/SignupForm/index.tsx +143 -61
  26. package/src/components/SingleProductReview/index.tsx +8 -5
  27. package/src/components/StripeElementsForm/index.tsx +25 -16
  28. package/src/components/VerifyPhone/styles.tsx +1 -2
  29. package/src/components/shared/OBottomPopup.tsx +6 -2
  30. package/src/index.tsx +2 -0
  31. package/src/pages/BusinessesListing.tsx +7 -6
  32. package/src/pages/OrderDetails.tsx +1 -1
  33. package/src/pages/ReviewDriver.tsx +2 -2
  34. package/src/pages/ReviewOrder.tsx +2 -2
  35. package/src/theme.json +0 -1
  36. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  37. package/src/types/index.tsx +13 -9
  38. package/src/utils/index.tsx +0 -1
  39. package/themes/business/index.tsx +4 -0
  40. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  41. package/themes/business/src/components/Chat/index.tsx +42 -34
  42. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  43. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  44. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  45. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  46. package/themes/business/src/components/MapView/index.tsx +12 -1
  47. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  48. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  49. package/themes/business/src/components/OrderDetails/Delivery.tsx +3 -3
  50. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +25 -19
  51. package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
  52. package/themes/business/src/components/OrdersOption/index.tsx +65 -21
  53. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  54. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  55. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  56. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  57. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  58. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  59. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  60. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  61. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  62. package/themes/business/src/components/PreviousOrders/index.tsx +21 -23
  63. package/themes/business/src/components/ProductItemAccordion/index.tsx +5 -4
  64. package/themes/business/src/components/ReviewCustomer/index.tsx +1 -1
  65. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  66. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  67. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  68. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  69. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  70. package/themes/business/src/components/shared/OModal.tsx +40 -37
  71. package/themes/business/src/types/index.tsx +15 -9
  72. package/themes/business/src/utils/index.tsx +10 -0
  73. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  74. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  75. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  76. package/themes/kiosk/src/components/BusinessMenu/index.tsx +2 -1
  77. package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
  78. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +1 -0
  79. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  80. package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
  81. package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
  82. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  83. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  84. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  85. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  86. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  87. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  88. package/themes/kiosk/src/types/index.d.ts +2 -0
  89. package/themes/original/index.tsx +12 -0
  90. package/themes/original/src/components/AddressForm/index.tsx +136 -133
  91. package/themes/original/src/components/AddressList/index.tsx +1 -1
  92. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  93. package/themes/original/src/components/BusinessBasicInformation/index.tsx +302 -160
  94. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  95. package/themes/original/src/components/BusinessController/index.tsx +173 -108
  96. package/themes/original/src/components/BusinessItemAccordion/index.tsx +8 -6
  97. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  98. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  99. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  100. package/themes/original/src/components/BusinessListingSearch/index.tsx +106 -126
  101. package/themes/original/src/components/BusinessListingSearch/styles.tsx +18 -13
  102. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  103. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  104. package/themes/original/src/components/BusinessProductsList/index.tsx +49 -52
  105. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  106. package/themes/original/src/components/BusinessProductsListing/index.tsx +287 -175
  107. package/themes/original/src/components/BusinessProductsListing/styles.tsx +22 -8
  108. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  109. package/themes/original/src/components/BusinessTypeFilter/index.tsx +109 -40
  110. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  111. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
  112. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -10
  113. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +676 -0
  114. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  115. package/themes/original/src/components/BusinessesListing/index.tsx +105 -519
  116. package/themes/original/src/components/Cart/index.tsx +42 -10
  117. package/themes/original/src/components/Cart/styles.tsx +4 -0
  118. package/themes/original/src/components/CartContent/index.tsx +22 -16
  119. package/themes/original/src/components/Checkout/index.tsx +106 -66
  120. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  121. package/themes/original/src/components/DriverTips/index.tsx +4 -4
  122. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  123. package/themes/original/src/components/Favorite/index.tsx +1 -0
  124. package/themes/original/src/components/Favorite/styles.tsx +1 -0
  125. package/themes/original/src/components/FavoriteList/index.tsx +142 -93
  126. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  127. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  128. package/themes/original/src/components/GoogleMap/index.tsx +20 -12
  129. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +8 -3
  130. package/themes/original/src/components/HelpGuide/index.tsx +8 -3
  131. package/themes/original/src/components/HelpOrder/index.tsx +8 -3
  132. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  133. package/themes/original/src/components/LoginForm/Otp/index.tsx +3 -2
  134. package/themes/original/src/components/LoginForm/index.tsx +82 -44
  135. package/themes/original/src/components/Messages/index.tsx +17 -17
  136. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  137. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  138. package/themes/original/src/components/MultiCheckout/index.tsx +6 -0
  139. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -16
  140. package/themes/original/src/components/MyOrders/index.tsx +68 -6
  141. package/themes/original/src/components/NavBar/index.tsx +15 -9
  142. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  143. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  144. package/themes/original/src/components/Notifications/index.tsx +148 -0
  145. package/themes/original/src/components/Notifications/styles.tsx +17 -0
  146. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  147. package/themes/original/src/components/OrderDetails/index.tsx +200 -42
  148. package/themes/original/src/components/OrderDetails/styles.tsx +15 -2
  149. package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
  150. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  151. package/themes/original/src/components/OrderProgress/index.tsx +8 -2
  152. package/themes/original/src/components/OrderSummary/index.tsx +1 -34
  153. package/themes/original/src/components/OrderTypeSelector/index.tsx +85 -36
  154. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  155. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +100 -106
  156. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +17 -12
  157. package/themes/original/src/components/OrdersOption/index.tsx +71 -55
  158. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  159. package/themes/original/src/components/PaymentOptions/index.tsx +57 -37
  160. package/themes/original/src/components/PhoneInputNumber/index.tsx +4 -10
  161. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  162. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  163. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  164. package/themes/original/src/components/ProductForm/index.tsx +712 -655
  165. package/themes/original/src/components/ProductForm/styles.tsx +9 -7
  166. package/themes/original/src/components/ProductItemAccordion/index.tsx +198 -127
  167. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  168. package/themes/original/src/components/ProfessionalFilter/index.tsx +129 -0
  169. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  170. package/themes/original/src/components/ProfessionalProfile/index.tsx +309 -0
  171. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  172. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  173. package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
  174. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  175. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  176. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  177. package/themes/original/src/components/SearchBar/index.tsx +5 -3
  178. package/themes/original/src/components/ServiceForm/index.tsx +631 -0
  179. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  180. package/themes/original/src/components/SignupForm/index.tsx +350 -206
  181. package/themes/original/src/components/SingleOrderCard/index.tsx +214 -179
  182. package/themes/original/src/components/SingleProductCard/index.tsx +194 -108
  183. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
  184. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  185. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  186. package/themes/original/src/components/StripeElementsForm/index.tsx +15 -7
  187. package/themes/original/src/components/UpsellingProducts/index.tsx +14 -4
  188. package/themes/original/src/components/UserDetails/index.tsx +31 -17
  189. package/themes/original/src/components/UserFormDetails/index.tsx +74 -81
  190. package/themes/original/src/components/UserProfile/index.tsx +57 -29
  191. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  192. package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
  193. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  194. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  195. package/themes/original/src/components/Wallets/index.tsx +174 -162
  196. package/themes/original/src/components/Wallets/styles.tsx +10 -8
  197. package/themes/original/src/components/shared/OBottomPopup.tsx +47 -14
  198. package/themes/original/src/components/shared/OButton.tsx +10 -3
  199. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  200. package/themes/original/src/components/shared/OInput.tsx +3 -2
  201. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  202. package/themes/original/src/types/index.tsx +124 -30
  203. package/themes/original/src/utils/index.tsx +77 -0
  204. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -7,7 +7,6 @@ import {
7
7
  useConfirmSetupIntent,
8
8
  createPaymentMethod
9
9
  } from '@stripe/stripe-react-native';
10
- import configs from '../../config.json'
11
10
  import { ErrorMessage } from './styles';
12
11
 
13
12
  import { StripeElementsForm as StripeFormController } from './naked';
@@ -26,7 +25,8 @@ const StripeElementsFormUI = (props: any) => {
26
25
  methodsPay,
27
26
  paymethod,
28
27
  onCancel,
29
- cart
28
+ cart,
29
+ merchantId
30
30
  } = props;
31
31
 
32
32
  const theme = useTheme();
@@ -54,17 +54,25 @@ const StripeElementsFormUI = (props: any) => {
54
54
  }
55
55
 
56
56
  if (user?.address) {
57
- billingDetails.addressLine1 = user?.address
58
- }
57
+ billingDetails.address = {
58
+ line1: user?.address
59
+ }
60
+ }
59
61
 
60
62
  const createPayMethod = async () => {
61
- const params: any = { type: 'Card' }
62
- if (Object.keys(billingDetails).length > 0) {
63
- params.billingDetails = billingDetails
64
- }
63
+ const params: any = { paymentMethodType: 'Card', paymentMethodData: {} }
64
+ if (Object.keys(billingDetails).length > 0) {
65
+ params.paymentMethodData.billingDetails = {...billingDetails, token: card?.last4}
66
+ }
65
67
  try {
66
68
  setCreatePmLoading(true)
67
- const { paymentMethod } = await createPaymentMethod(params);
69
+ const { paymentMethod, error } = await createPaymentMethod(params);
70
+
71
+ if (error) {
72
+ setErrors(error?.message);
73
+ setCreatePmLoading(false)
74
+ return
75
+ }
68
76
 
69
77
  setCreatePmLoading(false)
70
78
  handleSource && handleSource({
@@ -87,10 +95,10 @@ const StripeElementsFormUI = (props: any) => {
87
95
  createPayMethod();
88
96
  return
89
97
  }
90
- const params: any = { type: 'Card' }
91
- if (Object.keys(billingDetails).length > 0) {
92
- params.billingDetails = billingDetails
93
- }
98
+ const params: any = { paymentMethodType: 'Card', paymentMethodData: {} }
99
+ if (Object.keys(billingDetails).length > 0) {
100
+ params.paymentMethodData.billingDetails = {...billingDetails, token: card?.last4}
101
+ }
94
102
  try {
95
103
  const { setupIntent, error } = await confirmSetupIntent(requirements, params);
96
104
 
@@ -126,12 +134,13 @@ const StripeElementsFormUI = (props: any) => {
126
134
  <View style={styles.container}>
127
135
  {publicKey ? (
128
136
  <View style={{ flex: 1 }}>
129
- <StripeProvider
137
+ <StripeProvider
130
138
  publishableKey={publicKey}
131
- merchantIdentifier={`merchant.${configs.apple_app_id}`}
139
+ merchantIdentifier={`merchant.${merchantId}`}
140
+ urlScheme={merchantId}
132
141
  >
133
142
  {methodsPay?.includes(paymethod) ? (
134
- <StripeMethodForm
143
+ <StripeMethodForm
135
144
  handleSource={handleSource}
136
145
  onCancel={onCancel}
137
146
  cart={cart}
@@ -2,7 +2,7 @@ import styled from 'styled-components/native';
2
2
 
3
3
  export const Container = styled.View`
4
4
  width: 100%;
5
- padding: 0 43px;
5
+ padding: 0 30px;
6
6
  `
7
7
 
8
8
  export const CountDownContainer = styled.View`
@@ -20,7 +20,6 @@ export const ResendSection = styled.View`
20
20
  display: flex;
21
21
  flex-direction: row;
22
22
  justify-content: center;
23
- flex-wrap: wrap;
24
23
  `
25
24
 
26
25
  export const WrappCountdown = styled.View`
@@ -4,14 +4,18 @@ const deviceHeight = Dimensions.get('window').height
4
4
 
5
5
  interface Props {
6
6
  open: boolean;
7
+ containerStyle: any;
7
8
  title?: string;
9
+ titleStyle?: any;
8
10
  children?: any;
9
11
  onClose?: any;
10
12
  }
11
13
  const OBottomPopup = (props: Props) => {
12
14
  const {
13
15
  open,
16
+ containerStyle,
14
17
  title,
18
+ titleStyle,
15
19
  onClose,
16
20
  children
17
21
  } = props
@@ -29,9 +33,9 @@ const OBottomPopup = (props: Props) => {
29
33
  >
30
34
  <View style={styles.touchableOutsideStyle} />
31
35
  </TouchableWithoutFeedback>
32
- <View style={styles.bottomContainer}>
36
+ <View style={{ ...styles.bottomContainer, ...containerStyle }}>
33
37
  <View>
34
- <Text style={styles.titleStyle}>
38
+ <Text style={{ ...styles.titleStyle, ...titleStyle }}>
35
39
  {title}
36
40
  </Text>
37
41
  {children}
package/src/index.tsx CHANGED
@@ -36,6 +36,7 @@ import { LogoutButton } from './components/LogoutButton';
36
36
  import { Messages } from './components/Messages';
37
37
  import { MomentOption } from './components/MomentOption';
38
38
  import NavBar from './components/NavBar';
39
+ import { NotificationSetting } from './components/NotificationSetting'
39
40
  import { NotFoundSource } from './components/NotFoundSource';
40
41
  import { OrderCreating } from './components/OrderCreating';
41
42
  import { OrderDetails } from './components/OrderDetails';
@@ -136,6 +137,7 @@ export {
136
137
  Messages,
137
138
  MomentOption,
138
139
  NavBar,
140
+ NotificationSetting,
139
141
  NotFoundSource,
140
142
  OrderCreating,
141
143
  OrderDetails,
@@ -1,24 +1,25 @@
1
- import React, {useEffect} from 'react'
1
+ import React, { useEffect } from 'react'
2
2
  import { BusinessesListing as BusinessListingController } from '../components/BusinessesListing'
3
3
  import styled from 'styled-components/native'
4
4
  import { useTheme } from 'styled-components/native'
5
5
 
6
6
  const BusinessesListing = (props: any) => {
7
7
  const theme = useTheme()
8
- const businessId = props.route.params?.businessId
8
+ const businessId = props.route.params?.businessId
9
9
  const categoryId = props.route.params?.categoryId
10
- const productId = props.route.params?.productId
11
- const store = props.route.params?.store
10
+ const productId = props.route.params?.productId
11
+ const store = props.route.params?.store
12
12
 
13
13
  useEffect(() => {
14
- if(store){
15
- props.navigation.navigate('Business', {store,businessId,categoryId,productId})
14
+ if (store) {
15
+ props.navigation.navigate('Business', { store, businessId, categoryId, productId })
16
16
  return
17
17
  }
18
18
  }, [businessId, categoryId, productId, store])
19
19
 
20
20
  const BusinessesListingProps = {
21
21
  ...props,
22
+ navigation: props?.navigation,
22
23
  isSearchByName: true,
23
24
  isSearchByDescription: true,
24
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'],
@@ -2,7 +2,7 @@ import React from 'react'
2
2
  import { OrderDetails as OrderDetailsController } from '../components/OrderDetails'
3
3
  import { SafeAreaContainer } from '../layouts/SafeAreaContainer'
4
4
 
5
- const OrderDetails = ({ navigation, route } : any) => {
5
+ const OrderDetails = ({ navigation, route }: any) => {
6
6
  const orderDetailsProps = {
7
7
  navigation,
8
8
  orderId: route.params?.orderId,
@@ -1,14 +1,14 @@
1
1
  import React from 'react'
2
2
  import { Platform } from 'react-native';
3
3
  import styled from 'styled-components/native';
4
- import {ReviewDriver as ReviewDriverController} from '../components/ReviewDriver'
4
+ import { ReviewDriver as ReviewDriverController } from '../components/ReviewDriver'
5
5
  import { SafeAreaContainer } from '../layouts/SafeAreaContainer';
6
6
 
7
7
  const KeyboardView = styled.KeyboardAvoidingView`
8
8
  flex: 1;
9
9
  `;
10
10
 
11
- const ReviewDriver = ({navigation, route} : any) => {
11
+ const ReviewDriver = ({ navigation, route }: any) => {
12
12
  const reviewDriverProps = {
13
13
  navigation,
14
14
  order: route?.params?.order,
@@ -1,14 +1,14 @@
1
1
  import React from 'react'
2
2
  import { Platform } from 'react-native';
3
3
  import styled from 'styled-components/native';
4
- import {ReviewOrder as ReviewOrderController} from '../components/ReviewOrder'
4
+ import { ReviewOrder as ReviewOrderController } from '../components/ReviewOrder'
5
5
  import { SafeAreaContainer } from '../layouts/SafeAreaContainer';
6
6
 
7
7
  const KeyboardView = styled.KeyboardAvoidingView`
8
8
  flex: 1;
9
9
  `;
10
10
 
11
- const ReviewOrder = ({navigation, route} : any) => {
11
+ const ReviewOrder = ({ navigation, route }: any) => {
12
12
  const reviewOrderProps = {
13
13
  navigation,
14
14
  order: route?.params?.order,
package/src/theme.json CHANGED
@@ -19,7 +19,6 @@
19
19
  "backgroundPage": "#FFFFFF",
20
20
  "colorPage": "#333",
21
21
  "red": "#D83520",
22
- "skyBlue": "#1977F2",
23
22
  "white": "#fff",
24
23
  "whiteGray": "#f7f6f3",
25
24
  "dusk": "rgb(65,77,107)",
@@ -0,0 +1 @@
1
+ declare module '@fatnlazycat/react-native-recaptcha-v3'
@@ -17,6 +17,8 @@ export interface LoginParams {
17
17
  handleSendVerifyCode?: any;
18
18
  handleCheckPhoneCode?: any;
19
19
  notificationState?: any;
20
+ handleReCaptcha?: (token: string) => void;
21
+ enableReCaptcha?: any;
20
22
  }
21
23
  export interface ProfileParams {
22
24
  navigation?: any;
@@ -99,6 +101,8 @@ export interface SignupParams {
99
101
  handleSendVerifyCode?: any;
100
102
  handleCheckPhoneCode?: any;
101
103
  notificationState?: any;
104
+ enableReCaptcha?: boolean;
105
+ handleReCaptcha?: (token: string) => void;
102
106
  }
103
107
 
104
108
  export interface PhoneInputParams {
@@ -248,8 +252,8 @@ export interface OrdersOptionParams {
248
252
  navigation?: any,
249
253
  loadOrders?: any,
250
254
  setOrderList?: any,
251
- setOrdersLength?: ({activeOrdersLength, previousOrdersLength} : {activeOrdersLength: number, previousOrdersLength: number}) => void,
252
- ordersLength: {activeOrdersLength: number, previousOrdersLength: number}
255
+ setOrdersLength?: ({ activeOrdersLength, previousOrdersLength }: { activeOrdersLength: number, previousOrdersLength: number }) => void,
256
+ ordersLength: { activeOrdersLength: number, previousOrdersLength: number }
253
257
  }
254
258
  export interface ActiveOrdersParams {
255
259
  orders?: any,
@@ -347,7 +351,7 @@ export interface MessagesParams {
347
351
  messages?: any,
348
352
  message?: string,
349
353
  image?: string,
350
- messagesToShow?: any ,
354
+ messagesToShow?: any,
351
355
  sendMessage?: any,
352
356
  handleSend?: () => {},
353
357
  setImage?: (image: string | null) => {},
@@ -416,7 +420,7 @@ export interface UpsellingProductsParams {
416
420
  setOpenUpselling?: any;
417
421
  onRedirect?: any;
418
422
  businessId?: number;
419
- cartProducts?: Array<any>;
423
+ cartProducts?: Array<any>;
420
424
  handleUpsellingPage: () => void;
421
425
  openUpselling: boolean;
422
426
  canOpenUpselling?: boolean;
@@ -424,16 +428,16 @@ export interface UpsellingProductsParams {
424
428
  }
425
429
 
426
430
  export interface GoogleMapsParams {
427
- location: {lat: number, lng: number}
428
- handleChangeAddressMap?: (address : any, details : any) => void
429
- setErrors?: (error : string) => void
431
+ location: { lat: number, lng: number }
432
+ handleChangeAddressMap?: (address: any, details: any) => void
433
+ setErrors?: (error: string) => void
430
434
  maxLimitLocation?: number
431
435
  readOnly?: boolean
432
436
  markerTitle?: string,
433
437
  saveLocation?: boolean,
434
438
  isSetInputs?: boolean,
435
439
  locations?: Array<any>,
436
- setSaveLocation?: (val : boolean) => void,
440
+ setSaveLocation?: (val: boolean) => void,
437
441
  handleToggleMap?: () => void
438
442
  }
439
443
 
@@ -481,7 +485,7 @@ export interface HelpAccountAndPaymentParams {
481
485
 
482
486
  export interface StripeMethodFormParams {
483
487
  cart: any;
484
- handleSource: ({id, card} : {id : string, card : any}) => void;
488
+ handleSource: ({ id, card }: { id: string, card: any }) => void;
485
489
  onCancel: () => void;
486
490
  setErrors: (error: string) => void;
487
491
  paymethod: string;
@@ -34,7 +34,6 @@ export const getTraduction = (key: string, t: any) => {
34
34
  ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY: 'Error adding product, very far for delivery',
35
35
  ERROR_PRODUCT_NOT_FOUND: 'Error with the product',
36
36
  ERROR_ADD_BUSINESS_INVALID: 'An error occurred with the business',
37
- ERROR_INVALID_OFFER: 'The offer doesn\'t exist'
38
37
  }
39
38
 
40
39
  return keyList[key] ? t(key, keyList[key]) : t(key)
@@ -39,6 +39,8 @@ import { VerifyPhone } from './src/components/VerifyPhone';
39
39
  import { DriverMap } from './src/components/DriverMap';
40
40
  import { MapViewUI as MapView } from './src/components/MapView'
41
41
  import { NewOrderNotification } from './src/components/NewOrderNotification';
42
+ import { DriverSchedule } from './src/components/DriverSchedule';
43
+ import { ScheduleBlocked } from './src/components/ScheduleBlocked';
42
44
  //OComponents
43
45
  import {
44
46
  OText,
@@ -106,6 +108,8 @@ export {
106
108
  UserFormDetailsUI,
107
109
  UserProfileForm,
108
110
  VerifyPhone,
111
+ DriverSchedule,
112
+ ScheduleBlocked,
109
113
  //OComponents
110
114
  OAlert,
111
115
  OButton,
@@ -67,11 +67,11 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
67
67
  shadowColor: '#000',
68
68
  shadowOffset: {
69
69
  width: 0,
70
- height: 1.5,
70
+ height: business?.logo ? 1.5 : 0,
71
71
  },
72
72
  shadowOpacity: 0.21,
73
73
  shadowRadius: 3,
74
- elevation: 7,
74
+ elevation: business?.logo ? 7 : 0,
75
75
  },
76
76
  header: {
77
77
  flexDirection: 'row',
@@ -44,33 +44,6 @@ import { USER_TYPE } from '../../config/constants';
44
44
 
45
45
  import SignatureScreen from 'react-native-signature-canvas';
46
46
 
47
- const ORDER_STATUS: any = {
48
- 0: 'ORDER_STATUS_PENDING',
49
- 1: 'ORDERS_COMPLETED',
50
- 2: 'ORDER_REJECTED',
51
- 3: 'ORDER_STATUS_IN_BUSINESS',
52
- 4: 'ORDER_READY',
53
- 5: 'ORDER_REJECTED_RESTAURANT',
54
- 6: 'ORDER_STATUS_CANCELLEDBYDRIVER',
55
- 7: 'ORDER_STATUS_ACCEPTEDBYRESTAURANT',
56
- 8: 'ORDER_CONFIRMED_ACCEPTED_BY_DRIVER',
57
- 9: 'ORDER_PICKUP_COMPLETED_BY_DRIVER',
58
- 10: 'ORDER_PICKUP_FAILED_BY_DRIVER',
59
- 11: 'ORDER_DELIVERY_COMPLETED_BY_DRIVER',
60
- 12: 'ORDER_DELIVERY_FAILED_BY_DRIVER',
61
- 13: 'PREORDER',
62
- 14: 'ORDER_NOT_READY',
63
- 15: 'ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER',
64
- 16: 'ORDER_STATUS_CANCELLED_BY_CUSTOMER',
65
- 17: 'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
66
- 18: 'ORDER_DRIVER_ALMOST_ARRIVED_BUSINESS',
67
- 19: 'ORDER_DRIVER_ALMOST_ARRIVED_CUSTOMER',
68
- 20: 'ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS',
69
- 21: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
70
- 22: 'ORDER_LOOKING_FOR_DRIVER',
71
- 23: 'ORDER_DRIVER_ON_WAY'
72
- }
73
-
74
47
  const filterSpecialStatus = ['prepared_in', 'delivered_in', 'delivery_datetime']
75
48
 
76
49
  const ChatUI = (props: MessagesParams) => {
@@ -97,6 +70,33 @@ const ChatUI = (props: MessagesParams) => {
97
70
  const theme = useTheme();
98
71
  const [messageList, setMessageList] = useState<any>([])
99
72
 
73
+ const ORDER_STATUS: any = {
74
+ 0: t('ORDER_STATUS_PENDING', 'Order status pending'),
75
+ 1: t('ORDERS_COMPLETED', 'Order completed'),
76
+ 2: t('ORDER_REJECTED', 'Order rejected'),
77
+ 3: t('ORDER_STATUS_IN_BUSINESS', 'Order status in business'),
78
+ 4: t('ORDER_READY', 'Order ready'),
79
+ 5: t('ORDER_REJECTED_RESTAURANT', 'Order rejected by restaurant'),
80
+ 6: t('ORDER_STATUS_CANCELLEDBYDRIVER', 'Order status cancelled by driver'),
81
+ 7: t('ORDER_STATUS_ACCEPTEDBYRESTAURANT', 'Order status accepted by restaurant'),
82
+ 8: t('ORDER_CONFIRMED_ACCEPTED_BY_DRIVER', 'Order confirmed accepted by driver'),
83
+ 9: t('ORDER_PICKUP_COMPLETED_BY_DRIVER', 'Order pickup completed by driver'),
84
+ 10: t('ORDER_PICKUP_FAILED_BY_DRIVER', 'Order pickup failed by driver'),
85
+ 11: t('ORDER_DELIVERY_COMPLETED_BY_DRIVER', 'Order delivery completed by driver'),
86
+ 12: t('ORDER_DELIVERY_FAILED_BY_DRIVER', 'Order delivery failed by driver'),
87
+ 13: t('PREORDER', 'Preorder'),
88
+ 14: t('ORDER_NOT_READY', 'Order not ready'),
89
+ 15: t('ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER', 'Order picked up completed by customer'),
90
+ 16: t('ORDER_STATUS_CANCELLED_BY_CUSTOMER', 'Order status cancelled by customer'),
91
+ 17: t('ORDER_NOT_PICKEDUP_BY_CUSTOMER', 'Order not picked up by customer'),
92
+ 18: t('ORDER_DRIVER_ALMOST_ARRIVED_BUSINESS', 'Order driver almost arrived to business'),
93
+ 19: t('ORDER_DRIVER_ALMOST_ARRIVED_CUSTOMER', 'Order driver almost arrived to customer'),
94
+ 20: t('ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', 'Order customer almost arrived to business'),
95
+ 21: t('ORDER_CUSTOMER_ARRIVED_BUSINESS', 'Order customer arrived to business'),
96
+ 22: t('ORDER_LOOKING_FOR_DRIVER', 'Order looking for driver'),
97
+ 23: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
98
+ }
99
+
100
100
  const storeMessageList: any = [
101
101
  { key: 'store_message_1', text: t('STORE_MESSAGE_1', 'store_message_1') },
102
102
  { key: 'store_message_2', text: t('STORE_MESSAGE_2', 'store_message_2') },
@@ -111,6 +111,13 @@ const ChatUI = (props: MessagesParams) => {
111
111
  { key: 'driver_message_4', text: t('DRIVER_MESSAGE_4', 'driver_message_4') }
112
112
  ]
113
113
 
114
+ const adminMessageList: any = [
115
+ { key: 'message_1', text: t('ADMIN_MESSAGE_1', 'admin_message_1') },
116
+ { key: 'message_2', text: t('ADMIN_MESSAGE_2', 'admin_message_2') },
117
+ { key: 'message_3', text: t('ADMIN_MESSAGE_3', 'admin_message_3') },
118
+ { key: 'message_4', text: t('ADMIN_MESSAGE_4', 'admin_message_4') }
119
+ ]
120
+
114
121
  const handleClickQuickMessage = (text: string) => {
115
122
  setMessage && setMessage(`${message}${text}`)
116
123
  }
@@ -370,7 +377,7 @@ const ChatUI = (props: MessagesParams) => {
370
377
  ?
371
378
  `${t('ORDER', 'Order')} ${t(message.change.attribute.toUpperCase(), message.change.attribute.replace('_', ' '))} ${t('CHANGED_FROM', 'Changed from')} ${filterSpecialStatus.includes(message.change.attribute) ?
372
379
  `${message.change.old === null ? '0' : message.change.old} ${t('TO', 'to')} ${message.change.new} ${t('MINUTES', 'Minutes')}` :
373
- `${message.change.old !== null && t(ORDER_STATUS[parseInt(message.change.old, 10)])} ${t('TO', 'to')} ${t(ORDER_STATUS[parseInt(message.change.new, 10)])}`
380
+ `${message.change.old !== null && ORDER_STATUS[parseInt(message.change.old, 10)]} ${t('TO', 'to')} ${ORDER_STATUS[parseInt(message.change.new, 10)]}`
374
381
  }`
375
382
  : message.change.new
376
383
  ?
@@ -426,7 +433,8 @@ const ChatUI = (props: MessagesParams) => {
426
433
  };
427
434
 
428
435
  useEffect(() => {
429
- if (user.level === 2) setMessageList(storeMessageList)
436
+ if (user.level === 0) setMessageList(adminMessageList)
437
+ else if (user.level === 2) setMessageList(storeMessageList)
430
438
  else if (user.level === 4) setMessageList(driverMessageList)
431
439
  else setMessageList([])
432
440
  }, [user])
@@ -484,12 +492,12 @@ const ChatUI = (props: MessagesParams) => {
484
492
  image: message.source,
485
493
  system: message.type === 1,
486
494
  user: {
487
- _id: message.author.id,
488
- name: message.author.name,
495
+ _id: message.author?.id,
496
+ name: message.author?.name,
489
497
  can_see: message?.can_see,
490
- level: message.author.level,
498
+ level: message.author?.level,
491
499
  avatar:
492
- message.author.id !== user?.id && type === USER_TYPE.DRIVER
500
+ message.author?.id !== user?.id && type === USER_TYPE.DRIVER
493
501
  ? order?.driver?.photo
494
502
  : order?.business?.logo,
495
503
  },
@@ -734,7 +742,7 @@ const ChatUI = (props: MessagesParams) => {
734
742
  color: '#414954'
735
743
  }}
736
744
  style={{ ...styles.editButton }}
737
- onClick={() => handleClickQuickMessage(quickMessage.text)}
745
+ onClick={() => handleClickQuickMessage(message?.length > 0 ? ' ' + quickMessage.text : quickMessage.text)}
738
746
  />
739
747
  </React.Fragment>
740
748
  ))}
@@ -13,6 +13,7 @@ import { useTheme } from 'styled-components/native';
13
13
  import { useLocation } from '../../hooks/useLocation';
14
14
  import { FloatingButton } from '../FloatingButton';
15
15
  import { showLocation } from 'react-native-map-link';
16
+ import { transformDistance } from '../../utils';
16
17
 
17
18
  export const DriverMap = (props: GoogleMapsParams) => {
18
19
  const {
@@ -56,6 +57,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
56
57
  content: Array<string>;
57
58
  key?: string | null;
58
59
  }>({ open: false, content: [], key: null });
60
+ const distanceUnit = configState?.configs?.distance_unit?.value
59
61
 
60
62
  const {
61
63
  hasLocation,
@@ -475,9 +477,10 @@ export const DriverMap = (props: GoogleMapsParams) => {
475
477
  src={theme.images.general.arrow_distance}
476
478
  style={styles.arrowDistance}
477
479
  />
478
- <OText size={12} numberOfLines={3}>{`${(
479
- distancesFromTwoPlacesKm * 3280.84
480
- ).toFixed(0)} ${t('FT', 'Ft')}`}</OText>
480
+ <OText size={12} numberOfLines={3}>
481
+ {`${transformDistance(distancesFromTwoPlacesKm, distanceUnit)} ${t(distanceUnit.toUpperCase(), distanceUnit)}`}
482
+ </OText>
483
+
481
484
  </View>
482
485
  <View style={{ width: '75%', paddingRight: 20 }}>
483
486
  <OText
@@ -485,8 +488,7 @@ export const DriverMap = (props: GoogleMapsParams) => {
485
488
  size={13}
486
489
  numberOfLines={2}
487
490
  adjustsFontSizeToFit>
488
- {`${travelTime.toFixed(2)} - ${isMin ? t('MINNUTES', 'mins') : t('HOURS', 'hours')
489
- } ${distancesFromTwoPlacesKm.toFixed(2)} km`}
491
+ {`${travelTime.toFixed(2)} - ${isMin ? t('MINNUTES', 'mins') : t('HOURS', 'hours')}`}
490
492
  </OText>
491
493
  </View>
492
494
  </View>
@@ -0,0 +1,71 @@
1
+ import React, { useState } from 'react'
2
+ import { RefreshControl, ScrollView, View } from 'react-native'
3
+ import { OText } from '../shared'
4
+ import { useLanguage, useSession } from 'ordering-components/native'
5
+ import { DayContainer } from './styles'
6
+ import { useTheme } from 'styled-components/native'
7
+ export const DriverSchedule = (props: any) => {
8
+ const { schedule } = props
9
+ const [, t] = useLanguage()
10
+ const theme = useTheme()
11
+ const [, { refreshUserInfo }] = useSession()
12
+ const [refreshing] = useState(false);
13
+
14
+ const daysOfWeek = [
15
+ t('SUNDAY_ABBREVIATION', 'Sun'),
16
+ t('MONDAY_ABBREVIATION', 'Mon'),
17
+ t('TUESDAY_ABBREVIATION', 'Tues'),
18
+ t('WEDNESDAY_ABBREVIATION', 'Wed'),
19
+ t('THURSDAY_ABBREVIATION', 'Thur'),
20
+ t('FRIDAY_ABBREVIATION', 'Fri'),
21
+ t('SATURDAY_ABBREVIATION', 'Sat')
22
+ ]
23
+
24
+ const scheduleFormatted = ({ hour, minute }: any) => {
25
+ const checkTime = (val: number) => val < 10 ? `0${val}` : val
26
+ return `${checkTime(hour)}:${checkTime(minute)}`
27
+ }
28
+
29
+ return (
30
+ <ScrollView
31
+ refreshControl={<RefreshControl
32
+ refreshing={refreshing}
33
+ onRefresh={() => refreshUserInfo()}
34
+ />}
35
+ >
36
+ <OText size={24} style={{ paddingLeft: 30 }}>
37
+ {t('SCHEDULE', 'Schedule')}
38
+ </OText>
39
+ <View style={{ padding: 30 }}>
40
+ {schedule.map((item: any, i: number) => (
41
+ <DayContainer key={daysOfWeek[i]}>
42
+ <OText style={{ width: '20%' }} size={22} weight={700}>{daysOfWeek[i]}</OText>
43
+ <View style={{ width: '80%', alignItems: 'center' }}>
44
+ <>
45
+ {item?.enabled ? (
46
+ <View>
47
+ {item?.lapses.map((lapse: any, i: number) => (
48
+ <View key={`${daysOfWeek[i]}_${i}`} style={{ marginTop: 3, marginBottom: 20, flexDirection: 'row', justifyContent: 'space-between' }}>
49
+ <OText size={18} style={{ width: '30%' }}>
50
+ {scheduleFormatted(lapse.open)}
51
+ </OText>
52
+ <OText size={18} style={{ width: 15 }}>
53
+ -
54
+ </OText>
55
+ <OText size={18} style={{ width: '30%' }}>
56
+ {scheduleFormatted(lapse.close)}
57
+ </OText>
58
+ </View>
59
+ ))}
60
+ </View>
61
+ ) : (
62
+ <OText size={18} style={{ marginTop: 3, marginBottom: 10 }} color={theme.colors.red}>{t('NOT_AVAILABLE', 'Not available')}</OText>
63
+ )}
64
+ </>
65
+ </View>
66
+ </DayContainer>
67
+ ))}
68
+ </View>
69
+ </ScrollView>
70
+ )
71
+ }
@@ -0,0 +1,6 @@
1
+ import styled from "styled-components/native";
2
+
3
+ export const DayContainer = styled.View`
4
+ flex-direction: row;
5
+ width: 100%;
6
+ `