ordering-ui-react-native 0.15.83 → 0.15.84-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 (226) hide show
  1. package/package.json +7 -3
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/index.tsx +61 -63
  4. package/src/components/ActiveOrders/styles.tsx +1 -1
  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 +16 -8
  8. package/src/components/BusinessInformation/index.tsx +14 -0
  9. package/src/components/BusinessTypeFilter/index.tsx +1 -2
  10. package/src/components/BusinessesListing/index.tsx +1 -1
  11. package/src/components/Checkout/index.tsx +25 -3
  12. package/src/components/DriverTips/index.tsx +11 -6
  13. package/src/components/LanguageSelector/index.tsx +24 -15
  14. package/src/components/LoginForm/index.tsx +120 -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/PaymentOptions/index.tsx +335 -365
  20. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  21. package/src/components/ReviewDriver/index.tsx +1 -1
  22. package/src/components/ReviewOrder/index.tsx +2 -1
  23. package/src/components/ReviewProducts/index.tsx +11 -0
  24. package/src/components/SignupForm/index.tsx +145 -61
  25. package/src/components/SingleProductCard/index.tsx +16 -4
  26. package/src/components/SingleProductReview/index.tsx +1 -1
  27. package/src/components/StripeElementsForm/index.tsx +25 -16
  28. package/src/components/StripeMethodForm/index.tsx +22 -24
  29. package/src/components/UpsellingProducts/index.tsx +1 -1
  30. package/src/components/UserProfileForm/index.tsx +63 -6
  31. package/src/components/UserProfileForm/styles.tsx +8 -0
  32. package/src/components/VerifyPhone/styles.tsx +1 -2
  33. package/src/components/shared/OBottomPopup.tsx +6 -2
  34. package/src/components/shared/OModal.tsx +1 -1
  35. package/src/hooks/useCountdownTimer.tsx +26 -0
  36. package/src/index.tsx +2 -0
  37. package/src/navigators/CheckoutNavigator.tsx +6 -0
  38. package/src/navigators/HomeNavigator.tsx +6 -0
  39. package/src/pages/BusinessesListing.tsx +7 -6
  40. package/src/pages/MultiCheckout.tsx +31 -0
  41. package/src/pages/MultiOrdersDetails.tsx +27 -0
  42. package/src/pages/OrderDetails.tsx +1 -1
  43. package/src/pages/ReviewDriver.tsx +2 -2
  44. package/src/pages/ReviewOrder.tsx +2 -2
  45. package/src/theme.json +0 -1
  46. package/src/types/index.tsx +18 -11
  47. package/src/utils/index.tsx +28 -29
  48. package/themes/business/index.tsx +4 -0
  49. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +100 -60
  50. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
  51. package/themes/business/src/components/Chat/index.tsx +51 -91
  52. package/themes/business/src/components/DriverMap/index.tsx +6 -5
  53. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  54. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  55. package/themes/business/src/components/LoginForm/index.tsx +89 -2
  56. package/themes/business/src/components/LoginForm/styles.tsx +6 -0
  57. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  58. package/themes/business/src/components/MapView/index.tsx +1 -1
  59. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -13
  60. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  61. package/themes/business/src/components/OrderDetails/Delivery.tsx +17 -7
  62. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +26 -18
  63. package/themes/business/src/components/OrdersListManager/index.tsx +11 -4
  64. package/themes/business/src/components/OrdersOption/index.tsx +16 -4
  65. package/themes/business/src/components/PreviousOrders/index.tsx +7 -7
  66. package/themes/business/src/components/ProductItemAccordion/index.tsx +5 -4
  67. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  68. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  69. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  70. package/themes/business/src/components/shared/OModal.tsx +41 -38
  71. package/themes/business/src/types/index.tsx +13 -6
  72. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  73. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  74. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  75. package/themes/kiosk/src/components/BusinessMenu/index.tsx +25 -26
  76. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -3
  77. package/themes/kiosk/src/components/Cart/index.tsx +10 -11
  78. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
  79. package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
  80. package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
  81. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +107 -62
  82. package/themes/kiosk/src/components/Checkout/index.tsx +40 -22
  83. package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
  84. package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
  85. package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
  86. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  87. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  88. package/themes/kiosk/src/components/OrderDetails/index.tsx +2 -2
  89. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +9 -11
  90. package/themes/kiosk/src/components/PaymentOptions/index.tsx +55 -53
  91. package/themes/kiosk/src/components/ProductForm/index.tsx +6 -7
  92. package/themes/kiosk/src/components/ProductOptionSubOption/index.tsx +3 -1
  93. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
  94. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  95. package/themes/kiosk/src/types/index.d.ts +1 -0
  96. package/themes/original/index.tsx +22 -0
  97. package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
  98. package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
  99. package/themes/original/src/components/AddressForm/index.tsx +7 -6
  100. package/themes/original/src/components/AddressList/index.tsx +1 -1
  101. package/themes/original/src/components/AppleLogin/index.tsx +6 -8
  102. package/themes/original/src/components/BusinessBasicInformation/index.tsx +291 -150
  103. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  104. package/themes/original/src/components/BusinessController/index.tsx +179 -96
  105. package/themes/original/src/components/BusinessController/styles.tsx +5 -0
  106. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -8
  107. package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
  108. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  109. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  110. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  111. package/themes/original/src/components/BusinessListingSearch/index.tsx +185 -120
  112. package/themes/original/src/components/BusinessListingSearch/styles.tsx +23 -11
  113. package/themes/original/src/components/BusinessPreorder/index.tsx +1 -1
  114. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
  115. package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
  116. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  117. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  118. package/themes/original/src/components/BusinessProductsList/index.tsx +66 -73
  119. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  120. package/themes/original/src/components/BusinessProductsListing/index.tsx +311 -176
  121. package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -0
  122. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  123. package/themes/original/src/components/BusinessTypeFilter/index.tsx +106 -38
  124. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  125. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
  126. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -2
  127. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +663 -0
  128. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  129. package/themes/original/src/components/BusinessesListing/index.tsx +104 -462
  130. package/themes/original/src/components/Cart/index.tsx +83 -38
  131. package/themes/original/src/components/Cart/styles.tsx +4 -0
  132. package/themes/original/src/components/CartContent/index.tsx +3 -3
  133. package/themes/original/src/components/Checkout/index.tsx +128 -67
  134. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  135. package/themes/original/src/components/DriverTips/index.tsx +17 -12
  136. package/themes/original/src/components/Favorite/index.tsx +92 -0
  137. package/themes/original/src/components/Favorite/styles.tsx +22 -0
  138. package/themes/original/src/components/FavoriteList/index.tsx +298 -0
  139. package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
  140. package/themes/original/src/components/ForgotPasswordForm/index.tsx +13 -4
  141. package/themes/original/src/components/GPSButton/index.tsx +15 -8
  142. package/themes/original/src/components/GoogleMap/index.tsx +11 -11
  143. package/themes/original/src/components/Help/index.tsx +21 -4
  144. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +8 -3
  145. package/themes/original/src/components/HelpGuide/index.tsx +8 -3
  146. package/themes/original/src/components/HelpOrder/index.tsx +8 -3
  147. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
  148. package/themes/original/src/components/LastOrders/index.tsx +12 -1
  149. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -0
  150. package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
  151. package/themes/original/src/components/LoginForm/index.tsx +332 -164
  152. package/themes/original/src/components/LoginForm/styles.tsx +1 -3
  153. package/themes/original/src/components/Messages/index.tsx +17 -17
  154. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  155. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  156. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
  157. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
  158. package/themes/original/src/components/MultiCheckout/index.tsx +304 -0
  159. package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
  160. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
  161. package/themes/original/src/components/MultiOrdersDetails/index.tsx +262 -0
  162. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
  163. package/themes/original/src/components/MyOrders/index.tsx +132 -27
  164. package/themes/original/src/components/MyOrders/styles.tsx +8 -1
  165. package/themes/original/src/components/NavBar/index.tsx +11 -5
  166. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  167. package/themes/original/src/components/OrderDetails/index.tsx +164 -81
  168. package/themes/original/src/components/OrderDetails/styles.tsx +5 -2
  169. package/themes/original/src/components/OrderItAgain/index.tsx +73 -0
  170. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  171. package/themes/original/src/components/OrderProgress/index.tsx +8 -2
  172. package/themes/original/src/components/OrderSummary/index.tsx +2 -35
  173. package/themes/original/src/components/OrderTypeSelector/index.tsx +78 -35
  174. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  175. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +140 -0
  176. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
  177. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +53 -0
  178. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
  179. package/themes/original/src/components/OrdersOption/index.tsx +138 -46
  180. package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
  181. package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
  182. package/themes/original/src/components/PaymentOptionWallet/index.tsx +15 -22
  183. package/themes/original/src/components/PaymentOptions/index.tsx +57 -37
  184. package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
  185. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  186. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  187. package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
  188. package/themes/original/src/components/ProductForm/index.tsx +714 -673
  189. package/themes/original/src/components/ProductForm/styles.tsx +9 -7
  190. package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
  191. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  192. package/themes/original/src/components/ProductOptionSubOption/index.tsx +13 -9
  193. package/themes/original/src/components/ProfessionalFilter/index.tsx +128 -0
  194. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  195. package/themes/original/src/components/ProfessionalProfile/index.tsx +298 -0
  196. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  197. package/themes/original/src/components/Promotions/index.tsx +22 -6
  198. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  199. package/themes/original/src/components/ReviewOrder/index.tsx +1 -1
  200. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  201. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  202. package/themes/original/src/components/SearchBar/index.tsx +13 -5
  203. package/themes/original/src/components/ServiceForm/index.tsx +579 -0
  204. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  205. package/themes/original/src/components/SignupForm/index.tsx +237 -126
  206. package/themes/original/src/components/SingleOrderCard/index.tsx +316 -0
  207. package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
  208. package/themes/original/src/components/SingleProductCard/index.tsx +197 -95
  209. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
  210. package/themes/original/src/components/StripeElementsForm/index.tsx +25 -9
  211. package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
  212. package/themes/original/src/components/UpsellingProducts/index.tsx +7 -7
  213. package/themes/original/src/components/UserDetails/index.tsx +32 -18
  214. package/themes/original/src/components/UserFormDetails/index.tsx +108 -74
  215. package/themes/original/src/components/UserProfile/index.tsx +5 -1
  216. package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
  217. package/themes/original/src/components/UserVerification/index.tsx +178 -192
  218. package/themes/original/src/components/Wallets/index.tsx +177 -163
  219. package/themes/original/src/components/shared/OBottomPopup.tsx +47 -14
  220. package/themes/original/src/components/shared/OButton.tsx +10 -3
  221. package/themes/original/src/components/shared/OInput.tsx +3 -2
  222. package/themes/original/src/components/shared/OModal.tsx +4 -2
  223. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  224. package/themes/original/src/types/index.tsx +212 -44
  225. package/themes/original/src/utils/index.tsx +94 -1
  226. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -3,57 +3,3 @@ import styled from 'styled-components/native'
