ordering-ui-react-native 0.16.10 → 0.16.11-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 (213) hide show
  1. package/package.json +8 -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 +22 -0
  9. package/src/components/BusinessProductsList/index.tsx +7 -7
  10. package/src/components/BusinessTypeFilter/index.tsx +1 -2
  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 +7 -21
  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/StripeMethodForm/index.tsx +1 -2
  29. package/src/components/VerifyPhone/styles.tsx +1 -2
  30. package/src/components/shared/OBottomPopup.tsx +6 -2
  31. package/src/index.tsx +2 -0
  32. package/src/navigators/CheckoutNavigator.tsx +6 -0
  33. package/src/navigators/HomeNavigator.tsx +6 -0
  34. package/src/pages/BusinessesListing.tsx +7 -6
  35. package/src/pages/MultiCheckout.tsx +31 -0
  36. package/src/pages/MultiOrdersDetails.tsx +27 -0
  37. package/src/pages/OrderDetails.tsx +1 -1
  38. package/src/pages/ReviewDriver.tsx +2 -2
  39. package/src/pages/ReviewOrder.tsx +2 -2
  40. package/src/theme.json +0 -1
  41. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  42. package/src/types/index.tsx +13 -9
  43. package/src/utils/index.tsx +0 -1
  44. package/themes/business/index.tsx +4 -0
  45. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  46. package/themes/business/src/components/Chat/index.tsx +42 -34
  47. package/themes/business/src/components/DriverMap/index.tsx +13 -10
  48. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  49. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  50. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  51. package/themes/business/src/components/MapView/index.tsx +1 -1
  52. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  53. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  54. package/themes/business/src/components/OrderDetails/Delivery.tsx +3 -3
  55. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +19 -18
  56. package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
  57. package/themes/business/src/components/OrdersOption/index.tsx +65 -21
  58. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  59. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  60. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  61. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  62. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  63. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  64. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  65. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  66. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  67. package/themes/business/src/components/PreviousOrders/index.tsx +21 -23
  68. package/themes/business/src/components/ProductItemAccordion/index.tsx +5 -4
  69. package/themes/business/src/components/ReviewCustomer/index.tsx +1 -1
  70. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  71. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  72. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  73. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  74. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  75. package/themes/business/src/components/shared/OModal.tsx +40 -37
  76. package/themes/business/src/types/index.tsx +14 -9
  77. package/themes/business/src/utils/index.tsx +10 -0
  78. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  79. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  80. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  81. package/themes/kiosk/src/components/BusinessMenu/index.tsx +2 -1
  82. package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
  83. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +1 -0
  84. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  85. package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
  86. package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
  87. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  88. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  89. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  90. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  91. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  92. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  93. package/themes/kiosk/src/types/index.d.ts +2 -0
  94. package/themes/original/index.tsx +16 -0
  95. package/themes/original/src/components/AddressForm/index.tsx +136 -133
  96. package/themes/original/src/components/AddressList/index.tsx +1 -1
  97. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  98. package/themes/original/src/components/BusinessBasicInformation/index.tsx +302 -160
  99. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  100. package/themes/original/src/components/BusinessController/index.tsx +173 -108
  101. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -9
  102. package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
  103. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  104. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  105. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  106. package/themes/original/src/components/BusinessListingSearch/index.tsx +106 -126
  107. package/themes/original/src/components/BusinessListingSearch/styles.tsx +18 -13
  108. package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
  109. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  110. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  111. package/themes/original/src/components/BusinessProductsList/index.tsx +61 -72
  112. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  113. package/themes/original/src/components/BusinessProductsListing/index.tsx +290 -181
  114. package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -0
  115. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  116. package/themes/original/src/components/BusinessTypeFilter/index.tsx +106 -38
  117. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  118. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
  119. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -2
  120. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +673 -0
  121. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  122. package/themes/original/src/components/BusinessesListing/index.tsx +100 -484
  123. package/themes/original/src/components/Cart/index.tsx +81 -36
  124. package/themes/original/src/components/Cart/styles.tsx +4 -0
  125. package/themes/original/src/components/CartContent/index.tsx +22 -16
  126. package/themes/original/src/components/Checkout/index.tsx +106 -66
  127. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  128. package/themes/original/src/components/DriverTips/index.tsx +4 -4
  129. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  130. package/themes/original/src/components/Favorite/index.tsx +1 -0
  131. package/themes/original/src/components/Favorite/styles.tsx +1 -0
  132. package/themes/original/src/components/FavoriteList/index.tsx +143 -94
  133. package/themes/original/src/components/GPSButton/index.tsx +25 -17
  134. package/themes/original/src/components/GoogleMap/index.tsx +20 -12
  135. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +8 -3
  136. package/themes/original/src/components/HelpGuide/index.tsx +8 -3
  137. package/themes/original/src/components/HelpOrder/index.tsx +8 -3
  138. package/themes/original/src/components/LoginForm/Otp/index.tsx +3 -2
  139. package/themes/original/src/components/LoginForm/index.tsx +79 -42
  140. package/themes/original/src/components/Messages/index.tsx +17 -17
  141. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  142. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  143. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
  144. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
  145. package/themes/original/src/components/MultiCheckout/index.tsx +304 -0
  146. package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
  147. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
  148. package/themes/original/src/components/MultiOrdersDetails/index.tsx +262 -0
  149. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
  150. package/themes/original/src/components/MyOrders/index.tsx +177 -27
  151. package/themes/original/src/components/MyOrders/styles.tsx +8 -1
  152. package/themes/original/src/components/NavBar/index.tsx +11 -5
  153. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  154. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  155. package/themes/original/src/components/OrderDetails/index.tsx +125 -40
  156. package/themes/original/src/components/OrderDetails/styles.tsx +5 -2
  157. package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
  158. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  159. package/themes/original/src/components/OrderProgress/index.tsx +8 -2
  160. package/themes/original/src/components/OrderSummary/index.tsx +1 -34
  161. package/themes/original/src/components/OrderTypeSelector/index.tsx +84 -36
  162. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  163. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +144 -0
  164. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
  165. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +56 -0
  166. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
  167. package/themes/original/src/components/OrdersOption/index.tsx +126 -37
  168. package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
  169. package/themes/original/src/components/PaymentOptions/index.tsx +57 -37
  170. package/themes/original/src/components/PhoneInputNumber/index.tsx +4 -10
  171. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  172. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  173. package/themes/original/src/components/ProductForm/index.tsx +712 -655
  174. package/themes/original/src/components/ProductForm/styles.tsx +9 -7
  175. package/themes/original/src/components/ProductItemAccordion/index.tsx +37 -24
  176. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  177. package/themes/original/src/components/ProfessionalFilter/index.tsx +129 -0
  178. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  179. package/themes/original/src/components/ProfessionalProfile/index.tsx +309 -0
  180. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  181. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  182. package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
  183. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  184. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  185. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  186. package/themes/original/src/components/SearchBar/index.tsx +10 -5
  187. package/themes/original/src/components/ServiceForm/index.tsx +608 -0
  188. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  189. package/themes/original/src/components/SignupForm/index.tsx +301 -158
  190. package/themes/original/src/components/SingleOrderCard/index.tsx +213 -177
  191. package/themes/original/src/components/SingleProductCard/index.tsx +198 -110
  192. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
  193. package/themes/original/src/components/SingleProductReview/index.tsx +30 -3
  194. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  195. package/themes/original/src/components/StripeElementsForm/index.tsx +25 -9
  196. package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
  197. package/themes/original/src/components/UpsellingProducts/index.tsx +14 -4
  198. package/themes/original/src/components/UserDetails/index.tsx +32 -18
  199. package/themes/original/src/components/UserFormDetails/index.tsx +107 -73
  200. package/themes/original/src/components/UserProfile/index.tsx +8 -1
  201. package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
  202. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  203. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  204. package/themes/original/src/components/Wallets/index.tsx +176 -162
  205. package/themes/original/src/components/Wallets/styles.tsx +10 -8
  206. package/themes/original/src/components/shared/OBottomPopup.tsx +47 -14
  207. package/themes/original/src/components/shared/OButton.tsx +10 -3
  208. package/themes/original/src/components/shared/OInput.tsx +3 -2
  209. package/themes/original/src/components/shared/OModal.tsx +3 -1
  210. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  211. package/themes/original/src/types/index.tsx +160 -47
  212. package/themes/original/src/utils/index.tsx +77 -0
  213. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ordering-ui-react-native",
