ordering-ui-react-native 0.17.25 → 0.17.26-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 (211) hide show
  1. package/package.json +8 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessesListing/index.tsx +1 -1
  4. package/src/components/OrderCreating/index.tsx +1 -21
  5. package/src/components/PaymentOptionsWebView/index.tsx +119 -120
  6. package/src/components/StripeMethodForm/index.tsx +108 -79
  7. package/src/components/VerifyPhone/styles.tsx +1 -2
  8. package/src/components/shared/OToast.tsx +4 -4
  9. package/src/types/index.tsx +5 -0
  10. package/src/utils/index.tsx +7 -1
  11. package/themes/business/index.tsx +2 -0
  12. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +265 -240
  13. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  14. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  15. package/themes/business/src/components/Chat/index.tsx +118 -107
  16. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  17. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  18. package/themes/business/src/components/LoginForm/Otp/index.tsx +120 -0
  19. package/themes/business/src/components/LoginForm/Otp/styles.tsx +7 -0
  20. package/themes/business/src/components/LoginForm/index.tsx +238 -80
  21. package/themes/business/src/components/LoginForm/styles.tsx +10 -0
  22. package/themes/business/src/components/MapView/index.tsx +10 -10
  23. package/themes/business/src/components/NewOrderNotification/index.tsx +43 -50
  24. package/themes/business/src/components/OrderDetails/Delivery.tsx +4 -3
  25. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +90 -47
  26. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +59 -62
  27. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  28. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  29. package/themes/business/src/components/OrderMessage/index.tsx +18 -17
  30. package/themes/business/src/components/OrderSummary/index.tsx +113 -121
  31. package/themes/business/src/components/OrdersOption/index.tsx +32 -75
  32. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
  33. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  34. package/themes/business/src/components/PreviousOrders/index.tsx +445 -243
  35. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  36. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  37. package/themes/business/src/components/ReviewCustomer/index.tsx +41 -24
  38. package/themes/business/src/components/StoresList/index.tsx +2 -2
  39. package/themes/business/src/components/shared/OLink.tsx +33 -13
  40. package/themes/business/src/components/shared/OModal.tsx +16 -9
  41. package/themes/business/src/components/shared/OText.tsx +8 -2
  42. package/themes/business/src/types/index.tsx +32 -2
  43. package/themes/business/src/utils/index.tsx +44 -1
  44. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  45. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  46. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  47. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  48. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  49. package/themes/kiosk/src/components/LoginForm/Otp/index.tsx +92 -0
  50. package/themes/kiosk/src/components/LoginForm/Otp/styles.tsx +7 -0
  51. package/themes/kiosk/src/components/LoginForm/index.tsx +473 -151
  52. package/themes/kiosk/src/components/LoginForm/styles.tsx +14 -1
  53. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  54. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  55. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  56. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +3 -2
  57. package/themes/kiosk/src/components/PhoneInputNumber/styles.tsx +1 -3
  58. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  59. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  60. package/themes/kiosk/src/components/shared/OModal.tsx +14 -11
  61. package/themes/kiosk/src/layouts/Container.tsx +7 -1
  62. package/themes/kiosk/src/types/index.d.ts +13 -0
  63. package/themes/kiosk/src/utils/index.tsx +15 -0
  64. package/themes/original/index.tsx +6 -0
  65. package/themes/original/src/components/AddressDetails/index.tsx +29 -11
  66. package/themes/original/src/components/AddressForm/index.tsx +53 -19
  67. package/themes/original/src/components/AddressList/index.tsx +26 -21
  68. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  69. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  70. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  71. package/themes/original/src/components/BusinessBasicInformation/index.tsx +166 -89
  72. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +9 -7
  73. package/themes/original/src/components/BusinessController/index.tsx +145 -68
  74. package/themes/original/src/components/BusinessController/styles.tsx +22 -9
  75. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  76. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  77. package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
  78. package/themes/original/src/components/BusinessItemAccordion/index.tsx +23 -22
  79. package/themes/original/src/components/BusinessListingSearch/index.tsx +350 -323
  80. package/themes/original/src/components/BusinessPreorder/index.tsx +97 -16
  81. package/themes/original/src/components/BusinessProductsList/index.tsx +20 -11
  82. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  83. package/themes/original/src/components/BusinessProductsListing/index.tsx +616 -495
  84. package/themes/original/src/components/BusinessProductsListing/styles.tsx +7 -9
  85. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  86. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  87. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +105 -78
  88. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
  89. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  90. package/themes/original/src/components/Cart/index.tsx +102 -69
  91. package/themes/original/src/components/CartContent/index.tsx +110 -19
  92. package/themes/original/src/components/CartContent/styles.tsx +15 -1
  93. package/themes/original/src/components/Checkout/index.tsx +323 -178
  94. package/themes/original/src/components/Checkout/styles.tsx +4 -2
  95. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  96. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  97. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  98. package/themes/original/src/components/DriverTips/index.tsx +52 -34
  99. package/themes/original/src/components/Favorite/index.tsx +7 -4
  100. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  101. package/themes/original/src/components/FavoriteList/index.tsx +51 -80
  102. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  103. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  104. package/themes/original/src/components/GPSButton/index.tsx +6 -4
  105. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  106. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
  107. package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
  108. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
  109. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
  110. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +191 -0
  111. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
  112. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
  113. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
  114. package/themes/original/src/components/GoogleMap/index.tsx +15 -4
  115. package/themes/original/src/components/Help/index.tsx +8 -8
  116. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +11 -22
  117. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
  118. package/themes/original/src/components/HelpGuide/index.tsx +12 -16
  119. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  120. package/themes/original/src/components/HelpOrder/index.tsx +12 -25
  121. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  122. package/themes/original/src/components/Home/index.tsx +13 -4
  123. package/themes/original/src/components/LanguageSelector/index.tsx +17 -13
  124. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  125. package/themes/original/src/components/LoginForm/Otp/index.tsx +89 -73
  126. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  127. package/themes/original/src/components/LoginForm/index.tsx +59 -22
  128. package/themes/original/src/components/LottieAnimation/index.tsx +78 -0
  129. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  130. package/themes/original/src/components/Messages/index.tsx +32 -10
  131. package/themes/original/src/components/MomentOption/index.tsx +195 -88
  132. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  133. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +197 -116
  134. package/themes/original/src/components/MultiCheckout/index.tsx +288 -86
  135. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  136. package/themes/original/src/components/MultiOrdersDetails/index.tsx +67 -20
  137. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  138. package/themes/original/src/components/MyOrders/index.tsx +55 -51
  139. package/themes/original/src/components/NavBar/index.tsx +6 -11
  140. package/themes/original/src/components/Notifications/index.tsx +46 -50
  141. package/themes/original/src/components/Notifications/styles.tsx +6 -3
  142. package/themes/original/src/components/OrderDetails/OrderEta.tsx +64 -0
  143. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +15 -3
  144. package/themes/original/src/components/OrderDetails/index.tsx +199 -359
  145. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  146. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  147. package/themes/original/src/components/OrderProgress/index.tsx +74 -112
  148. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  149. package/themes/original/src/components/OrderSummary/index.tsx +87 -59
  150. package/themes/original/src/components/OrderTypeSelector/index.tsx +3 -2
  151. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +24 -19
  152. package/themes/original/src/components/OrdersOption/index.tsx +96 -88
  153. package/themes/original/src/components/PageBanner/index.tsx +171 -0
  154. package/themes/original/src/components/PageBanner/styles.tsx +11 -0
  155. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  156. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  157. package/themes/original/src/components/PaymentOptions/index.tsx +34 -6
  158. package/themes/original/src/components/PhoneInputNumber/index.tsx +3 -3
  159. package/themes/original/src/components/PlaceSpot/index.tsx +12 -6
  160. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  161. package/themes/original/src/components/ProductForm/index.tsx +230 -261
  162. package/themes/original/src/components/ProductForm/styles.tsx +4 -7
  163. package/themes/original/src/components/ProductItemAccordion/index.tsx +59 -29
  164. package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -10
  165. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +1 -2
  166. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  167. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
  168. package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
  169. package/themes/original/src/components/Promotions/index.tsx +234 -220
  170. package/themes/original/src/components/Promotions/styles.tsx +10 -3
  171. package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
  172. package/themes/original/src/components/ReviewOrder/index.tsx +26 -9
  173. package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
  174. package/themes/original/src/components/ReviewProducts/index.tsx +23 -11
  175. package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
  176. package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
  177. package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
  178. package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
  179. package/themes/original/src/components/ServiceForm/index.tsx +74 -19
  180. package/themes/original/src/components/Sessions/index.tsx +11 -8
  181. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  182. package/themes/original/src/components/SignupForm/index.tsx +82 -67
  183. package/themes/original/src/components/SingleOrderCard/index.tsx +149 -63
  184. package/themes/original/src/components/SingleOrderCard/styles.tsx +11 -9
  185. package/themes/original/src/components/SingleProductCard/index.tsx +99 -55
  186. package/themes/original/src/components/SingleProductCard/styles.tsx +27 -13
  187. package/themes/original/src/components/SingleProductReview/index.tsx +8 -2
  188. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  189. package/themes/original/src/components/StripeCardsList/index.tsx +9 -2
  190. package/themes/original/src/components/StripeElementsForm/index.tsx +28 -15
  191. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -224
  192. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  193. package/themes/original/src/components/UserDetails/index.tsx +8 -4
  194. package/themes/original/src/components/UserFormDetails/index.tsx +47 -7
  195. package/themes/original/src/components/UserProfile/index.tsx +9 -14
  196. package/themes/original/src/components/UserProfileForm/index.tsx +21 -28
  197. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  198. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  199. package/themes/original/src/components/Wallets/index.tsx +97 -33
  200. package/themes/original/src/components/Wallets/styles.tsx +2 -0
  201. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  202. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  203. package/themes/original/src/components/shared/OBottomPopup.tsx +1 -1
  204. package/themes/original/src/components/shared/OButton.tsx +6 -2
  205. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  206. package/themes/original/src/components/shared/OInput.tsx +16 -2
  207. package/themes/original/src/components/shared/OModal.tsx +3 -3
  208. package/themes/original/src/layouts/Container.tsx +13 -9
  209. package/themes/original/src/types/index.tsx +36 -9
  210. package/themes/original/src/utils/index.tsx +375 -58
  211. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,11 +1,11 @@