3
3
  export const ActiveOrdersContainer = styled.View`
4
4
  margin-bottom: 20px;
5
5
  `
6
-
7
- export const Card = styled.TouchableOpacity`
8
- `
9
-
10
- export const Map = styled.View`
11
- flex: 1;
12
- height: 125px;
13
- margin-bottom: 10px;
14
- `
15
-
16
- export const Information = styled.View`
17
- flex-direction: row;
18
- height: 100px;
19
- align-items: center;
20
- padding-vertical: 5px;
21
- `
22
-
23
- export const Logo = styled.View`
24
- border-radius: 7.6px;
25
- box-shadow: 0 1px 2px #0000001A;
26
- `
27
-
28
- export const OrderInformation = styled.View`
29
- flex-direction: row;
30
- justify-content: space-between;
31
- flex: 1;
32
- padding-left: 14px;
33
- `
34
-
35
- export const BusinessInformation = styled.View`
36
- flex-basis: 65%;
37
- `
38
-
39
- export const Price = styled.View`
40
- justify-content: space-between;
41
- align-items: flex-end;
42
- margin-left: 10px;
43
- width: 30%;
44
- `
45
-
46
- export const UnreadMessageCounter = styled.View`
47
- justify-content: center;
48
- align-items: center;
49
- margin-left: 10px;
50
- width: 24px;
51
- height: 24px;
52
- border-radius: 7.6px;
53
- background-color: ${(props: any) => props.theme.colors.primaryContrast};
54
- `
55
- export const LoadMore = styled.View`
56
- flex-direction: row;
57
- justify-content: center;
58
- margin-top: 10px;
59
- `
@@ -109,8 +109,8 @@ const AddressFormUI = (props: AddressFormParams) => {
109
109
  zIndex: 1002,
110
110
  },
