ordering-ui-react-native 0.18.0 → 0.18.1-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 (263) hide show
  1. package/package.json +9 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/OrderCreating/index.tsx +0 -20
  6. package/src/components/PaymentOptionsWebView/index.tsx +29 -8
  7. package/src/components/PhoneInputNumber/index.tsx +6 -2
  8. package/src/components/StripeMethodForm/index.tsx +136 -102
  9. package/src/components/VerifyPhone/styles.tsx +1 -2
  10. package/src/components/shared/OToast.tsx +3 -2
  11. package/src/types/index.tsx +5 -0
  12. package/src/utils/index.tsx +7 -2
  13. package/themes/business/index.tsx +4 -0
  14. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +36 -26
  15. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  16. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  17. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  18. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  19. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  20. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  21. package/themes/business/src/components/Chat/index.tsx +163 -123
  22. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  23. package/themes/business/src/components/DriverSchedule/index.tsx +45 -8
  24. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  25. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  26. package/themes/business/src/components/LoginForm/index.tsx +5 -2
  27. package/themes/business/src/components/MapView/index.tsx +14 -10
  28. package/themes/business/src/components/MessagesOption/index.tsx +22 -94
  29. package/themes/business/src/components/NewOrderNotification/index.tsx +123 -96
  30. package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
  31. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  32. package/themes/business/src/components/OrderDetails/Delivery.tsx +205 -12
  33. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +91 -43
  34. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +87 -66
  35. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +200 -0
  36. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  37. package/themes/business/src/components/OrderMessage/index.tsx +19 -18
  38. package/themes/business/src/components/OrderSummary/index.tsx +114 -123
  39. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  40. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  41. package/themes/business/src/components/OrdersOption/index.tsx +60 -47
  42. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  43. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  44. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +21 -29
  45. package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
  46. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  47. package/themes/business/src/components/PreviousOrders/index.tsx +198 -221
  48. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  49. package/themes/business/src/components/ProductItemAccordion/index.tsx +7 -1
  50. package/themes/business/src/components/ReviewCustomer/index.tsx +18 -13
  51. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  52. package/themes/business/src/components/StoresList/index.tsx +6 -5
  53. package/themes/business/src/components/UserProfileForm/index.tsx +14 -15
  54. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  55. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  56. package/themes/business/src/components/shared/OModal.tsx +16 -9
  57. package/themes/business/src/types/index.tsx +25 -10
  58. package/themes/business/src/utils/index.tsx +29 -2
  59. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  60. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  61. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  62. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  63. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  64. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -5
  65. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  66. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  67. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  68. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  69. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  70. package/themes/original/index.tsx +7 -3
  71. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  72. package/themes/original/src/components/AddressForm/index.tsx +33 -15
  73. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  74. package/themes/original/src/components/AddressList/index.tsx +5 -8
  75. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  76. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  77. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  78. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  79. package/themes/original/src/components/BusinessBasicInformation/index.tsx +74 -38
  80. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +11 -13
  81. package/themes/original/src/components/BusinessController/index.tsx +35 -44
  82. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  83. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  84. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  85. package/themes/original/src/components/BusinessInformation/index.tsx +140 -85
  86. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  87. package/themes/original/src/components/BusinessItemAccordion/index.tsx +25 -26
  88. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  89. package/themes/original/src/components/BusinessListingSearch/index.tsx +346 -341
  90. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -19
  91. package/themes/original/src/components/BusinessPreorder/index.tsx +105 -22
  92. package/themes/original/src/components/BusinessPreorder/styles.tsx +14 -0
  93. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -3
  94. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  95. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  96. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  97. package/themes/original/src/components/BusinessProductsListing/index.tsx +162 -39
  98. package/themes/original/src/components/BusinessProductsListing/styles.tsx +4 -5
  99. package/themes/original/src/components/BusinessReviews/index.tsx +4 -2
  100. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  101. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  102. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  103. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  104. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  105. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +37 -404
  106. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  107. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  108. package/themes/original/src/components/Cart/index.tsx +49 -47
  109. package/themes/original/src/components/CartContent/index.tsx +99 -38
  110. package/themes/original/src/components/CartContent/styles.tsx +6 -6
  111. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  112. package/themes/original/src/components/Checkout/index.tsx +324 -43
  113. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  114. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  115. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  116. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  117. package/themes/original/src/components/DatePicker/index.tsx +17 -0
  118. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  119. package/themes/original/src/components/DriverTips/index.tsx +12 -4
  120. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  121. package/themes/original/src/components/Favorite/index.tsx +4 -9
  122. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  123. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  124. package/themes/original/src/components/GPSButton/index.tsx +7 -5
  125. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  126. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +42 -5
  127. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +3 -1
  128. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +84 -8
  129. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  130. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  131. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  132. package/themes/original/src/components/GoogleMap/index.tsx +63 -7
  133. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  134. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  135. package/themes/original/src/components/Home/index.tsx +14 -5
  136. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  137. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  138. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  139. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  140. package/themes/original/src/components/LottieAnimation/index.tsx +88 -63
  141. package/themes/original/src/components/MessageListing/index.tsx +9 -2
  142. package/themes/original/src/components/Messages/index.tsx +15 -4
  143. package/themes/original/src/components/Messages/styles.tsx +1 -1
  144. package/themes/original/src/components/MomentOption/index.tsx +43 -38
  145. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  146. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  147. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +161 -49
  148. package/themes/original/src/components/MultiCheckout/index.tsx +348 -70
  149. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  150. package/themes/original/src/components/MultiOrdersDetails/index.tsx +2 -2
  151. package/themes/original/src/components/MyOrders/index.tsx +16 -5
  152. package/themes/original/src/components/NavBar/index.tsx +20 -13
  153. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  154. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  155. package/themes/original/src/components/Notifications/index.tsx +2 -4
  156. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  157. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  158. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +22 -6
  159. package/themes/original/src/components/OrderDetails/index.tsx +721 -670
  160. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  161. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  162. package/themes/original/src/components/OrderProgress/index.tsx +34 -25
  163. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  164. package/themes/original/src/components/OrderSummary/index.tsx +62 -57
  165. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  166. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  167. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +13 -13
  168. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  169. package/themes/original/src/components/OrdersOption/index.tsx +44 -21
  170. package/themes/original/src/components/OrdersOption/styles.tsx +2 -2
  171. package/themes/original/src/components/PageBanner/index.tsx +65 -29
  172. package/themes/original/src/components/PageBanner/styles.tsx +0 -3
  173. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  174. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  175. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  176. package/themes/original/src/components/PaymentOptions/index.tsx +100 -34
  177. package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
  178. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  179. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  180. package/themes/original/src/components/ProductForm/index.tsx +106 -170
  181. package/themes/original/src/components/ProductForm/styles.tsx +3 -3
  182. package/themes/original/src/components/ProductItemAccordion/index.tsx +13 -6
  183. package/themes/original/src/components/ProductOptionSubOption/index.tsx +49 -20
  184. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +10 -9
  185. package/themes/original/src/components/ProfessionalProfile/index.tsx +35 -6
  186. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  187. package/themes/original/src/components/Promotions/index.tsx +6 -6
  188. package/themes/original/src/components/Promotions/styles.tsx +3 -3
  189. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  190. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  191. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  192. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  193. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  194. package/themes/original/src/components/ServiceForm/index.tsx +36 -24
  195. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  196. package/themes/original/src/components/SignupForm/index.tsx +27 -16
  197. package/themes/original/src/components/SingleOrderCard/index.tsx +44 -20
  198. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  199. package/themes/original/src/components/SingleProductCard/index.tsx +13 -10
  200. package/themes/original/src/components/SingleProductCard/styles.tsx +8 -3
  201. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  202. package/themes/original/src/components/StripeCardsList/index.tsx +61 -5
  203. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  204. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  205. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  206. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  207. package/themes/original/src/components/UpsellingProducts/index.tsx +16 -205
  208. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  209. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  210. package/themes/original/src/components/UserFormDetails/index.tsx +100 -22
  211. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  212. package/themes/original/src/components/UserProfile/index.tsx +8 -26
  213. package/themes/original/src/components/UserProfileForm/index.tsx +30 -31
  214. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  215. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  216. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  217. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  218. package/themes/original/src/components/Wallets/index.tsx +48 -60
  219. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  220. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  221. package/themes/original/src/components/shared/OButton.tsx +3 -3
  222. package/themes/original/src/components/shared/OInput.tsx +4 -5
  223. package/themes/original/src/components/shared/OModal.tsx +15 -17
  224. package/themes/original/src/layouts/Container.tsx +1 -1
  225. package/themes/original/src/types/index.tsx +28 -6
  226. package/themes/original/src/utils/index.tsx +180 -13
  227. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  228. package/src/navigators/BottomNavigator.tsx +0 -117
  229. package/src/navigators/CheckoutNavigator.tsx +0 -66
  230. package/src/navigators/HomeNavigator.tsx +0 -202
  231. package/src/navigators/NavigationRef.tsx +0 -7
  232. package/src/navigators/RootNavigator.tsx +0 -269
  233. package/src/pages/Account.tsx +0 -34
  234. package/src/pages/AddressForm.tsx +0 -62
  235. package/src/pages/AddressList.tsx +0 -24
  236. package/src/pages/BusinessProductsList.tsx +0 -81
  237. package/src/pages/BusinessesListing.tsx +0 -43
  238. package/src/pages/CartList.tsx +0 -49
  239. package/src/pages/Checkout.tsx +0 -101
  240. package/src/pages/ForgotPassword.tsx +0 -24
  241. package/src/pages/Help.tsx +0 -23
  242. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  243. package/src/pages/HelpGuide.tsx +0 -23
  244. package/src/pages/HelpOrder.tsx +0 -23
  245. package/src/pages/Home.tsx +0 -36
  246. package/src/pages/IntroductoryTutorial.tsx +0 -170
  247. package/src/pages/Login.tsx +0 -47
  248. package/src/pages/MomentOption.tsx +0 -30
  249. package/src/pages/MultiCheckout.tsx +0 -31
  250. package/src/pages/MultiOrdersDetails.tsx +0 -27
  251. package/src/pages/MyOrders.tsx +0 -40
  252. package/src/pages/NetworkError.tsx +0 -24
  253. package/src/pages/NotFound.tsx +0 -22
  254. package/src/pages/OrderDetails.tsx +0 -25
  255. package/src/pages/ProductDetails.tsx +0 -55
  256. package/src/pages/Profile.tsx +0 -36
  257. package/src/pages/ReviewDriver.tsx +0 -30
  258. package/src/pages/ReviewOrder.tsx +0 -32
  259. package/src/pages/ReviewProducts.tsx +0 -30
  260. package/src/pages/Sessions.tsx +0 -22
  261. package/src/pages/Signup.tsx +0 -53
  262. package/src/pages/SpinnerLoader.tsx +0 -10
  263. package/src/pages/Splash.tsx +0 -21