1
1
  import React, { useState, useEffect } from 'react';
2
- import { StyleSheet, View, TouchableOpacity, Linking, Pressable } from 'react-native';
2
+ import { StyleSheet, View, TouchableOpacity, Linking, Pressable, Image } from 'react-native';
3
3
  import FastImage from 'react-native-fast-image'
4
4
  import { useUtils, useOrder, useLanguage } from 'ordering-components/native';
5
5
  import { useTheme } from 'styled-components/native';
6
6
  import { OIcon, OText, OModal } from '../shared';
7
7
  import { BusinessBasicInformationParams } from '../../types';
8
- import { convertHoursToMinutes, shape } from '../../utils';
8
+ import { convertHoursToMinutes, lightenDarkenColor, shape } from '../../utils';
9
9
  import MaterialComIcon from 'react-native-vector-icons/MaterialCommunityIcons'
10
10
  import dayjs from 'dayjs';
11
11
  import timezone from 'dayjs/plugin/timezone';
@@ -21,7 +21,6 @@ import {
21
21
  BusinessInfo,
22
22
  BusinessInfoItem,
23
23
  WrapReviews,
24
- WrapBusinessInfo,
25
24
  TitleWrapper,
26
25
  RibbonBox,
27
26
  SocialListWrapper
@@ -46,23 +45,32 @@ export const BusinessBasicInformation = (
46
45
  const [openBusinessReviews, setOpenBusinessReviews] = useState(false);
47
46
  const [businessInformationObtained, setBusinessInformationObtained] = useState(false)
48
47
  const [businessReviewsObtained, setBusinessReviewsObtainedbtained] = useState(false)
49
- const isChewLayout = theme?.business_view?.components?.header?.components?.layout?.type === 'chew'
50
- const showLogo = !theme?.business_view?.components?.header?.components?.business?.components?.logo?.hidden
48
+ const [imageRealSize, setImageRealSize] = useState({ width: 16, height: 9, loading: true })
49
+ const isChewLayout = theme?.header?.components?.layout?.type?.toLowerCase() === 'chew'
50
+ const hideLogo = theme?.business_view?.components?.header?.components?.business?.components?.logo?.hidden
51
+ const hideDeliveryFee = theme?.business_view?.components?.header?.components?.business?.components?.fee?.hidden
52
+ const hideTime = theme?.business_view?.components?.header?.components?.business?.components?.time?.hidden
53
+ const hideReviews = theme?.business_view?.components?.header?.components?.business?.components?.reviews?.hidden
54
+ const hideReviewsPopup = theme?.business_view?.components?.header?.components?.reviews?.hidden
55
+ const hideDistance = theme?.business_view?.components?.header?.components?.business?.components?.distance?.hidden
56
+ const hideInfoIcon = theme?.business_view?.components?.header?.components?.business?.components?.business_info?.hidden
57
+ const hideCity = theme?.business_view?.components?.header?.components?.business?.components?.city?.hidden
58
+ const hideHeader = theme?.business_view?.components?.header?.hidden
51
59
 
52
60
  const styles = StyleSheet.create({
53
61
  businesInfoheaderStyle: {
54
62
  height: 150,
55
63
  },
56
64
  headerStyle: {
57
- height: isChewLayout ? 170 : 260,
65
+ aspectRatio: imageRealSize?.width / imageRealSize?.height
58
66
  },
59
67
  logoStyle: {
60
- width: 72,
61
- height: 72,
62
- borderRadius: 7.6,
63
- justifyContent: 'flex-start',
64
- alignItems: 'flex-start'
65
- },
68
+ width: 72,
69
+ height: 72,
70
+ borderRadius: 7.6,
71
+ justifyContent: 'flex-start',
72
+ alignItems: 'flex-start'
73
+ },
66
74
  businessInfo: {
67
75
  paddingHorizontal: 40,
68
76
  paddingTop: isChewLayout ? 0 : 56,
@@ -93,11 +101,11 @@ export const BusinessBasicInformation = (
93
101
  borderRadius: 3,
94
102
  borderColor: theme.colors.border,
95
103
  borderWidth: isChewLayout ? 0 : 1,
96
- width: 20,
97
- height: 20,
104
+ width: 30,
105
+ height: 30,
98
106
  justifyContent: 'center',
99
107
  alignItems: 'center',
100
- marginRight: 5,
108
+ marginRight: 10,
101
109
  marginBottom: 7
102
110
  },
103
111
  tiktokIcon: {
@@ -158,7 +166,7 @@ export const BusinessBasicInformation = (
158
166
  <MaterialComIcon
159
167
  name={iconTitle}
160
168
  color={isChewLayout ? theme.colors.black : theme.colors.textNormal}
161
- size={isChewLayout ? 18 : 14}
169
+ size={isChewLayout ? 25 : 22}
162
170
  />
163
171
  </TouchableOpacity>
164
172
  )
@@ -188,6 +196,20 @@ export const BusinessBasicInformation = (
188
196
  }
189
197
  }, [businessState?.business])
190
198
 
199
+ useEffect(() => {
200
+ const bannerImage = header || businessState?.business?.header
201
+ if (!bannerImage) {
202
+ setImageRealSize({ width: 16, height: 9, loading: false })
203
+ return
204
+ }
205
+ Image.getSize(bannerImage, (width: number, height: number) => {
206
+ setImageRealSize({ width: width, height: height, loading: false });
207
+ }, (error: any) => {
208
+ setImageRealSize({ ...imageRealSize, loading: false });
209
+ console.log(error);
210
+ });
211
+ }, [header, businessState?.business?.header])
212
+
191
213
  const SocialIcons = () => {
192
214
  return (
193
215
  <>
@@ -249,9 +271,13 @@ export const BusinessBasicInformation = (
249
271
  iconTitle='snapchat'
250
272
  />
251
273
  )}
252
- {isChewLayout && (
274
+ {isChewLayout && !hideInfoIcon && (
253
275
  <TouchableOpacity onPress={() => handleClickBusinessInformation()}>
254
- <OText style={{ textDecorationColor: theme.colors.black, textDecorationLine: 'underline' }}>
276
+ <OText
277
+ color={theme.colors.primary}
278
+ style={{ textDecorationColor: theme.colors.primary, textDecorationLine: 'underline' }}
279
+ size={12}
280
+ >
255
281
  {t('SEE_MORE_DESCRIPTION', 'See more')}
256
282
  </OText>
257
283
  </TouchableOpacity>
@@ -263,53 +289,68 @@ export const BusinessBasicInformation = (
263
289
  }
264
290
 
265
291
  return (
266
- <BusinessContainer isChewLayout={isChewLayout && !showLogo}>
267
- <BusinessHeader
268
- isChewLayout={isChewLayout}
269
- style={
270
- isBusinessInfoShow
271
- ? styles.businesInfoheaderStyle
272
- : { ...styles.headerStyle, backgroundColor: theme.colors.backgroundGray }
273
- }
274
- {...(!loading && { source: {
275
- uri: header || optimizeImage(businessState?.business?.header || theme?.images?.dummies?.businessHeader, 'h_250,c_limit')
276
- }})}
277
- imageStyle={{ opacity: isChewLayout ? 0.5 : 1 }}
278
- >
279
- {!isBusinessInfoShow && !isChewLayout && (
280
- <WrapBusinessInfo onPress={() => handleClickBusinessInformation()}>
281
- <OIcon src={theme.images.general.info} width={24} />
282
- </WrapBusinessInfo>
283
- )}
284
- {isChewLayout && !loading && (
285
- <View style={styles.headerChewStyle}>
286
- <OText size={24} weight={'600'} mBottom={-5}>
287
- {business?.name}
288
- </OText>
289
- {business?.city?.name && (
290
- <OText>
291
- {business?.city?.name}
292
+ <BusinessContainer isChewLayout={isChewLayout && hideLogo}>
293
+ {!hideHeader && (
294
+ <BusinessHeader
295
+ isChewLayout={isChewLayout}
296
+ style={
297
+ isBusinessInfoShow
298
+ ? styles.businesInfoheaderStyle
299
+ : { ...styles.headerStyle, backgroundColor: theme.colors.backgroundGray }
300
+ }
301
+ {...(!loading && !imageRealSize?.loading && {
302
+ source: (header || businessState?.business?.header || typeof theme?.images?.dummies?.businessHeader === 'string') ? {
303
+ uri: optimizeImage(businessState?.business?.header, 'h_250,c_limit') || header || theme?.images?.dummies?.businessHeader
304
+ } : theme?.images?.dummies?.businessHeader
305
+ })}
306
+ imageStyle={{ opacity: isChewLayout ? 0.5 : 1 }}
307
+ >
308
+ {isChewLayout && !loading && (
309
+ <View style={styles.headerChewStyle}>
310
+ <OText size={24} weight={'600'} mBottom={-5}>
311
+ {business?.name}
292
312
  </OText>
293
- )}
294
- <View style={styles.socialIconsChewContainer}>
295
- <SocialIcons />
313
+ {business?.city?.name && !hideCity && (
314
+ <OText>
315
+ {business?.city?.name}
316
+ </OText>
317
+ )}
318
+ <View style={styles.socialIconsChewContainer}>
319
+ <SocialIcons />
320
+ </View>
296
321
  </View>
297
- </View>
298
- )}
299
- </BusinessHeader>
322
+ )}
323
+ </BusinessHeader>
324
+ )}
300
325
  <BusinessInfo style={styles.businessInfo}>
301
- {showLogo && (
326
+ {!hideLogo && (
302
327
  <BusinessLogo isChewLayout={isChewLayout}>
303
328
  {!isBusinessInfoShow && (
304
- <FastImage
305
- style={styles.logoStyle}
306
- source={{
307
- uri: logo || optimizeImage(businessState?.business?.logo || theme?.images?.dummies?.businessLogo, 'h_70,c_limit'),
308
- priority: FastImage.priority.high,
309
- cache:FastImage.cacheControl.web
310
- }}
311
- resizeMode={FastImage.resizeMode.contain}
312
- />
329
+ <>
330
+ {loading ? (
331
+ <View style={styles.logoStyle}>
332
+ <Placeholder Animation={Fade}>
333
+ <PlaceholderLine height={72} style={{ borderRadius: 8 }} />
334
+ </Placeholder>
335
+ </View>
336
+ ) : (
337
+ logo || businessState?.business?.logo || typeof theme.images.dummies.businessLogo === 'string' ?
338
+ <FastImage
339
+ style={styles.logoStyle}
340
+ source={{
341
+ uri: logo || optimizeImage(businessState?.business?.logo, 'h_70,c_limit') || theme.images.dummies.businessLogo,
342
+ priority: FastImage.priority.high,
343
+ cache: FastImage.cacheControl.web
344
+ }}
345
+ resizeMode={FastImage.resizeMode.contain}
346
+ />
347
+ :
348
+ <OIcon
349
+ src={theme?.images?.dummies?.businessLogo}
350
+ style={styles.logoStyle}
351
+ />
352
+ )}
353
+ </>
313
354
  )}
314
355
  </BusinessLogo>
315
356
  )}
@@ -329,13 +370,15 @@ export const BusinessBasicInformation = (
329
370
  {business?.ribbon?.enabled && (
330
371
  <RibbonBox
331
372
  bgColor={business?.ribbon?.color}
373
+ colorText={lightenDarkenColor(business?.ribbon?.color)}
374
+ borderRibbon={lightenDarkenColor(business?.ribbon?.color)}
332
375
  isRoundRect={business?.ribbon?.shape === shape?.rectangleRound}
333
376
  isCapsule={business?.ribbon?.shape === shape?.capsuleShape}
334
377
  >
335
378
  <OText
336
379
  size={10}
337
380
  weight={'400'}
338
- color={theme.colors.white}
381
+ color={lightenDarkenColor(business?.ribbon?.color) ? theme.colors.black : theme.colors.white}
339
382
  numberOfLines={2}
340
383
  ellipsizeMode='tail'
341
384
  lineHeight={13}
@@ -372,34 +415,43 @@ export const BusinessBasicInformation = (
372
415
  </Placeholder>
373
416
  )}
374
417
  <View style={styles.bullet}>
375
- <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
376
- {`${t('DELIVERY_FEE', 'Delivery fee')} ${business && parsePrice(business?.delivery_price || 0)} \u2022 `}
377
- </OText>
378
- {orderState?.options?.type === 1 ? (
418
+ {!hideDeliveryFee && (
379
419
  <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
380
- {convertHoursToMinutes(business?.delivery_time) + ` \u2022 `}
420
+ {`${t('DELIVERY_FEE', 'Delivery fee')} ${business && parsePrice(business?.delivery_price || 0)} \u2022 `}
381
421
  </OText>
382
- ) : (
422
+ )}
423
+ {!hideTime && (
424
+ <>
425
+ {orderState?.options?.type === 1 ? (
426
+ <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
427
+ {convertHoursToMinutes(business?.delivery_time) + ` \u2022 `}
428
+ </OText>
429
+ ) : (
430
+ <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
431
+ {convertHoursToMinutes(business?.pickup_time) + ` \u2022 `}
432
+ </OText>
433
+ )}
434
+ </>
435
+ )}
436
+ {!hideDistance && (
383
437
  <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
384
- {convertHoursToMinutes(business?.pickup_time) + ` \u2022 `}
438
+ {parseDistance(business?.distance || 0) + ` \u2022 `}
385
439
  </OText>
386
440
  )}
387
- <OText color={theme.colors.textSecondary} size={12} style={styles.metadata}>
388
- {parseDistance(business?.distance || 0) + ` \u2022 `}
389
- </OText>
390
- </View>
391
-
392
- <View style={styles.reviewStyle}>
393
- <OIcon
394
- src={theme.images.general.star}
395
- width={14}
396
- color={theme.colors.textSecondary}
397
- style={{ marginTop: -2, marginEnd: 2 }}
398
- />
399
- <OText size={12} color={theme.colors.textSecondary}>
400
- {business?.reviews?.total}
401
- </OText>
402
441
  </View>
442
+ {!hideReviews && (
443
+ <View style={styles.reviewStyle}>
444
+ <OIcon
445
+ src={theme.images.general.star}
446
+ width={14}
447
+ color={theme.colors.textSecondary}
448
+ style={{ marginTop: -2, marginEnd: 2 }}
449
+ />
450
+ <OText size={12} color={theme.colors.textSecondary}>
451
+ {business?.reviews?.total}
452
+ </OText>
453
+ </View>
454
+ )}
403
455
  </BusinessInfoItem>
404
456
  </View>
405
457
  <WrapReviews>
@@ -408,18 +460,43 @@ export const BusinessBasicInformation = (
408
460
  {isPreOrder && (!business?.professionals || business?.professionals?.length === 0) && (
409
461
  <>
410
462
  <TouchableOpacity onPress={() => navigation.navigate('BusinessPreorder', { business: businessState?.business, handleBusinessClick: () => navigation?.goBack() })}>
411
- <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
463
+ <OText
464
+ color={theme.colors.primary}
465
+ style={{ textDecorationColor: theme.colors.primary, textDecorationLine: 'underline' }}
466
+ size={12}
467
+ >
412
468
  {t('PREORDER', 'Preorder')}
413
469
  </OText>
414
470
  </TouchableOpacity>
415
471
  <OText size={12} color={theme.colors.textSecondary}>{' \u2022 '}</OText>
416
472
  </>
417
473
  )}
418
- <TouchableOpacity onPress={() => handleClickBusinessReviews()}>
419
- <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
420
- {t('REVIEWS', 'Reviews')}
421
- </OText>
422
- </TouchableOpacity>
474
+ {!hideReviewsPopup && (
475
+ <>
476
+ <TouchableOpacity onPress={() => handleClickBusinessReviews()}>
477
+ <OText
478
+ color={theme.colors.primary}
479
+ style={{ textDecorationColor: theme.colors.primary, textDecorationLine: 'underline' }}
480
+ size={12}
481
+ >
482
+ {t('REVIEWS', 'Reviews')}
483
+ </OText>
484
+ </TouchableOpacity>
485
+ <OText size={12} color={theme.colors.textSecondary}>{' \u2022 '}</OText>
486
+ </>
487
+ )}
488
+
489
+ {!isBusinessInfoShow && !hideInfoIcon && !isChewLayout && (
490
+ <TouchableOpacity onPress={() => handleClickBusinessInformation()}>
491
+ <OText
492
+ color={theme.colors.primary}
493
+ style={{ textDecorationColor: theme.colors.primary, textDecorationLine: 'underline' }}
494
+ size={12}
495
+ >
496
+ {t('INFORMATION', 'Information')}
497
+ </OText>
498
+ </TouchableOpacity>
499
+ )}
423
500
  </>
424
501
  )}
425
502
  </WrapReviews>
@@ -8,9 +8,6 @@ export const BusinessContainer = styled.View`
8
8
  export const BusinessHeader = styled.ImageBackground`
9
9
  width: 100%;
10
10
  position: relative;
11
- max-height: 258px;
12
- height: 258px;
13
- resize-mode: cover;
14
11
  `;
15
12
  export const BusinessLogo = styled.View`
16
13
  position: absolute;
@@ -44,13 +41,10 @@ export const WrapBusinessInfo = styled.TouchableOpacity`
44
41
 
45
42
  export const TitleWrapper = styled.View`
46
43
  width: 100%;
47
- flex-direction: row;
48
- align-items: center;
49
- justify-content: space-between;
44
+ flex-direction: column;
50
45
  `
51
46
 
52
47
  export const RibbonBox = styled.View`
53
- margin-left: 5px;
54
48
  background-color: ${(props: any) => props.theme.colors.primary};
55
49
  padding: 2px 8px;
56
50
  max-width: 180px;
@@ -67,6 +61,14 @@ export const RibbonBox = styled.View`
67
61
  ${(props: any) => props.isCapsule && css`
68
62
  border-radius: 50px;
69
63
  `}
64
+
65
+ ${(props: any) => props.colorText && css`
66
+ color: ${props.colorText ? 'black' : 'white'};
67
+ `}
68
+
69
+ ${(props: any) => props.borderRibbon && css`
70
+ border: 1px solid ${props.borderRibbon ? 'black' : 'white'};
71
+ `}
70
72
  `
71
73
 
72
74
  export const SocialListWrapper = styled.ScrollView`