111
111
  wrapperNavbar: Platform.OS === 'ios'
112
- ? { paddingVertical: 0, paddingHorizontal: 40 }
113
- : { paddingVertical: 20, paddingHorizontal: 40 }
112
+ ? { paddingVertical: 0, paddingHorizontal: 40 }
113
+ : { paddingVertical: 20, paddingHorizontal: 40 }
114
114
  });
115
115
 
116
116
  const [, t] = useLanguage();
@@ -156,7 +156,7 @@ const AddressFormUI = (props: AddressFormParams) => {
156
156
  const maxLimitLocation =
157
157
  configState?.configs?.meters_to_change_address?.value;
158
158
 
159
- const continueAsGuest = () => navigation.navigate('BusinessList');
159
+ const continueAsGuest = () => navigation.navigate('BusinessList', { isGuestUser: true });
160
160
  const goToBack = () => navigation?.canGoBack() && navigation.goBack();
161
161
 
162
162
  const getAddressFormatted = (address: any) => {
@@ -203,6 +203,7 @@ const AddressFormUI = (props: AddressFormParams) => {
203
203
  saveAddress(data.address);
204
204
  if (isGuestUser) {
205
205
  continueAsGuest();
206
+ return;
206
207
  }
207
208
  if (!isGuestUser && !auth) {
208
209
  !isFromProductsList
@@ -510,7 +511,7 @@ const AddressFormUI = (props: AddressFormParams) => {
510
511
  onActionLeft={goToBack}
511
512
  showCall={false}
512
513
  btnStyle={{ paddingLeft: 0 }}
513
- style={{ flexDirection: 'column', alignItems: 'flex-start', marginTop: Platform.OS === 'ios' ? 0 : 30 }}
514
+ style={{ marginTop: Platform.OS === 'ios' ? 0 : 30 }}
514
515
  titleWrapStyle={{ paddingHorizontal: 0 }}
515
516
  titleStyle={{ marginRight: 0, marginLeft: 0 }}
516
517
  />
@@ -600,13 +601,13 @@ const AddressFormUI = (props: AddressFormParams) => {
600
601
  />
601
602
  {hasEditing ? (
602
603
  <View style={styles.pinIcon}>
603
- <GPSButton
604
+ <GPSButton
604
605
  apiKey={googleMapsApiKey}
605
606
  handleGPS={(data: any, detail: any) => {
606
607
  handleChangeAddress(data, detail);
607
608
  setValue(data.address);
608
609
  if (googleInput?.current) {
609
- googleInput?.current?.setAddressText( data.address );
610
+ googleInput?.current?.setAddressText(data.address);
610
611
  }
611
612
  }}
612
613
  IconButton={<OIcon src={theme.images.general.pin} width={16} />}
@@ -179,7 +179,7 @@ const AddressListUI = (props: AddressListParams) => {
179
179
  showCall={false}
180
180
  btnStyle={{ paddingLeft: 0 }}
181
181
  paddingTop={0}
182
- style={{ flexDirection: 'column', alignItems: 'flex-start', marginTop: Platform.OS === 'ios' ? 0 : 40 }}
182
+ style={{ marginTop: Platform.OS === 'ios' ? 0 : 40 }}
183
183
  titleWrapStyle={{ paddingHorizontal: 0 }}
184
184
  titleStyle={{ marginLeft: 0, marginRight: 0 }}
185
185
  />
@@ -1,6 +1,6 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import { Platform, Text, StyleSheet } from 'react-native';
3
- import { useApi, useSession, useLanguage, useConfig, useToast, ToastType } from 'ordering-components/native';
3
+ import { useApi, useSession, useLanguage, useConfig } from 'ordering-components/native';
4
4
  import { appleAuthAndroid, appleAuth } from '@invertase/react-native-apple-authentication';
5
5
  import uuid from 'react-native-uuid';
6
6
  import Icon from 'react-native-vector-icons/FontAwesome5';
@@ -19,14 +19,13 @@ export const AppleLogin = (props: any) => {
19
19
  const [{ auth }] = useSession();
20
20
  const [, t] = useLanguage();
21
21
  const [{ configs }] = useConfig();
22
- const [, {showToast}] = useToast()
23
22
  const [credentialStateForUser, updateCredentialStateForUser] = useState<any>(-1);
24
23
 
25
- let user : any= null
24
+ let user: any = null
26
25
 
27
26
  const buttonText = auth
28
27
  ? t('CONTINUE_WITH_APPLE', 'Logout with Apple')
29
- : t('CONTINUE_WITH_FACEBOOK', 'Continue with Apple');
28
+ : t('CONTINUE_WITH_APPLE', 'Continue with Apple');
30
29
 
31
30
  const performAppleLogin = async (code: string) => {
32
31
  try {
@@ -54,7 +53,7 @@ export const AppleLogin = (props: any) => {
54
53
  }
55
54
  }
56
55
 
57
- const fetchAndUpdateCredentialState = async (updateCredentialStateForUser : any) => {
56
+ const fetchAndUpdateCredentialState = async (updateCredentialStateForUser: any) => {
58
57
  if (user === null) {
59
58
  updateCredentialStateForUser('N/A');
60
59
  } else {
@@ -67,7 +66,7 @@ export const AppleLogin = (props: any) => {
67
66
  }
68
67
  }
69
68
 
70
- const onIOSButtonPress = async (updateCredentialStateForUser : any) => {
69
+ const onIOSButtonPress = async (updateCredentialStateForUser: any) => {
71
70
  try {
72
71
  const appleAuthRequestResponse = await appleAuth.performRequest({
73
72
  requestedOperation: appleAuth.Operation.LOGIN,
@@ -80,7 +79,7 @@ export const AppleLogin = (props: any) => {
80
79
  identityToken,
81
80
  authorizationCode
82
81
  } = appleAuthRequestResponse;
83
-
82
+
84
83
  user = newUser;
85
84
 
86
85
  fetchAndUpdateCredentialState(updateCredentialStateForUser).catch(error =>
@@ -88,7 +87,6 @@ export const AppleLogin = (props: any) => {
88
87
  );
89
88
 
90
89
  if (identityToken && authorizationCode) {
91
- showToast(ToastType.Success, `Apple Authentication Completed, ${email}`)
92
90
  performAppleLogin(authorizationCode)
93
91
  } else {
94
92
  handleErrors && handleErrors('UNABLE_LOGIN_TOKEN', 'Unable to login, no token found')
@@ -1,10 +1,11 @@
1
1
  import React, { useState, useEffect } from 'react';
2
- import { StyleSheet, View, TouchableOpacity } from 'react-native';
2
+ import { StyleSheet, View, TouchableOpacity, Linking, Pressable } from 'react-native';
3
3
  import { useUtils, useOrder, useLanguage } from 'ordering-components/native';
4
4
  import { useTheme } from 'styled-components/native';
5
5
  import { OIcon, OText, OModal } from '../shared';
6
6
  import { BusinessBasicInformationParams } from '../../types';
7
7
  import { convertHoursToMinutes, shape } from '../../utils';
8
+ import MaterialComIcon from 'react-native-vector-icons/MaterialCommunityIcons'
8
9
  import dayjs from 'dayjs';
9
10
  import timezone from 'dayjs/plugin/timezone';
10
11
  import isBetween from 'dayjs/plugin/isBetween';
@@ -21,7 +22,8 @@ import {
21
22
  WrapReviews,
22
23
  WrapBusinessInfo,
23
24
  TitleWrapper,
24
- RibbonBox
25
+ RibbonBox,
26
+ SocialListWrapper
25
27
  } from './styles';
26
28
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
27
29
  const types = ['food', 'laundry', 'alcohol', 'groceries'];
@@ -43,6 +45,80 @@ export const BusinessBasicInformation = (
43
45
  const [openBusinessReviews, setOpenBusinessReviews] = useState(false);
44
46
  const [businessInformationObtained, setBusinessInformationObtained] = useState(false)
45
47
  const [businessReviewsObtained, setBusinessReviewsObtainedbtained] = useState(false)
48
+ const isChewLayout = theme?.business_view?.components?.header?.components?.layout?.type === 'original'
49
+ const showLogo = !theme?.business_view?.components?.header?.components?.business?.components?.logo?.hidden
50
+
51
+ const styles = StyleSheet.create({
52
+ businesInfoheaderStyle: {
53
+ height: 150,
54
+ },
55
+ headerStyle: {
56
+ height: isChewLayout ? 170 : 260,
57
+ },
58
+ businessLogo: {
59
+ width: 72,
60
+ height: 72,
61
+ borderRadius: 7.6,
62
+ justifyContent: 'flex-start',
63
+ alignItems: 'flex-start',
64
+ },
65
+ businessInfo: {
66
+ paddingHorizontal: 40,
67
+ paddingTop: isChewLayout ? 0 : 56,
68
+ },
69
+ bullet: {
70
+ flexDirection: 'row',
71
+ alignItems: 'center',
72
+ },
73
+ metadata: {
74
+ marginRight: 2,
75
+ },
76
+ starIcon: {
77
+ marginHorizontal: 5,
78
+ },
79
+ reviewStyle: {
80
+ flexDirection: 'row',
81
+ alignItems: 'center',
82
+ justifyContent: 'center'
83
+ },
84
+ modalTitleSectionStyle: {
85
+ position: 'absolute',
86
+ width: '100%',
87
+ top: 0,
88
+ zIndex: 100,
89
+ left: 40
90
+ },
91
+ socialIcon: {
92
+ borderRadius: 3,
93
+ borderColor: theme.colors.border,
94
+ borderWidth: isChewLayout ? 0 : 1,
95
+ width: 20,
96
+ height: 20,
97
+ justifyContent: 'center',
98
+ alignItems: 'center',
99
+ marginRight: 5,
100
+ marginBottom: 7
101
+ },
102
+ tiktokIcon: {
103
+ height: 12,
104
+ width: 12,
105
+ margin: 0,
106
+ padding: 0,
107
+ display: 'flex',
108
+ justifyContent: 'center',
109
+ alignItems: 'center'
110
+ },
111
+ headerChewStyle: {
112
+ paddingHorizontal: 30,
113
+ justifyContent: 'center',
114
+ height: '100%'
115
+ },
116
+ socialIconsChewContainer: {
117
+ flexDirection: 'row',
118
+ justifyContent: 'flex-start',
119
+ marginTop: 5
120
+ }
121
+ });
46
122
 
47
123
  const handleClickBusinessInformation = () => {
48
124
  if (!businessInformationObtained) {
@@ -73,6 +149,19 @@ export const BusinessBasicInformation = (
73
149
  return _types.join(', ');
74
150
  };
75
151
 
152
+ const SocialNetWork = (props: any) => {
153
+ const { socialLink, iconTitle } = props
154
+
155
+ return (
156
+ <TouchableOpacity style={styles.socialIcon} onPress={() => Linking.openURL(socialLink)}>
157
+ <MaterialComIcon
158
+ name={iconTitle}
159
+ color={isChewLayout ? theme.colors.black : theme.colors.textNormal}
160
+ size={isChewLayout ? 18 : 14}
161
+ />
162
+ </TouchableOpacity>
163
+ )
164
+ }
76
165
 
77
166
  useEffect(() => {
78
167
  if (businessState?.loading) return
@@ -98,9 +187,84 @@ export const BusinessBasicInformation = (
98
187
  }
99
188
  }, [businessState?.business])
100
189
 
190
+ const SocialIcons = () => {
191
+ return (
192
+ <>
193
+ {loading ? (
194
+ <Placeholder Animation={Fade}>
195
+ <View style={{ flexDirection: 'row' }}>
196
+ {[...Array(5).keys()].map(i => (
197
+ <View style={styles.socialIcon} key={i}>
198
+ <PlaceholderLine width={100} height={20} style={{ marginBottom: 0 }} />
199
+ </View>
200
+ ))}
201
+ </View>
202
+ </Placeholder>
203
+ ) : (
204
+ <SocialListWrapper
205
+ showsVerticalScrollIndicator={false}
206
+ showsHorizontalScrollIndicator={false}
207
+ horizontal
208
+ contentContainerStyle={{ flex: 1 }}
209
+ >
210
+ {!!business?.facebook_profile && (
211
+ <SocialNetWork
212
+ socialLink={business?.facebook_profile}
213
+ iconTitle='facebook'
214
+ />
215
+ )}
216
+ {!!business?.instagram_profile && (
217
+ <SocialNetWork
218
+ socialLink={business?.instagram_profile}
219
+ iconTitle='instagram'
220
+ />
221
+ )}
222
+ {!!business?.tiktok_profile && (
223
+ <Pressable style={styles.socialIcon} onPress={() => Linking.openURL(business?.tiktok_profile)}>
224
+ <View style={styles.tiktokIcon}>
225
+ <OIcon
226
+ src={theme.images.general.tiktok}
227
+ style={{ width: 10, height: 12 }}
228
+ cover
229
+ />
230
+ </View>
231
+ </Pressable>
232
+ )}
233
+ {!!business?.pinterest_profile && (
234
+ <SocialNetWork
235
+ socialLink={business?.pinterest_profile}
236
+ iconTitle='pinterest'
237
+ />
238
+ )}
239
+ {!!business?.whatsapp_number && (
240
+ <SocialNetWork
241
+ socialLink={business?.whatsapp_number}
242
+ iconTitle='whatsapp'
243
+ />
244
+ )}
245
+ {!!business?.snapchat_profile && (
246
+ <SocialNetWork
247
+ socialLink={business?.snapchat_profile}
248
+ iconTitle='snapchat'
249
+ />
250
+ )}
251
+ {isChewLayout && (
252
+ <TouchableOpacity onPress={() => handleClickBusinessInformation()}>
253
+ <OText style={{ textDecorationColor: theme.colors.black, textDecorationLine: 'underline' }}>
254
+ {t('SEE_MORE_DESCRIPTION', 'See more')}
255
+ </OText>
256
+ </TouchableOpacity>
257
+ )}
258
+ </SocialListWrapper>
259
+ )}
260
+ </>
261
+ )
262
+ }
263
+
101
264
  return (
102
- <BusinessContainer>
265
+ <BusinessContainer isChewLayout={isChewLayout && !showLogo}>
103
266
  <BusinessHeader
267
+ isChewLayout={isChewLayout}
104
268
  style={
105
269
  isBusinessInfoShow
106
270
  ? styles.businesInfoheaderStyle
@@ -110,23 +274,34 @@ export const BusinessBasicInformation = (
110
274
  uri:
111
275
  header ||
112
276
  optimizeImage(businessState?.business?.header, 'h_250,c_limit'),
113
- }}>
114
- {!isBusinessInfoShow && (
277
+ }}
278
+ imageStyle={{ opacity: isChewLayout ? 0.5 : 1 }}
279
+ >
280
+ {!isBusinessInfoShow && !isChewLayout && (
115
281
  <WrapBusinessInfo onPress={() => handleClickBusinessInformation()}>
116
282
  <OIcon src={theme.images.general.info} width={24} />
117
283
  </WrapBusinessInfo>
118
284
  )}
285
+ {isChewLayout && (
286
+ <View style={styles.headerChewStyle}>
287
+ <OText size={24} weight={'600'} mBottom={-5}>
288
+ {business?.name}
289
+ </OText>
290
+ {business?.city?.name && (
291
+ <OText>
292
+ {business?.city?.name}
293
+ </OText>
294
+ )}
295
+ <View style={styles.socialIconsChewContainer}>
296
+ <SocialIcons />
297
+ </View>
298
+ </View>
299
+ )}
119
300
  </BusinessHeader>
120
301
  <BusinessInfo style={styles.businessInfo}>
121
- <BusinessLogo>
122
- {loading ? (
123
- <View>
124
- <Placeholder Animation={Fade}>
125
- <PlaceholderLine height={50} width={20} />
126
- </Placeholder>
127
- </View>
128
- ) : (
129
- !isBusinessInfoShow && (
302
+ {showLogo && (
303
+ <BusinessLogo isChewLayout={isChewLayout}>
304
+ {!isBusinessInfoShow && (
130
305
  <OIcon
131
306
  url={
132
307
  logo ||
@@ -134,113 +309,121 @@ export const BusinessBasicInformation = (
134
309
  }
135
310
  style={styles.businessLogo}
136
311
  />
137
- )
138
- )}
139
- </BusinessLogo>
140
- <BusinessInfoItem>
141
- {loading ? (
142
- <Placeholder Animation={Fade}>
143
- <PlaceholderLine height={30} width={20} />
144
- </Placeholder>
145
- ) : (
146
- <TitleWrapper>
147
- <OText size={24} weight={'600'}>
148
- {business?.name}
149
- </OText>
150
- {business?.ribbon?.enabled && (
151
- <RibbonBox
152
- bgColor={business?.ribbon?.color}
153
- isRoundRect={business?.ribbon?.shape === shape?.rectangleRound}
154
- isCapsule={business?.ribbon?.shape === shape?.capsuleShape}
155
- >
156
- <OText
157
- size={10}
158
- weight={'400'}
159
- color={theme.colors.white}
160
- numberOfLines={2}
161
- ellipsizeMode='tail'
162
- lineHeight={13}
163
- >
164
- {business?.ribbon?.text}
312
+ )}
313
+ </BusinessLogo>
314
+ )}
315
+ {!isChewLayout && (
316
+
317
+ <>
318
+ <BusinessInfoItem>
319
+ {loading ? (
320
+ <Placeholder Animation={Fade}>
321
+ <PlaceholderLine height={30} width={20} />
322
+ </Placeholder>
323
+ ) : (
324
+ <TitleWrapper>
325
+ <OText size={24} weight={'600'} numberOfLines={2}>
326
+ {business?.name}
165
327
  </OText>
166
- </RibbonBox>
328
+ {business?.ribbon?.enabled && (
329
+ <RibbonBox
330
+ bgColor={business?.ribbon?.color}
331
+ isRoundRect={business?.ribbon?.shape === shape?.rectangleRound}
332
+ isCapsule={business?.ribbon?.shape === shape?.capsuleShape}
333
+ >
334
+ <OText
335
+ size={10}
336
+ weight={'400'}
337
+ color={theme.colors.white}
338
+ numberOfLines={2}
339
+ ellipsizeMode='tail'
340
+ lineHeight={13}
341
+ >
342
+ {business?.ribbon?.text}
343
+ </OText>
344
+ </RibbonBox>
345
+ )}
346
+ </TitleWrapper>
167
347
  )}
168
- </TitleWrapper>
169
- )}
170
- </BusinessInfoItem>
171
- {loading ? (
172
- <Placeholder Animation={Fade}>
173
- <PlaceholderLine width={10} />
174
- </Placeholder>
175
- ) : (
176
- <View style={{ width: '75%' }}>
177
- <OText color={theme.colors.textNormal}>{getBusinessType()}</OText>
178
- </View>
179
- )}
180
- <View>
181
- <BusinessInfoItem>
182
- {loading && (
348
+ </BusinessInfoItem>
349
+ {loading ? (
183
350
  <Placeholder Animation={Fade}>
184
- <View style={{ flexDirection: 'row' }}>
185
- <PlaceholderLine width={13} style={{ marginRight: 10 }} />
186
- <PlaceholderLine width={13} style={{ marginRight: 10 }} />
187
- <PlaceholderLine width={13} style={{ marginRight: 10 }} />
188
- <PlaceholderLine width={13} />
189
- </View>
351
+ <PlaceholderLine width={10} />
190
352
  </Placeholder>
353
+ ) : (
354
+ <View style={{ width: '75%' }}>
355
+ <OText color={theme.colors.textNormal}>{getBusinessType()}</OText>
356
+ </View>
191
357
  )}
192
- <View style={styles.bullet}>
193
- <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
194
- {`${t('DELIVERY_FEE', 'Delivery fee')} ${business && parsePrice(business?.delivery_price || 0)} \u2022 `}
195
- </OText>
196
- {orderState?.options?.type === 1 ? (
197
- <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
198
- {convertHoursToMinutes(business?.delivery_time) + ` \u2022 `}
199
- </OText>
200
- ) : (
201
- <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
202
- {convertHoursToMinutes(business?.pickup_time) + ` \u2022 `}
203
- </OText>
204
- )}
205
- <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
206
- {parseDistance(business?.distance || 0) + ` \u2022 `}
207
- </OText>
208
- </View>
358
+ {!isChewLayout && (
359
+ <SocialIcons />
360
+ )}
361
+ <View>
362
+ <BusinessInfoItem>
363
+ {loading && (
364
+ <Placeholder Animation={Fade}>
365
+ <View style={{ flexDirection: 'row' }}>
366
+ <PlaceholderLine width={13} style={{ marginRight: 10 }} />
367
+ <PlaceholderLine width={13} style={{ marginRight: 10 }} />
368
+ <PlaceholderLine width={13} style={{ marginRight: 10 }} />
369
+ <PlaceholderLine width={13} />
370
+ </View>
371
+ </Placeholder>
372
+ )}
373
+ <View style={styles.bullet}>
374
+ <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
375
+ {`${t('DELIVERY_FEE', 'Delivery fee')} ${business && parsePrice(business?.delivery_price || 0)} \u2022 `}
376
+ </OText>
377
+ {orderState?.options?.type === 1 ? (
378
+ <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
379
+ {convertHoursToMinutes(business?.delivery_time) + ` \u2022 `}
380
+ </OText>
381
+ ) : (
382
+ <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
383
+ {convertHoursToMinutes(business?.pickup_time) + ` \u2022 `}
384
+ </OText>
385
+ )}
386
+ <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
387
+ {parseDistance(business?.distance || 0) + ` \u2022 `}
388
+ </OText>
389
+ </View>
209
390
 
210
- <View style={styles.reviewStyle}>
211
- <OIcon
212
- src={theme.images.general.star}
213
- width={14}
214
- color={theme.colors.textSecondary}
215
- style={{ marginTop: -2, marginEnd: 2 }}
216
- />
217
- <OText size={12} color={theme.colors.textSecondary}>
218
- {business?.reviews?.total}
219
- </OText>
391
+ <View style={styles.reviewStyle}>
392
+ <OIcon
393
+ src={theme.images.general.star}
394
+ width={14}
395
+ color={theme.colors.textSecondary}
396
+ style={{ marginTop: -2, marginEnd: 2 }}
397
+ />
398
+ <OText size={12} color={theme.colors.textSecondary}>
399
+ {business?.reviews?.total}
400
+ </OText>
401
+ </View>
402
+ </BusinessInfoItem>
220
403
  </View>
221
- </BusinessInfoItem>
222
- </View>
223
- <WrapReviews>
224
- {!isBusinessInfoShow && (
225
- <>
226
- {isPreOrder && (
404
+ <WrapReviews>
405
+ {!isBusinessInfoShow && (
227
406
  <>
228
- <TouchableOpacity onPress={() => navigation.navigate('BusinessPreorder', { business: businessState?.business, handleBusinessClick: () => navigation?.goBack() })}>
407
+ {isPreOrder && (!business?.professionals || business?.professionals?.length === 0) && (
408
+ <>
409
+ <TouchableOpacity onPress={() => navigation.navigate('BusinessPreorder', { business: businessState?.business, handleBusinessClick: () => navigation?.goBack() })}>
410
+ <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
411
+ {t('PREORDER', 'Preorder')}
412
+ </OText>
413
+ </TouchableOpacity>
414
+ <OText size={12} color={theme.colors.textSecondary}>{' \u2022 '}</OText>
415
+ </>
416
+ )}
417
+ <TouchableOpacity onPress={() => handleClickBusinessReviews()}>
229
418
  <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
230
- {t('PRE_ORDER', 'Preorder')}
419
+ {t('REVIEWS', 'Reviews')}
231
420
  </OText>
232
421
  </TouchableOpacity>
233
- <OText size={12} color={theme.colors.textSecondary}>{' \u2022 '}</OText>
234
422
  </>
235
423
  )}
236
- <TouchableOpacity onPress={() => handleClickBusinessReviews()}>
237
- <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
238
- {t('REVIEWS', 'Reviews')}
239
- </OText>
240
- </TouchableOpacity>
241
- </>
242
- )}
243
- </WrapReviews>
424
+ </WrapReviews>
425
+ </>
426
+ )}
244
427
  </BusinessInfo>
245
428
  {businessInformationObtained ? (
246
429
  <OModal
@@ -276,45 +459,3 @@ export const BusinessBasicInformation = (
276
459
  </BusinessContainer>
277
460
  );
278
461
  };
279
-
280
- const styles = StyleSheet.create({
281
- businesInfoheaderStyle: {
282
- height: 150,
283
- },
284
- headerStyle: {
285
- height: 260,
286
- },
287
- businessLogo: {
288
- width: 72,
289
- height: 72,
290
- borderRadius: 7.6,
291
- justifyContent: 'flex-start',
292
- alignItems: 'flex-start',
293
- },
294
- businessInfo: {
295
- paddingHorizontal: 40,
296
- paddingTop: 56,
297
- },
298
- bullet: {
299
- flexDirection: 'row',
300
- alignItems: 'center',
301
- },
302
- metadata: {
303
- marginRight: 2,
304
- },
305
- starIcon: {
306
- marginHorizontal: 5,
307
- },
308
- reviewStyle: {
309
- flexDirection: 'row',
310
- alignItems: 'center',
311
- justifyContent: 'center'
312
- },
313
- modalTitleSectionStyle: {
314
- position: 'absolute',
315
- width: '100%',
316
- top: 0,
317
- zIndex: 100,
318
- left: 40
319
- },
320
- });