3
- "version": "0.16.10",
3
+ "version": "0.16.11-release",
4
4
  "description": "Reusable components made in react native",
5
5
  "main": "src/index.tsx",
6
6
  "author": "ordering.inc",
@@ -33,6 +33,7 @@
33
33
  "lint": "eslint ."
34
34
  },
35
35
  "dependencies": {
36
+ "@fatnlazycat/react-native-recaptcha-v3": "^1.0.3",
36
37
  "@invertase/react-native-apple-authentication": "^2.1.5",
37
38
  "@react-native-async-storage/async-storage": "^1.15.5",
38
39
  "@react-native-clipboard/clipboard": "^1.8.4",
@@ -57,7 +58,7 @@
57
58
  "@types/styled-components": "^5.1.3",
58
59
  "axios": "^0.21.0",
59
60
  "moment": "^2.29.1",
60
- "ordering-components": "github:Ordering-Inc/ordering-components#development",
61
+ "ordering-components": "github:Ordering-Inc/ordering-components#release",
61
62
  "patch-package": "^6.4.7",
62
63
  "postinstall-postinstall": "^2.1.0",
63
64
  "prop-types": "^15.7.2",
@@ -86,6 +87,7 @@
86
87
  "react-native-google-places-autocomplete": "^2.1.3",
87
88
  "react-native-html-to-pdf": "^0.10.0",
88
89
  "react-native-image-picker": "^4.0.6",
90
+ "react-native-intersection-observer": "^0.0.9",
89
91
  "react-native-lightbox": "^0.8.1",
90
92
  "react-native-linear-gradient": "^2.5.6",
91
93
  "react-native-loading-spinner-overlay": "^2.0.0",
@@ -109,6 +111,7 @@
109
111
  "react-native-sound": "^0.11.1",
110
112
  "react-native-swipe-gestures": "^1.0.5",
111
113
  "react-native-swiper": "^1.6.0",
114
+ "react-native-tracking-transparency": "^0.1.1",
112
115
  "react-native-uuid": "^2.0.1",
113
116
  "react-native-vector-icons": "^7.1.0",
114
117
  "react-native-webview": "^11.6.4",
@@ -123,9 +126,10 @@
123
126
  "@babel/core": "^7.11.6",
124
127
  "@babel/runtime": "^7.11.2",
125
128
  "@react-native-community/eslint-config": "^2.0.0",
126
- "@types/react": "^18.0.14",
127
- "@types/react-dom": "^18.0.5",
129
+ "@types/react": "^18.0.15",
130
+ "@types/react-dom": "^18.0.6",
128
131
  "@types/react-native": "^0.63.25",
132
+ "@types/react-native-calendar-picker": "^7.0.2",
129
133
  "babel-jest": "^26.3.0",
130
134
  "eslint": "^7.10.0",
131
135
  "jest": "^26.4.2",
@@ -7,7 +7,8 @@
7
7
  */
8
8
 
9
9
  import * as React from 'react';
10
- import { LogBox } from 'react-native';
10
+ import { LogBox, Platform } from 'react-native';
11
+ import * as Sentry from "@sentry/react-native";
11
12
  import { OrderingProvider } from 'ordering-components/native';
12
13
  import RNBootSplash from "react-native-bootsplash";
13
14
 
@@ -22,6 +23,47 @@ import theme from './theme.json';
22
23
  import AppContainer from './AppContainer';
23
24
  import { FacebookPixel } from './components/FacebookPixel';
24
25
 
26
+ Sentry.init({
27
+ environment: Platform.OS === 'ios' ? 'ios' : 'android',
28
+ dsn: 'https://e5e1115dc93b49109f4ab65f2098bef9@o460529.ingest.sentry.io/5722123',
29
+ release: 'ordering-ui-native@' + process.env.npm_package_version,
30
+ ignoreErrors: [
31
+ 'is not defined',
32
+ 'is not a function',
33
+ 'can\'t find variable',
34
+ 'objects are not valid',
35
+ 'element type is invalid',
36
+ 'requiring module',
37
+ 'has not been registered',
38
+ 'failed to connect to debugger!',
39
+ 'rendered more hooks than',
40
+ 'rendered fewer hooks than',
41
+ 'should have a queue',
42
+ 'the OS most likely terminated',
43
+ 'Connection timed out',
44
+ 'java.io.EOFException',
45
+ 'Abort',
46
+ 'Segfault',
47
+ 'Failed to allocate a',
48
+ 'Application Not Responding',
49
+ 'connection no longer valid',
50
+ 'IllegalInstruction',
51
+ 'React.Children.only expected to receive a single React element child.',
52
+ 'unrecognized selector sent to instance'
53
+ ],
54
+ tracesSampleRate: 0.2,
55
+ // Release health
56
+ enableAutoSessionTracking: true,
57
+ // Sessions close after app is 10 seconds in the background.
58
+ sessionTrackingIntervalMillis: 10000,
59
+
60
+ integrations: [
61
+ new Sentry.ReactNativeTracing({
62
+ routingInstrumentation: reactNavigationV5Instrumentation,
63
+ })
64
+ ]
65
+ });
66
+
25
67
  LogBox.ignoreLogs([
26
68
  'Sending \`onAnimatedValueUpdate` with no listeners registered.',
27
69
  'Non-serializable values were found in the navigation state.',
@@ -48,75 +48,73 @@ export const ActiveOrders = (props: ActiveOrdersParams) => {
48
48
  }, [orders.length])
49
49
 
50
50
  const Order = ({ order }: { order: any }) => (
51
- <React.Fragment>
52
- <Card
53
- isMiniCard={configs?.google_maps_api_key?.value}
54
- onPress={() => handleClickCard(order?.uuid)}
55
- >
56
- {!!(configs?.google_maps_api_key?.value) && (
57
- <Map>
51
+ <Card
52
+ isMiniCard={configs?.google_maps_api_key?.value}
53
+ onPress={() => handleClickCard(order?.uuid)}
54
+ >
55
+ {!!(configs?.google_maps_api_key?.value) && (
56
+ <Map>
57
+ <OIcon
58
+ url={getGoogleMapImage(order?.business?.location, configs?.google_maps_api_key?.value)}
59
+ height={100}
60
+ width={320}
61
+ style={{resizeMode: 'cover', borderTopRightRadius: 24, borderTopLeftRadius: 24}}
62
+ />
63
+ </Map>
64
+ )}
65
+ <Information>
66
+ {!!order.business?.logo && (
67
+ <Logo>
58
68
  <OIcon
59
- url={getGoogleMapImage(order?.business?.location, configs?.google_maps_api_key?.value)}
60
- height={100}
61
- width={320}
62
- style={{resizeMode: 'cover', borderTopRightRadius: 24, borderTopLeftRadius: 24}}
69
+ url={optimizeImage(order.business?.logo, 'h_300,c_limit')}
70
+ style={styles.logo}
63
71
  />
64
- </Map>
72
+ </Logo>
65
73
  )}
66
- <Information>
67
- {!!order.business?.logo && (
68
- <Logo>
69
- <OIcon
70
- url={optimizeImage(order.business?.logo, 'h_300,c_limit')}
71
- style={styles.logo}
72
- />
73
- </Logo>
74
- )}
75
- <OrderInformation>
76
- <BusinessInformation style={{ width: '60%' }}>
77
- <GestureHandlerScrollView
78
- showsVerticalScrollIndicator={false}
79
- showsHorizontalScrollIndicator={false}
80
- horizontal
81
- >
82
- <TouchableWithoutFeedback>
83
- <View>
84
- <OText
85
- size={16}
86
- numberOfLines={1}
87
- ellipsizeMode='tail'
88
- >
89
- {order.business?.name}
90
- </OText>
91
- </View>
92
- </TouchableWithoutFeedback>
93
- </GestureHandlerScrollView>
94
- <GestureHandlerScrollView
74
+ <OrderInformation>
75
+ <BusinessInformation style={{ width: '60%' }}>
76
+ <GestureHandlerScrollView
95
77
  showsVerticalScrollIndicator={false}
96
78
  showsHorizontalScrollIndicator={false}
97
79
  horizontal
98
- >
99
- <TouchableWithoutFeedback>
100
- <View style={styles.orderNumber}>
101
- <OText size={12} space color={theme.colors.textSecondary}>{t('ORDER_NUMBER', 'Order No.')}</OText>
102
- <OText size={12} color={theme.colors.textSecondary}>{order.id}</OText>
103
- </View>
104
- </TouchableWithoutFeedback>
105
- </GestureHandlerScrollView>
106
- <OText size={12} color={theme.colors.textSecondary}>{order?.delivery_datetime_utc
107
- ? parseDate(order?.delivery_datetime_utc)
108
- : parseDate(order?.delivery_datetime, { utc: false })}</OText>
109
- </BusinessInformation>
110
- <Price>
111
- <OText size={16}>{parsePrice(order?.summary?.total || order?.total)}</OText>
112
- {order?.status !== 0 && (
113
- <OText color={theme.colors.primary} size={12} numberOfLines={2}>{getOrderStatus(order.status)?.value}</OText>
114
- )}
115
- </Price>
116
- </OrderInformation>
117
- </Information>
118
- </Card>
119
- </React.Fragment>
80
+ >
81
+ <TouchableWithoutFeedback>
82
+ <View>
83
+ <OText
84
+ size={16}
85
+ numberOfLines={1}
86
+ ellipsizeMode='tail'
87
+ >
88
+ {order.business?.name}
89
+ </OText>
90
+ </View>
91
+ </TouchableWithoutFeedback>
92
+ </GestureHandlerScrollView>
93
+ <GestureHandlerScrollView
94
+ showsVerticalScrollIndicator={false}
95
+ showsHorizontalScrollIndicator={false}
96
+ horizontal
97
+ >
98
+ <TouchableWithoutFeedback>
99
+ <View style={styles.orderNumber}>
100
+ <OText size={12} space color={theme.colors.textSecondary}>{t('ORDER_NUMBER', 'Order No.')}</OText>
101
+ <OText size={12} color={theme.colors.textSecondary}>{order.id}</OText>
102
+ </View>
103
+ </TouchableWithoutFeedback>
104
+ </GestureHandlerScrollView>
105
+ <OText size={12} color={theme.colors.textSecondary}>{order?.delivery_datetime_utc
106
+ ? parseDate(order?.delivery_datetime_utc)
107
+ : parseDate(order?.delivery_datetime, { utc: false })}</OText>
108
+ </BusinessInformation>
109
+ <Price>
110
+ <OText size={16}>{parsePrice(order?.summary?.total || order?.total)}</OText>
111
+ {order?.status !== 0 && (
112
+ <OText color={theme.colors.primary} size={12} numberOfLines={2}>{getOrderStatus(order.status)?.value}</OText>
113
+ )}
114
+ </Price>
115
+ </OrderInformation>
116
+ </Information>
117
+ </Card>
120
118
  )
121
119
 
122
120
  return (
@@ -1,10 +1,6 @@
1
- import styled from 'styled-components/native'
1
+ import styled, { css } from 'styled-components/native'
2
2
 
3
- export const ActiveOrdersContainer = styled.ScrollView`
4
- margin-bottom: 20px;
5
- height: ${({ isMiniCards }: { isMiniCards: boolean }) => !isMiniCards ? '150px' : '220px'};
6
- max-height: ${({ isMiniCards }: { isMiniCards: boolean }) => !isMiniCards ? '150px' : '220px'};
7
- `
3
+ export const ActiveOrdersContainer = styled.ScrollView``
8
4
 
9
5
  export const Card = styled.TouchableOpacity`
10
6
  flex: 1;
@@ -13,25 +9,24 @@ export const Card = styled.TouchableOpacity`
13
9
  margin-right: 10px;
14
10
  min-width: 320px;
15
11
  width: 320px;
16
- height: ${({ isMiniCard }: { isMiniCard: boolean }) => !isMiniCard ? '100px' : '200px'};
12
+ margin-bottom: 10px;
13
+ ${({ isMiniCard }: { isMiniCard: boolean }) => !isMiniCard && css`
14
+ padding: 10px 0;
15
+ `};
17
16
  `
18
17
 
19
18
  export const Map = styled.View`
20
19
  flex: 1;
21
- height: 125px;
22
- margin-bottom: 10px;
23
20
  `
24
21
 
25
22
  export const Information = styled.View`
26
23
  flex-direction: row;
27
24
  flex: 1;
28
- height: 100px;
29
25
  align-items: center;
30
26
  padding: 10px;
31
27
  `
32
28
 
33
- export const Logo = styled.View`
34
- `
29
+ export const Logo = styled.View``
35
30
 
36
31
  export const OrderInformation = styled.View`
37
32
  flex-direction: row;
@@ -40,8 +35,7 @@ export const OrderInformation = styled.View`
40
35
  padding-left: 10px;
41
36
  `
42
37
 
43
- export const BusinessInformation = styled.View`
44
- `
38
+ export const BusinessInformation = styled.View``
45
39
 
46
40
  export const Price = styled.View`
47
41
  justify-content: space-between;
@@ -210,9 +210,25 @@ const AddressFormUI = (props: AddressFormParams) => {
210
210
  }
211
211
  if ( addressType === 'postal_code') {
212
212
  postalCode = component.short_name
213
+ if (isObjet) {
214
+ setValue('zipcode', postalCode)
215
+ handleChangeInput({ target: { name: 'zipcode', value: postalCode } })
216
+ }
213
217
  }
214
218
  }
215
219
  isObjet ? address = addressValue.join(', ') : address
220
+
221
+ if (isObjet) {
222
+ setValue('address', address)
223
+ googleInput?.current?.setAddressText(address)
224
+ setLoadingLocation(false)
225
+ updateChanges({
226
+ address: address,
227
+ location: json.results[0].geometry.location
228
+ })
229
+ return
230
+ }
231
+
216
232
  data.address = {
217
233
  address,
218
234
  location: json.results[0].geometry.location,
@@ -597,7 +613,7 @@ const AddressFormUI = (props: AddressFormParams) => {
597
613
  name='zipcode'
598
614
  rules={{ required: isRequiredField && isRequiredField('zipcode') ? t(`VALIDATION_ERROR_ZIP_CODE_REQUIRED`, `The field Zip Code is required`) : null }}
599
615
  defaultValue={address?.zipcode || formState.changes?.zipcode || addressState.address.zipcode || ''}
600
- render={() => (
616
+ render={({ value }) => (
601
617
  <OInput
602
618
  name='zipcode'
603
619
  placeholder={t('ZIP_CODE', 'Zip code')}
@@ -605,7 +621,7 @@ const AddressFormUI = (props: AddressFormParams) => {
605
621
  handleChangeInput(text)
606
622
  setValue('zipcode', text)
607
623
  }}
608
- value={address?.zipcode || formState.changes?.zipcode || addressState.address.zipcode || ''}
624
+ value={value || address?.zipcode || formState.changes?.zipcode || addressState.address.zipcode || ''}
609
625
  style={styles.inputsStyle}
610
626
  forwardRef={zipCodeRef}
611
627
  returnKeyType='next'
@@ -56,22 +56,14 @@ export const BusinessBasicInformation = (props: BusinessBasicInformationParams)
56
56
  }
57
57
  source={{ uri: header || optimizeImage(businessState?.business?.header, 'h_400,c_limit') }}
58
58
  >
59
- <BusinessLogo>
60
- {loading ? (
61
- <View style={{ marginLeft: 20 }}>
62
- <Placeholder Animation={Fade}>
63
- <PlaceholderLine height={50} width={20} />
64
- </Placeholder>
65
- </View>
66
- ) : (
67
- !isBusinessInfoShow && (
68
- <OIcon
69
- url={logo || optimizeImage(businessState?.business?.logo, 'h_300,c_limit')}
70
- style={styles.businessLogo}
71
- />
72
- )
73
- )}
74
- </BusinessLogo>
59
+ {!isBusinessInfoShow && (
60
+ <BusinessLogo>
61
+ <OIcon
62
+ url={logo || optimizeImage(businessState?.business?.logo, 'h_300,c_limit')}
63
+ style={styles.businessLogo}
64
+ />
65
+ </BusinessLogo>
66
+ )}
75
67
  </BusinessHeader>
76
68
  <BusinessInfo
77
69
  style={styles.businessInfo}
@@ -117,7 +109,7 @@ export const BusinessBasicInformation = (props: BusinessBasicInformationParams)
117
109
  <PlaceholderLine width={10} />
118
110
  </Placeholder>
119
111
  ) : (
120
- <View style={{width: '75%'}}>
112
+ <View style={{ width: '75%' }}>
121
113
  <OText color={theme.colors.textSecondary}>{getBusinessType()}</OText>
122
114
  </View>
123
115
  )}
@@ -187,7 +179,7 @@ export const BusinessBasicInformation = (props: BusinessBasicInformationParams)
187
179
  titleSectionStyle={styles.modalTitleSectionStyle}
188
180
  open={openBusinessInformation}
189
181
  onClose={() => setOpenBusinessInformation(false)}
190
- styleCloseButton={{color: theme.colors.white, backgroundColor: 'rgba(0,0,0,0.3)'}}
182
+ styleCloseButton={{ color: theme.colors.white, backgroundColor: 'rgba(0,0,0,0.3)' }}
191
183
  isNotDecoration
192
184
  >
193
185
  <BusinessInformation
@@ -199,7 +191,7 @@ export const BusinessBasicInformation = (props: BusinessBasicInformationParams)
199
191
  titleSectionStyle={styles.modalTitleSectionStyle}
200
192
  open={openBusinessReviews}
201
193
  onClose={() => setOpenBusinessReviews(false)}
202
- styleCloseButton={{color: theme.colors.white, backgroundColor: 'rgba(0,0,0,0.3)'}}
194
+ styleCloseButton={{ color: theme.colors.white, backgroundColor: 'rgba(0,0,0,0.3)' }}
203
195
  isNotDecoration
204
196
  >
205
197
  <BusinessReviews
@@ -146,16 +146,18 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
146
146
  />
147
147
  </BusinessLogo>
148
148
  <BusinessState>
149
- {(isBusinessOpen || !!getBusinessOffer(business?.offers)) && (
149
+ {(!isBusinessOpen || !!getBusinessOffer(business?.offers)) && (
150
150
  <View style={styles.businessStateView}>
151
151
  {getBusinessOffer(business?.offers) && (
152
152
  <OText color={theme.colors.white} size={18} style={styles.businessStateText}>
153
153
  {getBusinessOffer(business?.offers) || parsePrice(0)}
154
154
  </OText>
155
155
  )}
156
- <OText color={theme.colors.white} size={18} style={styles.businessStateText}>
157
- {t('PREORDER', 'PREORDER')}
158
- </OText>
156
+ {!isBusinessOpen && (
157
+ <OText color={theme.colors.white} size={18} style={styles.businessStateText}>
158
+ {t('PREORDER', 'PREORDER')}
159
+ </OText>
160
+ )}
159
161
  </View>
160
162
  )}
161
163
  </BusinessState>
@@ -164,10 +166,10 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
164
166
  <BusinessInfo>
165
167
  <View style={{ width: '70%', alignItems: 'flex-start' }}>
166
168
  <OText
167
- size={20}
168
- numberOfLines={1}
169
- ellipsizeMode='tail'
170
- >
169
+ size={20}
170
+ numberOfLines={1}
171
+ ellipsizeMode='tail'
172
+ >
171
173
  {business?.name}
172
174
  </OText>
173
175
  </View>
@@ -48,6 +48,28 @@ const BusinessInformationUI = (props: BusinessInformationParams) => {
48
48
  />
49
49
  <WrapMainContent>
50
50
  <InnerContent>
51
+ {(!!businessState?.business?.description) && (
52
+ <>
53
+ <GrayBackground>
54
+ <OText size={16} weight='bold'>{t('BUSINESS_DESCRIPTION', 'Business description')}</OText>
55
+ </GrayBackground>
56
+ <OText size={14} mBottom={20} mLeft={15} mRight={15} style={{ marginTop: 10 }}>{businessState?.business?.description}</OText>
57
+ </>
58
+ )}
59
+ {(!!businessState?.business?.email || !!businessState?.business?.cellphone) && (
60
+ <>
61
+ <GrayBackground>
62
+ <OText size={16} weight='bold'>{t('BUSINESS_DETAILS', 'Business Details')}</OText>
63
+ </GrayBackground>
64
+ {!!businessState?.business?.email && (
65
+ <OText size={14} mBottom={5} mLeft={15} style={{ marginTop: 10 }}>{t('EMAIL', 'Email')}: <OText color={theme.colors.textSecondary}>{businessState?.business?.email}</OText></OText>
66
+ )}
67
+ {!!businessState?.business?.cellphone && (
68
+ <OText size={14} mBottom={20} mLeft={15}>{t('CELLPHONE', 'Cellphone')}: <OText color={theme.colors.textSecondary}>{businessState?.business?.cellphone}</OText></OText>
69
+ )}
70
+ </>
71
+ )}
72
+
51
73
  <GrayBackground>
52
74
  <OText size={16} weight='bold'>{t('BUSINESS_LOCATION', 'Business Location')}</OText>
53
75
  </GrayBackground>
@@ -34,9 +34,9 @@ const BusinessProductsListUI = (props: BusinessProductsListParams) => {
34
34
  return (
35
35
  <ProductsContainer>
36
36
  {category.id && (
37
- categoryState.products?.sort((a: any, b: any) => a.rank - b.rank).map((product: any) => (
37
+ categoryState.products?.sort((a: any, b: any) => a.rank - b.rank).map((product: any, index: number) => (
38
38
  <SingleProductCard
39
- key={product.id}
39
+ key={`category${category.id}-${product.id}-${index}`}
40
40
  isSoldOut={(product.inventoried && !product.quantity)}
41
41
  product={product}
42
42
  businessId={businessId}
@@ -51,9 +51,9 @@ const BusinessProductsListUI = (props: BusinessProductsListParams) => {
51
51
  <>
52
52
  <OText size={18} weight='bold' mBottom={10}>{t('FEATURED', 'Featured')}</OText>
53
53
  <>
54
- {categoryState.products?.sort((a: any, b: any) => a.rank - b.rank).map((product: any) => product.featured && (
54
+ {categoryState.products?.sort((a: any, b: any) => a.rank - b.rank).map((product: any, index: number) => product.featured && (
55
55
  <SingleProductCard
56
- key={product.id}
56
+ key={`featured${product.id}-${index}`}
57
57
  isSoldOut={(product.inventoried && !product.quantity)}
58
58
  product={product}
59
59
  businessId={businessId}
@@ -70,16 +70,16 @@ const BusinessProductsListUI = (props: BusinessProductsListParams) => {
70
70
  !category.id && categories && categories.filter(category => category.id !== null).map((category, i, _categories) => {
71
71
  const products = categoryState.products?.filter((product: any) => product.category_id === category.id) || []
72
72
  return (
73
- <View key={category.id} style={{alignItems: 'flex-start', flex:1}}>
73
+ <View key={`category${category.id}`} style={{ alignItems: 'flex-start', flex: 1 }}>
74
74
  {
75
75
  products.length > 0 && (
76
76
  <>
77
77
  <OText size={18} weight='bold' mBottom={10}>{category.name}</OText>
78
78
  <>
79
79
  {
80
- products?.sort((a: any, b: any) => a.rank - b.rank).map((product: any) => (
80
+ products?.sort((a: any, b: any) => a.rank - b.rank).map((product: any, index: number) => (
81
81
  <SingleProductCard
82
- key={product.id}
82
+ key={`all${product.id}-${index}`}
83
83
  isSoldOut={product.inventoried && !product.quantity}
84
84
  businessId={businessId}
85
85
  product={product}
@@ -1,5 +1,5 @@
1
1
  import React, { useState } from 'react'
2
- import { StyleSheet, View, ScrollView, Dimensions, Platform, PlatformIOSStatic, Pressable } from 'react-native'
2
+ import { StyleSheet, View, ScrollView, Dimensions, Platform, PlatformIOSStatic, TouchableOpacity } from 'react-native'
3
3
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder'
4
4
  import { BusinessTypeFilter as BusinessTypeFilterController, useLanguage } from 'ordering-components/native'
5
5
 
@@ -9,7 +9,6 @@ import { BusinessTypeFilterParams } from '../../types'
9
9
  import { useTheme } from 'styled-components/native'
10
10
  import MaterialIcon from 'react-native-vector-icons/MaterialCommunityIcons';
11
11
  import DeviceInfo from 'react-native-device-info';
12
- import { TouchableOpacity } from 'react-native-gesture-handler'
13
12
 
14
13
  const windowWidth = Dimensions.get('window').width;
15
14
 
@@ -191,7 +191,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
191
191
  {isFarAway && (
192
192
  <FarAwayMessage style={styles.farAwayMsg}>
193
193
  <Ionicons name='md-warning-outline' style={styles.iconStyle} />
194
- <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'You are far from this address')}</OText>
194
+ <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
195
195
  </FarAwayMessage>
196
196
  )}
197
197
  </OrderControlContainer>
@@ -93,7 +93,7 @@ const CheckoutUI = (props: any) => {
93
93
  deliveryOptionSelected,
94
94
  instructionsOptions,
95
95
  handleChangeDeliveryOption,
96
-
96
+ merchantId
97
97
  } = props
98
98
 
99
99
  const theme = useTheme();
@@ -530,6 +530,7 @@ const CheckoutUI = (props: any) => {
530
530
  handlePaymentMethodClickCustom={handlePaymentMethodClick}
531
531
  setCardData={setCardData}
532
532
  handlePlaceOrder={handlePlaceOrder}
533
+ merchantId={merchantId}
533
534
  />
534
535
  </ChPaymethods>
535
536
  </ChSection>
@@ -1,13 +1,12 @@
1
1
  import React, { useEffect, useState } from 'react'
2
- import { LanguageSelector as LanguageSelectorController, useOrder } from 'ordering-components/native'
2
+ import { Platform, StyleSheet, NativeModules } from 'react-native'
3
3
  import { useTheme } from 'styled-components/native';
4
- import { I18nManager, Platform, StyleSheet, View } from 'react-native'
4
+ import RNRestart from 'react-native-restart'
5
+ import { LanguageSelector as LanguageSelectorController, useOrder, useLanguage } from 'ordering-components/native'
5
6
 
6
7
  import RNPickerSelect from 'react-native-picker-select'
7
8
  import { Container, DummyContainer } from './styles'
8
9
  import { LanguageSelectorParams } from '../../types'
9
- import { OIcon } from '../shared'
10
- import RNRestart from 'react-native-restart'
11
10
 
12
11
  const LanguageSelectorUI = (props: LanguageSelectorParams) => {
13
12
 
@@ -19,6 +18,7 @@ const LanguageSelectorUI = (props: LanguageSelectorParams) => {
19
18
  } = props
20
19
 
21
20
  const [orderState] = useOrder()
21
+ const [langugageState] = useLanguage()
22
22
  const theme = useTheme();
23
23
 
24
24
  const [language, setLanguage] = useState(currentLanguage)
@@ -70,16 +70,18 @@ const LanguageSelectorUI = (props: LanguageSelectorParams) => {
70
70
  )
71
71
 
72
72
  const changeDirection = async (language: any) => {
73
- if (language !== 'ar') {
74
- if (I18nManager.isRTL) {
75
- await I18nManager.forceRTL(false)
76
- RNRestart.Restart();
77
- }
78
- } else {
79
- if (!I18nManager.isRTL) {
80
- await I18nManager.forceRTL(true)
81
- RNRestart.Restart();
82
- }
73
+ if (language === langugageState?.language?.code) return
74
+ const isArabicLang = language === 'ar'
75
+ const isRTLOn = NativeModules.I18nManager.isRTL
76
+
77
+ if (isArabicLang && !isRTLOn) {
78
+ NativeModules.I18nManager.forceRTL(!isRTLOn)
79
+ RNRestart.Restart();
80
+ }
81
+
82
+ if (!isArabicLang && isRTLOn) {
83
+ NativeModules.I18nManager.forceRTL(!isRTLOn)
84
+ RNRestart.Restart();
83
85
  }
84
86
  }
85
87
 
@@ -87,11 +89,11 @@ const LanguageSelectorUI = (props: LanguageSelectorParams) => {
87
89
  changeDirection(Platform.OS === 'ios' ? language : langCode)
88
90
  handleChangeLanguage(Platform.OS === 'ios' ? language : langCode)
89
91
  }
90
-
92
+
91
93
  useEffect(() => {
92
94
  changeDirection(currentLanguage)
93
95
  }, [])
94
-
96
+
95
97
  return (
96
98
  <Container>
97
99
  {languagesState?.languages ? (
@@ -113,8 +115,11 @@ const LanguageSelectorUI = (props: LanguageSelectorParams) => {
113
115
  }
114
116
 
115
117
  export const LanguageSelector = (props: LanguageSelectorParams) => {
118
+ const [langugageState] = useLanguage()
119
+
116
120
  const LanguageProps = {
117
121
  ...props,
122
+ currentLanguage: langugageState?.language?.code ?? NativeModules.I18nManager.localeIdentifier?.split('_')?.[0] ?? 'en',
118
123
  UIComponent: LanguageSelectorUI
119
124
  }
120
125