@@ -11,10 +11,11 @@ import {
11
11
  ToastType
12
12
  } from 'ordering-components/native';
13
13
  import { OIcon, OText } from '../shared';
14
- import { Dimensions, StyleSheet, Vibration, View } from 'react-native';
14
+ import { Dimensions, StyleSheet, View } from 'react-native';
15
15
  import { InView } from 'react-native-intersection-observer'
16
16
  import { BusinessControllerParams } from '../../types';
17
- import { convertHoursToMinutes, shape } from '../../utils';
17
+ import { convertHoursToMinutes, lightenDarkenColor, shape } from '../../utils';
18
+ import ReactNativeHapticFeedback from "react-native-haptic-feedback";
18
19
 
19
20
  import {
20
21
  BusinessHero,
@@ -41,7 +42,6 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
41
42
  navigation,
42
43
  isBusinessOpen,
43
44
  style,
44
- isCustomLayout,
45
45
  businessHeader,
46
46
  businessFeatured,
47
47
  businessLogo,
@@ -75,7 +75,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
75
75
  const hideBusinessHeader = theme?.business_listing_view?.components?.business?.components?.header?.hidden
76
76
  const hideBusinessFavoriteBadge = theme?.business_listing_view?.components?.business?.components?.featured_badge?.hidden
77
77
 
78
- const textSize = isCustomLayout ? 12 : 10
78
+ const textSize = 12
79
79
  const cardHeight = windowHeight * 0.3
80
80
 
81
81
  const styles = StyleSheet.create({
@@ -151,8 +151,16 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
151
151
  return _types.join(', ');
152
152
  };
153
153
 
154
+ const vibrateApp = (impact?: string) => {
155
+ const options = {
156
+ enableVibrateFallback: true,
157
+ ignoreAndroidSystemSettings: false
158
+ };
159
+ ReactNativeHapticFeedback.trigger(impact || "impactLight", options);
160
+ }
161
+
154
162
  const handleBusinessClick = (selectedBusiness: any) => {
155
- Vibration.vibrate()
163
+ vibrateApp()
156
164
  if (business?.open) handleClick && handleClick(selectedBusiness)
157
165
  else {
158
166
  if (configState?.configs?.preorder_status_enabled?.value === '1') {
@@ -185,13 +193,15 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
185
193
  {business?.ribbon?.enabled && (
186
194
  <RibbonBox
187
195
  bgColor={business?.ribbon?.color}
196
+ colorText={lightenDarkenColor(business?.ribbon?.color)}
197
+ borderRibbon={lightenDarkenColor(business?.ribbon?.color)}
188
198
  isRoundRect={business?.ribbon?.shape === shape?.rectangleRound}
189
199
  isCapsule={business?.ribbon?.shape === shape?.capsuleShape}
190
200
  >
191
201
  <OText
192
202
  size={10}
193
203
  weight={'400'}
194
- color={theme.colors.white}
204
+ color={lightenDarkenColor(business?.ribbon?.color) ? theme.colors.black : theme.colors.white}
195
205
  numberOfLines={2}
196
206
  ellipsizeMode='tail'
197
207
  lineHeight={13}
@@ -203,9 +213,9 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
203
213
  <BusinessHero>
204
214
  {!hideBusinessHeader && (
205
215
  <FastImage
206
- style={{ height: isCustomLayout ? cardHeight * 0.66 : 120 }}
207
- source={(businessHeader || business?.header) ? {
208
- uri: optimizeImage(businessHeader || business?.header, 'h_500,c_limit'),
216
+ style={{ height: cardHeight * 0.66 }}
217
+ source={(businessHeader || business?.header || typeof theme.images.dummies.businessHeader === 'string') ? {
218
+ uri: optimizeImage(businessHeader || business?.header || theme.images.dummies.businessHeader, 'h_500,c_limit'),
209
219
  priority: FastImage.priority.normal,
210
220
  } : theme.images.dummies.businessHeader}
211
221
  resizeMode={FastImage.resizeMode.cover}
@@ -216,19 +226,23 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
216
226
  <FontAwesomeIcon name="crown" size={26} color="gold" />
217
227
  </View>
218
228
  )}
219
- {(!isCustomLayout) && !hideBusinessOffer && (
229
+ {!hideBusinessOffer && (
220
230
  getBusinessOffer((business?.offers)) &&
221
- <OfferBox>
231
+ <OfferBox
232
+ isClosed={!isBusinessOpen && (configState?.configs?.preorder_status_enabled?.value === '1')}
233
+ isRibbon={business?.ribbon?.enabled && !!business?.ribbon?.text}
234
+ >
222
235
  <OText
223
236
  size={10}
224
237
  weight={'400'}
238
+ color={theme.colors.textThird}
225
239
  numberOfLines={2}
226
240
  ellipsizeMode='tail'
227
241
  lineHeight={13}
228
242
  >{getBusinessOffer((business?.offers)) || parsePrice(0)}</OText>
229
243
  </OfferBox>
230
244
  )}
231
- <BusinessState>
245
+ <BusinessState isRibbon={business?.ribbon?.enabled && !!business?.ribbon?.text}>
232
246
  {!isBusinessOpen && (configState?.configs?.preorder_status_enabled?.value === '1') && (
233
247
  <View style={styles.businessStateView}>
234
248
  <OText
@@ -242,51 +256,28 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
242
256
  </BusinessState>
243
257
  </BusinessHero>
244
258
  <BusinessContent>
245
- <BusinessInfo style={isCustomLayout && { position: 'absolute', bottom: 85, left: 15 }}>
259
+ <BusinessInfo style={{ position: 'absolute', bottom: 85, left: 15 }}>
246
260
  {!hideBusinessLogo && (
247
261
  <BusinessLogo style={styles.businessLogo}>
248
262
  <FastImage
249
263
  style={{ width: 56, height: 56 }}
250
- source={(businessLogo || business?.logo) ? {
251
- uri: optimizeImage(businessLogo || business?.logo, 'h_150,c_limit'),
264
+ source={(businessLogo || business?.logo || typeof theme.images.dummies.businessLogo === 'string') ? {
265
+ uri: optimizeImage(businessLogo || business?.logo || theme.images.dummies.businessLogo, 'h_150,c_limit'),
252
266
  priority: FastImage.priority.normal,
253
267
  } : theme.images.dummies.businessLogo}
254
268
  resizeMode={FastImage.resizeMode.cover}
255
269
  />
256
270
  </BusinessLogo>
257
271
  )}
258
- {!isCustomLayout && (!hideBusinessFavorite || !hideBusinessReviews) && (
259
- <ReviewAndFavorite>
260
- {(businessReviews?.reviews?.total > 0 ?? business?.reviews?.total > 0) && !hideBusinessReviews && (
261
- <Reviews>
262
- <OIcon src={theme.images.general.star} width={12} style={styles.starIcon} />
263
- <OText size={10} style={{ lineHeight: 15 }}>
264
- {parseNumber(businessReviews?.reviews?.total ?? business?.reviews?.total, { separator: '.' })}
265
- </OText>
266
- </Reviews>
267
- )}
268
- {!hideBusinessFavorite && (
269
- <LottieAnimation
270
- type='favorite'
271
- onClick={handleChangeFavorite}
272
- initialValue={business?.favorite ? 0.75 : 0}
273
- toValue={business?.favorite ? 0 : 0.75}
274
- disableAnimation={!auth}
275
- iconProps={{ color: theme.colors.danger5, size: 18 }}
276
- isActive={business?.favorite}
277
- />
278
- )}
279
- </ReviewAndFavorite>
280
- )}
281
272
  </BusinessInfo>
282
- <View style={isCustomLayout && { width: '100%', flexDirection: 'row', justifyContent: 'space-between', marginTop: 5 }}>
273
+ <View style={{ width: '100%', flexDirection: 'row', justifyContent: 'space-between', marginTop: 5, alignItems: 'flex-start' }}>
283
274
  <OText
284
275
  size={textSize + 2}
285
- style={{ lineHeight: 18, marginBottom: 6 }}
276
+ style={{ lineHeight: 18, marginBottom: 6, width: '90%' }}
286
277
  weight={'500'}>
287
278
  {business?.name}
288
279
  </OText>
289
- {isCustomLayout && (!hideBusinessFavorite || !hideBusinessReviews) && (
280
+ {(!hideBusinessFavorite || !hideBusinessReviews) && (
290
281
  <ReviewAndFavorite>
291
282
  {(businessReviews?.reviews?.total > 0 ?? business?.reviews?.total > 0) && !hideBusinessReviews && (
292
283
  <Reviews>
@@ -300,8 +291,8 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
300
291
  <LottieAnimation
301
292
  type='favorite'
302
293
  onClick={handleChangeFavorite}
303
- initialValue={business?.favorite ? 0.75 : 0}
304
- toValue={business?.favorite ? 0 : 0.75}
294
+ initialValue={business?.favorite ? 0.5 : 0}
295
+ toValue={business?.favorite ? 0 : 0.5}
305
296
  disableAnimation={!auth}
306
297
  iconProps={{ color: theme.colors.danger5, size: 18 }}
307
298
  isActive={business?.favorite}
@@ -310,7 +301,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
310
301
  </ReviewAndFavorite>
311
302
  )}
312
303
  </View>
313
- <OText size={textSize} style={{ lineHeight: 15, marginBottom: 3 }} numberOfLines={isCustomLayout ? 1 : 2}>
304
+ <OText size={textSize} style={{ lineHeight: 15, marginBottom: 3 }} numberOfLines={1}>
314
305
  {business?.address}
315
306
  </OText>
316
307
  <Metadata>
@@ -34,8 +34,8 @@ export const Metadata = styled.View`
34
34
 
35
35
  export const BusinessState = styled.View`
36
36
  position: absolute;
37
- top: 13px;
38
- end: 18px;
37
+ top: ${(props: any) => props.isRibbon ? '32px' : '15px'};
38
+ right: 15px;
39
39
  `
40
40
 
41
41
  export const BusinessLogo = styled.View`
@@ -72,15 +72,22 @@ export const RibbonBox = styled.View`
72
72
  ${(props: any) => props.isCapsule && css`
73
73
  border-radius: 50px;
74
74
  `}
75
+
76
+ ${(props: any) => props.colorText && css`
77
+ color: ${props.colorText ? 'black' : 'white'};
78
+ `}
79
+
80
+ ${(props: any) => props.borderRibbon && css`
81
+ border: 1px solid ${props.borderRibbon ? 'black' : 'white'};
82
+ `}
75
83
  `
76
84
 
77
85
  export const OfferBox = styled.View`
78
86
  position: absolute;
79
87
  z-index: 1;
80
- top: 20px;
81
- right: 10px;
82
88
  border-radius: 50px;
83
- color: ${(props: any) => props.theme.colors.textThird};
89
+ top: ${(props: any) => props.isRibbon ? '32px' : '15px'};
90
+ right: ${(props: any) => props.isClosed ? '110px' : '15px'};
84
91
  background: ${(props: any) => props.theme.colors.inputBorderColor};
85
92
  padding: 3px 8px;
86
93
  max-width: 180px;
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { StyleSheet, useWindowDimensions, View } from 'react-native';
2
3
  import {
3
4
  BusinessController as BusinessSingleCard,
4
5
  useUtils,
@@ -6,33 +7,29 @@ import {
6
7
  useLanguage,
7
8
  } from 'ordering-components/native';
8
9
  import { useTheme } from 'styled-components/native';
9
- import { OIcon, OText } from '../shared';
10
- import { StyleSheet, useWindowDimensions, View } from 'react-native';
10
+ import FastImage from 'react-native-fast-image'
11
+
12
+ import { OText } from '../shared';
11
13
  import { BusinessControllerParams } from '../../types';
12
- import { convertHoursToMinutes, shape } from '../../utils';
14
+ import { convertHoursToMinutes, lightenDarkenColor, shape } from '../../utils';
13
15
  import {
14
16
  Card,
15
17
  BusinessHero,
16
18
  BusinessContent,
17
- BusinessCategory,
18
19
  BusinessInfo,
19
20
  Metadata,
20
- BusinessState,
21
21
  BusinessLogo,
22
- Reviews,
23
22
  RibbonBox
24
23
  } from './styles';
25
24
 
26
25
  export const BusinessFeaturedCtrlUI = (props: BusinessControllerParams) => {
27
26
  const { business, handleClick, isBusinessOpen } = props;
28
- const [{ parsePrice, parseDistance, parseNumber, optimizeImage }] =
29
- useUtils();
27
+
28
+ const [{ parsePrice, parseDistance, optimizeImage }] = useUtils();
30
29
  const [orderState] = useOrder();
31
30
  const [, t] = useLanguage();
32
-
33
31
  const theme = useTheme();
34
32
 
35
-
36
33
  const styles = StyleSheet.create({
37
34
  headerStyle: {
38
35
  borderTopLeftRadius: 25,
@@ -79,35 +76,28 @@ export const BusinessFeaturedCtrlUI = (props: BusinessControllerParams) => {
79
76
  justifyContent: 'flex-start',
80
77
  width: '100%',
81
78
  },
79
+ productStyle: {
80
+ height: 40,
81
+ width: 40
82
+ }
82
83
  });
83
84
 
84
- const types = ['food', 'laundry', 'alcohol', 'groceries'];
85
-
86
85
  const { width } = useWindowDimensions();
87
86
 
88
- const getBusinessType = () => {
89
- if (Object.keys(business).length <= 0) return t('GENERAL', 'General');
90
- const _types: any = [];
91
- types.forEach((type) => {
92
- if (business[type]) {
93
- _types.push(t(type.toUpperCase(), type));
94
- }
95
- });
96
- return _types.join(', ');
97
- };
98
-
99
87
  return (
100
88
  <Card activeOpacity={1} onPress={() => handleClick(business)}>
101
89
  {business?.ribbon?.enabled && (
102
90
  <RibbonBox
103
91
  bgColor={business?.ribbon?.color}
92
+ colorText={lightenDarkenColor(business?.ribbon?.color)}
93
+ borderRibbon={lightenDarkenColor(business?.ribbon?.color)}
104
94
  isRoundRect={business?.ribbon?.shape === shape?.rectangleRound}
105
95
  isCapsule={business?.ribbon?.shape === shape?.capsuleShape}
106
96
  >
107
97
  <OText
108
98
  size={10}
109
99
  weight={'400'}
110
- color={theme.colors.white}
100
+ color={lightenDarkenColor(business?.ribbon?.color) ? theme.colors.black : theme.colors.white}
111
101
  numberOfLines={2}
112
102
  ellipsizeMode='tail'
113
103
  lineHeight={13}
@@ -118,10 +108,13 @@ export const BusinessFeaturedCtrlUI = (props: BusinessControllerParams) => {
118
108
  )}
119
109
  <BusinessHero>
120
110
  <BusinessLogo>
121
- <OIcon
122
- url={optimizeImage(business?.logo, 'h_100,c_limit')}
123
- width={40}
124
- height={40}
111
+ <FastImage
112
+ style={styles.productStyle}
113
+ source={{
114
+ uri: optimizeImage(business?.logo, 'h_100,c_limit'),
115
+ priority: FastImage.priority.normal,
116
+ }}
117
+ resizeMode={FastImage.resizeMode.cover}
125
118
  />
126
119
  </BusinessLogo>
127
120
  <BusinessContent style={{ width: width * 0.6 }}>
@@ -129,23 +122,7 @@ export const BusinessFeaturedCtrlUI = (props: BusinessControllerParams) => {
129
122
  <OText size={12} ellipsizeMode={'tail'} numberOfLines={2}>
130
123
  {business?.name}
131
124
  </OText>
132
- {/* {business?.reviews?.total > 0 && (
133
- <Reviews>
134
- <IconAntDesign
135
- name="star"
136
- color={theme.colors.primary}
137
- size={16}
138
- style={styles.starIcon}
139
- />
140
- <OText>
141
- {parseNumber(business?.reviews?.total, { separator: '.' })}
142
- </OText>
143
- </Reviews>
144
- )} */}
145
125
  </BusinessInfo>
146
- {/* <BusinessCategory>
147
- <OText>{getBusinessType()}</OText>
148
- </BusinessCategory> */}
149
126
  <Metadata>
150
127
  {!isBusinessOpen ? (
151
128
  <View style={styles.closed}>
@@ -155,7 +132,6 @@ export const BusinessFeaturedCtrlUI = (props: BusinessControllerParams) => {
155
132
  </View>
156
133
  ) : (
157
134
  <View style={styles.bullet}>
158
- {/* <MaterialComIcon name="alarm" size={16} /> */}
159
135
  <OText size={10} color={theme.colors.textSecondary}>
160
136
  {t('DELIVERY_FEE', 'Delivery Fee')}
161
137
  </OText>
@@ -184,15 +160,6 @@ export const BusinessFeaturedCtrlUI = (props: BusinessControllerParams) => {
184
160
  )}
185
161
  </Metadata>
186
162
  </BusinessContent>
187
- {/* <BusinessState>
188
- {!business?.open && (
189
- <View style={styles.businessStateView}>
190
- <OText color={theme.colors.white} size={20} style={styles.businessStateText}>
191
- {t('PREORDER', 'PREORDER')}
192
- </OText>
193
- </View>
194
- )}
195
- </BusinessState> */}
196
163
  </BusinessHero>
197
164
  </Card>
198
165
  );
@@ -70,4 +70,12 @@ export const RibbonBox = styled.View`
70
70
  ${(props: any) => props.isCapsule && css`
71
71
  border-radius: 50px;
72
72
  `}
73
+
74
+ ${(props: any) => props.colorText && css`
75
+ color: ${props.colorText ? 'black' : 'white'};
76
+ `}
77
+
78
+ ${(props: any) => props.borderRibbon && css`
79
+ border: 1px solid ${props.borderRibbon ? 'black' : 'white'};
80
+ `}
73
81
  `
@@ -1,7 +1,7 @@
1
- import React from 'react';
1
+ import React, { useState, useCallback } from 'react';
2
2
  import {
3
3
  BusinessInformation as BusinessInformationController,
4
- useLanguage, useUtils
4
+ useLanguage, useUtils, useConfig,
5
5
  } from 'ordering-components/native';
6
6
  import { useTheme } from 'styled-components/native';
7
7
  import { OIcon, OText } from '../shared';
@@ -16,31 +16,41 @@ import {
16
16
  DivideView,
17
17
  MediaWrapper,
18
18
  } from './styles';
19
- import { StyleSheet, View } from 'react-native';
19
+ import { StyleSheet, View, TouchableOpacity } from 'react-native';
20
20
  import { BusinessInformationParams } from '../../types';
21
21
  import { GoogleMap } from '../GoogleMap';
22
22
  import { WebView } from 'react-native-webview';
23
23
  import { formatUrlVideo } from '../../utils'
24
24
  import { ScheduleAccordion } from '../ScheduleAccordion';
25
+ import moment from 'moment';
26
+ import { DeviceOrientationMethods } from '../../../../../src/hooks/DeviceOrientation'
27
+ const { useDeviceOrientation } = DeviceOrientationMethods
28
+
25
29
  const BusinessInformationUI = (props: BusinessInformationParams) => {
26
30
  const { businessState, businessSchedule, businessLocation } = props;
27
31
 
28
32
  const theme = useTheme();
29
33
  const [, t] = useLanguage();
30
34
  const [{ optimizeImage }] = useUtils();
35
+ const [{ configs }] = useConfig()
36
+ const [orientationState] = useDeviceOrientation();
37
+
38
+ const [isReadMore, setIsReadMore] = useState(false)
39
+ const [lengthMore, setLengthMore] = useState(false)
40
+ const WIDTH_SCREEN = orientationState?.dimensions?.width
41
+
42
+ const hideLocation = theme?.business_view?.components?.information?.components?.location?.hidden
43
+ const hideSchedule = theme?.business_view?.components?.information?.components?.schedule?.hidden
44
+ const hideVideos = theme?.business_view?.components?.information?.components?.videos?.hidden
45
+ const hideImages = theme?.business_view?.components?.information?.components?.images?.hidden
46
+ const hideAddress = theme?.business_view?.components?.information?.components?.address?.hidden
47
+ const formatTime = configs?.general_hour_format?.value
48
+
49
+ const checkTime = (val: number) => (val < 10 ? `0${val}` : val);
50
+ const timeFormated = (time: any) => {
51
+ return moment(`1900-01-01 ${checkTime(time.hour)}:${checkTime(time.minute)}`).format(formatTime)
52
+ }
31
53
 
32
- const scheduleFormatted = ({
33
- hour,
34
- minute,
35
- }: {
36
- hour: number | string;
37
- minute: number | string;
38
- }) => {
39
- const checkTime = (val: number | string) => (val < 10 ? `0${val}` : val);
40
- const zz = hour > 12 ? 'PM' : 'AM';
41
- const h = parseInt(`${hour}`);
42
- return `${h > 12 ? h - 12 : h}:${checkTime(minute)} ${zz}`;
43
- };
44
54
  const businessCoordinate = {
45
55
  lat: businessState?.business?.location?.lat,
46
56
  lng: businessState?.business?.location?.lng,
@@ -71,6 +81,10 @@ const BusinessInformationUI = (props: BusinessInformationParams) => {
71
81
  return iAry;
72
82
  };
73
83
 
84
+ const onTextLayout = useCallback((e: any) => {
85
+ setLengthMore((e.nativeEvent.lines.length == 3 && e.nativeEvent.lines[2].width > WIDTH_SCREEN * .76) || e.nativeEvent.lines.length > 3)
86
+ }, [])
87
+
74
88
  return (
75
89
  <BusinessInformationContainer>
76
90
  <WrapMainContent contentContainerStyle={{}}>
@@ -78,87 +92,128 @@ const BusinessInformationUI = (props: BusinessInformationParams) => {
78
92
  <OText size={24} weight={'600'}>
79
93
  {businessState?.business?.name}
80
94
  </OText>
81
- <GrayBackground>
82
- <OText size={16} weight="500">
83
- {t('BUSINESS_LOCATION', 'Business Location')}
95
+ {!hideLocation && (
96
+ <>
97
+ <GrayBackground>
98
+ <OText size={16} weight="500">
99
+ {t('BUSINESS_LOCATION', 'Business Location')}
100
+ </OText>
101
+ </GrayBackground>
102
+ {businessLocation.location && (
103
+ <WrapBusinessMap style={styles.wrapMapStyle}>
104
+ <GoogleMap
105
+ readOnly
106
+ location={businessLocation.location}
107
+ markerTitle={businessState?.business?.name}
108
+ businessZones={businessState?.business?.zones}
109
+ />
110
+ </WrapBusinessMap>
111
+ )}
112
+ </>
113
+ )}
114
+ {!hideAddress && (
115
+ <OText size={12} mBottom={10}>
116
+ {businessState?.business?.address}
84
117
  </OText>
85
- </GrayBackground>
86
- {businessLocation.location && (
87
- <WrapBusinessMap style={styles.wrapMapStyle}>
88
- <GoogleMap
89
- readOnly
90
- location={businessLocation.location}
91
- markerTitle={businessState?.business?.name}
92
- />
93
- </WrapBusinessMap>
94
118
  )}
95
- <OText size={12} mBottom={20}>
96
- {businessState?.business?.address}
97
- </OText>
119
+ {businessState?.business?.address_notes && (
120
+ <>
121
+ <OText
122
+ size={12}
123
+ mBottom={10}
124
+ numberOfLines={isReadMore ? 20 : 3}
125
+ onTextLayout={onTextLayout}
126
+ >
127
+ {businessState?.business?.address_notes}
128
+ </OText>
129
+ {lengthMore && (
130
+ <TouchableOpacity
131
+ onPress={() => setIsReadMore(!isReadMore)}
132
+ >
133
+ <OText size={12} mBottom={20} color={theme.colors.primary}>{isReadMore ? t('SHOW_LESS', 'Show less') : t('READ_MORE', 'Read more')}</OText>
134
+ </TouchableOpacity>
135
+ )}
136
+ </>
137
+ )}
98
138
  <DivideView />
99
- <GrayBackground>
100
- <OText size={16} weight="500">
101
- {t('OPENING_TIME', 'Opening Time')}
102
- </OText>
103
- </GrayBackground>
104
- {businessSchedule && businessSchedule?.length > 0 && (
105
- <WrapScheduleBlock>
106
- {businessSchedule.map((schedule: any, i: number) => (
107
- <ScheduleBlock key={i}>
108
- <ScheduleAccordion
109
- weekIndex={i}
110
- scheduleFormatted={scheduleFormatted}
111
- schedule={schedule}
112
- />
113
- </ScheduleBlock>
114
- ))}
115
- </WrapScheduleBlock>
139
+ {!hideSchedule && (
140
+ <>
141
+ <GrayBackground>
142
+ <OText size={16} weight="500">
143
+ {t('OPENING_TIME', 'Opening Time')}
144
+ </OText>
145
+ </GrayBackground>
146
+ {businessSchedule && businessSchedule?.length > 0 && (
147
+ <WrapScheduleBlock>
148
+ {businessSchedule.map((schedule: any, i: number) => (
149
+ <ScheduleBlock key={i}>
150
+ <ScheduleAccordion
151
+ weekIndex={i}
152
+ timeFormated={timeFormated}
153
+ schedule={schedule}
154
+ />
155
+ </ScheduleBlock>
156
+ ))}
157
+ </WrapScheduleBlock>
158
+ )}
159
+ </>
116
160
  )}
161
+
117
162
  {/* {businessState?.business?.gallery?.length > 0 && ( */}
163
+
118
164
  <>
119
- {bVideos().length > 0 && (
165
+ {!hideVideos && (
120
166
  <>
121
- <DivideView />
122
- <GrayBackground>
123
- <OText size={16} weight="500">
124
- {t('VIDEOS', 'Videos')}
125
- </OText>
126
- </GrayBackground>
127
- <MediaWrapper horizontal>
128
- {bVideos().map((v: any) => (
129
- <WebView
130
- key={`vid_id_${v.id}`}
131
- style={{ width: 210, height: 127, borderRadius: 7.6 }}
132
- javaScriptEnabled={true}
133
- domStorageEnabled={true}
134
- source={{
135
- html: `
136
- <iframe width='80%' height='80%' src="${formatUrlVideo(v.video)}" frameBorder='0' allow='autoplay; encrypted-media' allowFullScreen />
167
+ {bVideos().length > 0 && (
168
+ <>
169
+ <DivideView />
170
+ <GrayBackground>
171
+ <OText size={16} weight="500">
172
+ {t('VIDEOS', 'Videos')}
173
+ </OText>
174
+ </GrayBackground>
175
+ <MediaWrapper horizontal>
176
+ {bVideos().map((v: any) => (
177
+ <WebView
178
+ key={`vid_id_${v.id}`}
179
+ style={{ width: 210, height: 127, borderRadius: 7.6 }}
180
+ javaScriptEnabled={true}
181
+ domStorageEnabled={true}
182
+ source={{
183
+ html: `
184
+ <iframe width='80%' height='80%' src="${formatUrlVideo(v.video)}" frameBorder='0' allow='autoplay; encrypted-media' allowFullScreen />
137
185
  `,
138
- }}
139
- mediaPlaybackRequiresUserAction={true}
140
- />
141
- ))}
142
- </MediaWrapper>
186
+ }}
187
+ mediaPlaybackRequiresUserAction={true}
188
+ />
189
+ ))}
190
+ </MediaWrapper>
191
+ </>
192
+ )}
143
193
  </>
144
194
  )}
145
- {bImages().length > 0 && (
195
+
196
+ {!hideImages && (
146
197
  <>
147
- <DivideView />
148
- <GrayBackground>
149
- <OText size={16} weight="500">
150
- {t('IMAGES', 'Images')}
151
- </OText>
152
- </GrayBackground>
153
- <MediaWrapper horizontal>
154
- {bImages().map((i: any) => (
155
- i.file != null &&
156
- <View key={i.id} style={{ width: 210, height: 127, borderRadius: 7.6, marginEnd: 20, overflow: 'hidden' }}>
157
- <OIcon cover url={optimizeImage(i?.file, 'h_150,c_limit')} width={210} height={127} />
158
- {/* <OText size={12} color={colors.red} style={{position: 'absolute'}}>{i.file}</OText> */}
159
- </View>
160
- ))}
161
- </MediaWrapper>
198
+ {bImages().length > 0 && (
199
+ <>
200
+ <DivideView />
201
+ <GrayBackground>
202
+ <OText size={16} weight="500">
203
+ {t('IMAGES', 'Images')}
204
+ </OText>
205
+ </GrayBackground>
206
+ <MediaWrapper horizontal>
207
+ {bImages().map((i: any) => (
208
+ i.file != null &&
209
+ <View key={i.id} style={{ width: 210, height: 127, borderRadius: 7.6, marginEnd: 20, overflow: 'hidden' }}>
210
+ <OIcon cover url={optimizeImage(i?.file, 'h_150,c_limit')} width={210} height={127} />
211
+ {/* <OText size={12} color={colors.red} style={{position: 'absolute'}}>{i.file}</OText> */}
212
+ </View>
213
+ ))}
214
+ </MediaWrapper>
215
+ </>
216
+ )}
162
217
  </>
163
218
  )}
164
219
  </>
@@ -17,7 +17,7 @@ export const MediaWrapper = styled.ScrollView`
17
17
  height: 127px;
18
18
  `
19
19
  export const InnerContent = styled.View`
20
- padding: 20px 40px;
20
+ padding: 20px;
21
21
  `
22
22
  export const WrapScheduleBlock = styled.View`
23
23
  margin: 20px 0;
@@ -36,4 +36,4 @@ export const DivideView = styled.View`
36
36
  height: 8px;
37
37
  background-color: ${(props: any) => props.theme.colors.backgroundGray100};
38
38
  margin-horizontal: -40px;
39
- `;
39
+ `;