ordering-ui-react-native 0.14.86 → 0.14.87-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 (142) hide show
  1. package/package.json +6 -3
  2. package/src/DeliveryApp.tsx +34 -2
  3. package/src/assets/images/no-network.png +0 -0
  4. package/src/components/BusinessTypeFilter/index.tsx +9 -2
  5. package/src/components/BusinessTypeFilter/styles.tsx +1 -1
  6. package/src/components/BusinessesListing/index.tsx +1 -1
  7. package/src/components/Cart/index.tsx +1 -1
  8. package/src/components/Checkout/index.tsx +0 -1
  9. package/src/components/Home/index.tsx +3 -5
  10. package/src/components/LanguageSelector/index.tsx +65 -97
  11. package/src/components/LanguageSelector/styles.tsx +4 -17
  12. package/src/components/Messages/index.tsx +38 -30
  13. package/src/components/MomentOption/index.tsx +3 -1
  14. package/src/components/OrderDetails/index.tsx +26 -5
  15. package/src/components/PaymentOptions/index.tsx +7 -16
  16. package/src/components/PaymentOptionsWebView/index.tsx +123 -124
  17. package/src/components/ProductForm/index.tsx +1 -1
  18. package/src/components/ProductForm/styles.tsx +1 -0
  19. package/src/components/StripeElementsForm/index.tsx +27 -48
  20. package/src/components/UserProfileForm/index.tsx +35 -1
  21. package/src/components/VerifyPhone/styles.tsx +1 -2
  22. package/src/config.json +0 -2
  23. package/src/pages/Checkout.tsx +1 -1
  24. package/src/providers/AlertProvider.tsx +4 -1
  25. package/src/theme.json +2 -1
  26. package/src/types/index.tsx +2 -9
  27. package/src/utils/index.tsx +196 -1
  28. package/themes/business/index.tsx +4 -0
  29. package/themes/business/src/components/Chat/index.tsx +32 -31
  30. package/themes/business/src/components/NetworkError/index.tsx +61 -0
  31. package/themes/business/src/components/NetworkError/styles.tsx +11 -0
  32. package/themes/business/src/components/OrderDetails/Business.tsx +1 -0
  33. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +85 -17
  34. package/themes/business/src/components/OrdersListManager/index.tsx +871 -0
  35. package/themes/business/src/components/OrdersListManager/styles.tsx +123 -0
  36. package/themes/business/src/components/OrdersListManager/utils.tsx +216 -0
  37. package/themes/business/src/components/OrdersOption/index.tsx +351 -59
  38. package/themes/business/src/components/OrdersOption/styles.tsx +95 -7
  39. package/themes/business/src/components/PreviousOrders/index.tsx +65 -46
  40. package/themes/business/src/components/PreviousOrders/styles.tsx +5 -10
  41. package/themes/business/src/components/ReviewCustomer/index.tsx +11 -8
  42. package/themes/business/src/types/index.tsx +4 -0
  43. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  44. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  45. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  46. package/themes/kiosk/index.tsx +2 -0
  47. package/themes/kiosk/src/components/BusinessController/index.tsx +27 -6
  48. package/themes/kiosk/src/components/BusinessController/styles.tsx +1 -1
  49. package/themes/kiosk/src/components/BusinessProductsListing/index.tsx +51 -24
  50. package/themes/kiosk/src/components/Cart/index.tsx +1 -1
  51. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +1 -1
  52. package/themes/kiosk/src/components/CartBottomSheet/styles.tsx +1 -1
  53. package/themes/kiosk/src/components/CartContent/index.tsx +13 -3
  54. package/themes/kiosk/src/components/CartItem/index.tsx +20 -8
  55. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +7 -5
  56. package/themes/kiosk/src/components/CustomerName/index.tsx +89 -88
  57. package/themes/kiosk/src/components/Intro/index.tsx +13 -13
  58. package/themes/kiosk/src/components/LanguageSelector/index.tsx +12 -8
  59. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  60. package/themes/kiosk/src/components/NetworkError/index.tsx +60 -0
  61. package/themes/kiosk/src/components/NetworkError/styles.tsx +11 -0
  62. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  63. package/themes/kiosk/src/components/OrderDetails/index.tsx +2 -2
  64. package/themes/kiosk/src/components/OrderSummary/index.tsx +1 -1
  65. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +10 -12
  66. package/themes/kiosk/src/components/ProductForm/index.tsx +172 -124
  67. package/themes/kiosk/src/components/ProductForm/styles.tsx +1 -1
  68. package/themes/kiosk/src/components/ProductOption/index.tsx +1 -0
  69. package/themes/kiosk/src/components/ProductOption/styles.tsx +1 -0
  70. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +48 -34
  71. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  72. package/themes/kiosk/src/components/shared/OCard.tsx +112 -78
  73. package/themes/kiosk/src/types/index.d.ts +4 -0
  74. package/themes/original/index.tsx +28 -6
  75. package/themes/original/src/components/AddressForm/index.tsx +15 -10
  76. package/themes/original/src/components/AddressList/index.tsx +27 -1
  77. package/themes/original/src/components/AnalyticsSegment/index.tsx +127 -0
  78. package/themes/original/src/components/BusinessBasicInformation/index.tsx +11 -7
  79. package/themes/original/src/components/BusinessController/index.tsx +3 -3
  80. package/themes/original/src/components/BusinessMenuList/index.tsx +4 -2
  81. package/themes/original/src/components/BusinessPreorder/index.tsx +142 -121
  82. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  83. package/themes/original/src/components/BusinessProductsList/index.tsx +50 -6
  84. package/themes/original/src/components/BusinessProductsListing/index.tsx +13 -10
  85. package/themes/original/src/components/BusinessReviews/index.tsx +4 -3
  86. package/themes/original/src/components/BusinessesListing/index.tsx +23 -22
  87. package/themes/original/src/components/Cart/index.tsx +43 -10
  88. package/themes/original/src/components/CartContent/index.tsx +2 -2
  89. package/themes/original/src/components/Checkout/index.tsx +54 -30
  90. package/themes/original/src/components/Checkout/styles.tsx +7 -0
  91. package/themes/original/src/components/CouponControl/index.tsx +1 -0
  92. package/themes/original/src/components/DriverTips/index.tsx +1 -1
  93. package/themes/original/src/components/ForgotPasswordForm/index.tsx +8 -12
  94. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +9 -2
  95. package/themes/original/src/components/LoginForm/index.tsx +83 -68
  96. package/themes/original/src/components/Messages/index.tsx +24 -21
  97. package/themes/original/src/components/Messages/styles.tsx +1 -3
  98. package/themes/original/src/components/MomentOption/index.tsx +127 -152
  99. package/themes/original/src/components/MomentOption/styles.tsx +42 -18
  100. package/themes/original/src/components/NetworkError/index.tsx +61 -0
  101. package/themes/original/src/components/NetworkError/styles.tsx +11 -0
  102. package/themes/original/src/components/OrderDetails/index.tsx +103 -124
  103. package/themes/original/src/components/OrderDetails/styles.tsx +3 -1
  104. package/themes/original/src/components/OrderProgress/index.tsx +2 -3
  105. package/themes/original/src/components/OrderSummary/index.tsx +34 -1
  106. package/themes/original/src/components/OrdersOption/index.tsx +16 -40
  107. package/themes/original/src/components/OrdersOption/styles.tsx +0 -5
  108. package/themes/original/src/components/PaymentOptionWallet/index.tsx +1 -1
  109. package/themes/original/src/components/PaymentOptions/index.tsx +21 -24
  110. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -8
  111. package/themes/original/src/components/PlaceSpot/index.tsx +114 -0
  112. package/themes/original/src/components/PlaceSpot/styles.tsx +11 -0
  113. package/themes/original/src/components/PreviousOrders/index.tsx +4 -0
  114. package/themes/original/src/components/ProductForm/index.tsx +154 -105
  115. package/themes/original/src/components/ProductForm/styles.tsx +5 -3
  116. package/themes/original/src/components/ProductOptionSubOption/index.tsx +6 -1
  117. package/themes/original/src/components/ReviewDriver/index.tsx +315 -0
  118. package/themes/original/src/components/ReviewDriver/styles.tsx +38 -0
  119. package/themes/original/src/components/ReviewOrder/index.tsx +307 -186
  120. package/themes/original/src/components/ReviewOrder/styles.tsx +24 -13
  121. package/themes/original/src/components/ReviewProducts/index.tsx +116 -0
  122. package/themes/original/src/components/ReviewProducts/styles.tsx +16 -0
  123. package/themes/original/src/components/SignupForm/index.tsx +173 -154
  124. package/themes/original/src/components/SingleProductCard/index.tsx +6 -13
  125. package/themes/original/src/components/SingleProductCard/styles.tsx +1 -1
  126. package/themes/original/src/components/SingleProductReview/index.tsx +166 -0
  127. package/themes/original/src/components/SingleProductReview/styles.tsx +27 -0
  128. package/themes/original/src/components/StripeElementsForm/index.tsx +55 -72
  129. package/themes/original/src/components/UpsellingProducts/index.tsx +6 -6
  130. package/themes/original/src/components/UserDetails/index.tsx +4 -95
  131. package/themes/original/src/components/UserFormDetails/index.tsx +2 -14
  132. package/themes/original/src/components/UserProfile/index.tsx +16 -9
  133. package/themes/original/src/components/UserProfileForm/index.tsx +16 -8
  134. package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
  135. package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
  136. package/themes/original/src/components/shared/HeaderTitle.tsx +20 -0
  137. package/themes/original/src/components/shared/index.tsx +2 -0
  138. package/themes/original/src/layouts/FloatingBottomContainer.tsx +26 -0
  139. package/themes/original/src/types/index.tsx +47 -10
  140. package/themes/single-business/src/components/OrderTypeSelector/index.tsx +5 -5
  141. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  142. package/src/components/StripeMethodForm/index.tsx +0 -163
@@ -1,4 +1,5 @@
1
1
  import React, { useState } from 'react'
2
+ import FastImage from 'react-native-fast-image'
2
3
  import {
3
4
  View,
4
5
  TouchableOpacity,
@@ -69,7 +70,7 @@ export const ProductOptionsUI = (props: any) => {
69
70
 
70
71
  const { product, loading, error } = productObject;
71
72
 
72
- const HEADER_EXPANDED_HEIGHT = Platform.OS === 'ios' ? orientationState?.dimensions?.height * 0.65 : orientationState?.dimensions?.height * 0.4;
73
+ const HEADER_EXPANDED_HEIGHT = orientationState?.dimensions?.height * 0.4;
73
74
  const HEADER_COLLAPSED_HEIGHT = orientationState?.dimensions?.height * 0.2;
74
75
 
75
76
  const isError = (id: number) => {
@@ -87,7 +88,6 @@ export const ProductOptionsUI = (props: any) => {
87
88
  const isErrors = Object.values(errors).length > 0
88
89
  if (!isErrors) {
89
90
  handleSave && handleSave()
90
- showCartBottomSheet()
91
91
  return
92
92
  }
93
93
  }
@@ -204,7 +204,6 @@ export const ProductOptionsUI = (props: any) => {
204
204
  },
205
205
  scrollContainer: {
206
206
  padding: 16,
207
- paddingTop: HEADER_EXPANDED_HEIGHT
208
207
  },
209
208
  header: {
210
209
  backgroundColor: '#fff',
@@ -226,6 +225,10 @@ export const ProductOptionsUI = (props: any) => {
226
225
  shadowOpacity: 0.4,
227
226
  shadowRadius: 3,
228
227
  elevation: 5,
228
+ },
229
+ imageStyle: {
230
+ width: '100%',
231
+ height: HEADER_EXPANDED_HEIGHT,
229
232
  }
230
233
  });
231
234
 
@@ -233,118 +236,173 @@ export const ProductOptionsUI = (props: any) => {
233
236
  <>
234
237
  <ScrollView
235
238
  style={styles.mainContainer}
236
- contentContainerStyle={styles.scrollContainer}
237
239
  onScroll={Animated.event(
238
240
  [{ nativeEvent: { contentOffset: { y: scrollY } } }],
239
241
  { useNativeDriver: false })
240
242
  }
241
243
  scrollEventThrottle={16}
242
244
  >
243
- <Animated.View style={[styles.header, { height: headerHeight }]}>
244
- {!isDrawer && (<Animated.View style={{ opacity: navBar1ContainerOpacity }}>
245
- <NavBar
246
- {...navBarProps}
247
- titleColor={theme.colors.white}
248
- btnStyle={{
249
- width: 55,
250
- height: 55,
251
- overflow: 'scroll',
252
- backgroundColor: 'black',
253
- borderRadius: 100,
254
- color: 'white',
255
- opacity: 0.8,
256
- left: 20,
257
- }}
258
- />
259
- </Animated.View>
260
- )}
261
- <Animated.View style={{ opacity: navBar2ContainerOpacity, position: 'absolute' }}>
262
- <NavBar
263
- {...navBarProps}
264
- btnStyle={{
265
- width: 55,
266
- height: 55,
267
- backgroundColor: 'transparent',
268
- borderRadius: 100,
269
- left: 20,
270
- }}
271
- />
272
- </Animated.View>
245
+ {!isDrawer ? (
246
+ <Animated.View style={[styles.header, { height: headerHeight }]}>
247
+ {!isDrawer && (
248
+ <Animated.View style={{ opacity: navBar1ContainerOpacity }}>
249
+ <NavBar
250
+ {...navBarProps}
251
+ titleColor={theme.colors.white}
252
+ btnStyle={{
253
+ width: 55,
254
+ height: 55,
255
+ overflow: 'scroll',
256
+ backgroundColor: 'black',
257
+ borderRadius: 100,
258
+ color: 'white',
259
+ opacity: 0.8,
260
+ left: 20,
261
+ }}
262
+ />
263
+ </Animated.View>
264
+ )}
265
+ <Animated.View style={{ opacity: navBar2ContainerOpacity, position: 'absolute' }}>
266
+ <NavBar
267
+ {...navBarProps}
268
+ btnStyle={{
269
+ width: 55,
270
+ height: 55,
271
+ backgroundColor: 'transparent',
272
+ borderRadius: 100,
273
+ left: 20,
274
+ }}
275
+ />
276
+ </Animated.View>
273
277
 
274
- <Animated.View style={{
275
- backgroundColor: 'white',
276
- width: orientationState?.dimensions?.width,
277
- opacity: collapsedBarContainerOpacity,
278
- }}>
279
- <View
280
- style={{
281
- flexDirection: 'row',
282
- alignItems: 'center',
283
- padding: 20,
284
- paddingTop: 0,
285
- paddingBottom: 10
286
- }}
287
- >
288
- <OImage
289
- source={{ uri: product?.images }}
290
- width={70}
291
- height={70}
292
- resizeMode="cover"
293
- borderRadius={6}
278
+ <Animated.View style={{
279
+ backgroundColor: 'white',
280
+ width: orientationState?.dimensions?.width,
281
+ opacity: collapsedBarContainerOpacity,
282
+ }}>
283
+ <View
284
+ style={{
285
+ flexDirection: 'row',
286
+ alignItems: 'center',
287
+ padding: 20,
288
+ paddingTop: 0,
289
+ paddingBottom: 10
290
+ }}
291
+ >
292
+ {product?.images ? (
293
+ <FastImage
294
+ style={{ height: 70, width: 70, borderRadius: 6 }}
295
+ source={{
296
+ uri: product?.images,
297
+ priority: FastImage.priority.normal,
298
+ // cache:FastImage.cacheControl.web
299
+ }}
300
+ resizeMode={FastImage.resizeMode.cover}
301
+ />
302
+ ) : (
303
+ <ImageBackground
304
+ style={{ height: 70, width: 70, borderRadius: 6 }}
305
+ source={theme.images.dummies.product}
306
+ imageStyle={{ borderRadius: 6 }}
307
+ resizeMode='cover'
308
+ />
309
+ )}
310
+ <OText
311
+ size={orientationState?.dimensions?.width * 0.025}
312
+ weight="bold"
313
+ mLeft={20}
314
+ numberOfLines={2}
315
+ >
316
+ {product?.name}
317
+ </OText>
318
+ </View>
319
+ <View
320
+ style={{
321
+ position: 'absolute',
322
+ bottom: -2,
323
+ height: 1,
324
+ backgroundColor: 'white',
325
+ width: orientationState?.dimensions?.width,
326
+ ...styles.shadow,
327
+ }}
294
328
  />
295
- <OText
296
- size={orientationState?.dimensions?.width * 0.025}
297
- weight="bold"
298
- mLeft={20}
299
- numberOfLines={2}
329
+ </Animated.View>
330
+
331
+ <Animated.View style={{
332
+ opacity: heroContainerOpacity,
333
+ position: 'absolute',
334
+ zIndex: -100,
335
+ transform: [{ translateY: heroTranslateY }],
336
+ }}>
337
+ <View
338
+ style={{
339
+ width: orientationState?.dimensions?.width,
340
+ height: HEADER_EXPANDED_HEIGHT,
341
+ position: 'absolute',
342
+ zIndex: 1,
343
+ backgroundColor: 'rgba(24, 28, 50, 0.4)',
344
+ }}
300
345
  >
301
- {product?.name}
302
- </OText>
303
- </View>
304
- <View
305
- style={{
306
- position: 'absolute',
307
- bottom: -2,
308
- height: 1,
309
- backgroundColor: 'white',
310
- width: orientationState?.dimensions?.width,
311
- ...styles.shadow,
312
- }}
313
- />
346
+ {product?.images ? (
347
+ <FastImage
348
+ style={{ flex: 1, justifyContent: 'center' }}
349
+ source={{
350
+ uri: product?.images,
351
+ priority: FastImage.priority.normal,
352
+ // cache:FastImage.cacheControl.web
353
+ }}
354
+ resizeMode={FastImage.resizeMode.cover}
355
+ />
356
+ ) : (
357
+ <ImageBackground
358
+ style={{ flex: 1, justifyContent: 'center' }}
359
+ source={theme.images.dummies.product}
360
+ resizeMode='cover'
361
+ />
362
+ )}
363
+ </View>
364
+ </Animated.View>
314
365
  </Animated.View>
315
-
316
- <Animated.View style={{
317
- opacity: heroContainerOpacity,
318
- position: 'absolute',
319
- zIndex: -100,
320
- transform: [{ translateY: heroTranslateY }],
321
- }}>
322
- <View
366
+ ) : (
367
+ <View style={{...styles.imageStyle}}>
368
+ <Animated.View
323
369
  style={{
324
- width: orientationState?.dimensions?.width,
325
- height: HEADER_EXPANDED_HEIGHT,
370
+ ...styles.imageStyle,
371
+ opacity: heroContainerOpacity,
326
372
  position: 'absolute',
327
- zIndex: 1,
328
- backgroundColor: 'rgba(24, 28, 50, 0.4)',
373
+ zIndex: -100,
374
+ transform: [{ translateY: heroTranslateY }],
329
375
  }}
330
376
  >
331
- <ImageBackground source={{ uri: product?.images }} resizeMode='cover' style={{ flex: 1, justifyContent: 'center' }} />
377
+ <View style={styles.imageStyle}>
378
+ {product?.images ? (
379
+ <FastImage
380
+ style={{ flex: 1 }}
381
+ source={{
382
+ uri: product?.images,
383
+ priority: FastImage.priority.normal,
384
+ // cache:FastImage.cacheControl.web
385
+ }}
386
+ resizeMode={FastImage.resizeMode.cover}
387
+ />
388
+ ) : (
389
+ <ImageBackground
390
+ style={{ flex: 1, justifyContent: 'center' }}
391
+ source={theme.images.dummies.product}
392
+ resizeMode='cover'
393
+ />
394
+ )}
395
+ </View>
396
+ </Animated.View>
397
+ </View>
398
+ )}
332
399
 
333
- </View>
334
400
 
335
- <Animated.View
336
- style={{
337
- transform: [{ translateY: heroTranslateY }],
338
- width: orientationState?.dimensions?.width * 0.75,
339
- height: HEADER_EXPANDED_HEIGHT / 2,
340
- position: 'relative',
341
- top: HEADER_EXPANDED_HEIGHT / 3,
342
- zIndex: 100,
343
- padding: 20,
344
- }}
345
- >
401
+ {!loading && !error && product && (
402
+ <View style={{ paddingTop: isDrawer ? 20 : HEADER_EXPANDED_HEIGHT, paddingBottom: 80, paddingHorizontal: 16 }}>
403
+ <WrapContent isDrawer={isDrawer}>
346
404
  <OText
347
- color={theme.colors.white}
405
+ style={{ marginTop: 20 }}
348
406
  size={orientationState?.dimensions?.width * 0.038}
349
407
  weight="bold"
350
408
  mBottom={10}
@@ -353,33 +411,23 @@ export const ProductOptionsUI = (props: any) => {
353
411
  {product?.name || productCart?.name}
354
412
  </OText>
355
413
 
356
- <OText
357
- color={theme.colors.white}
358
- numberOfLines={4}
359
- >
360
- {product?.description || productCart?.description}
361
- </OText>
362
- </Animated.View>
363
- </Animated.View>
364
- </Animated.View>
414
+ {(product?.description || productCart?.description) && (
415
+ <OText
416
+ numberOfLines={4}
417
+ >
418
+ {product?.description || productCart?.description}
419
+ </OText>
420
+ )}
421
+
422
+ {((product?.sku && product?.sku !== '-1' && product?.sku !== '1') ||
423
+ (productCart?.sku && productCart?.sku !== '-1' && productCart?.sku !== '1')
424
+ ) && (
425
+ <ProductDescription>
426
+ <OText size={20}>{t('SKU', 'Sku')}</OText>
427
+ <OText>{product?.sku || productCart?.sku}</OText>
428
+ </ProductDescription>
429
+ )}
365
430
 
366
- {/* {!isFromCheckout && (
367
- <Spinner visible={loading} />
368
- )} */}
369
- {!loading && !error && product && (
370
- <View style={{ paddingTop: isDrawer ? 10 : 20, paddingBottom: 80 }}>
371
- <WrapContent isDrawer={isDrawer}>
372
- <ProductDescription>
373
- {(
374
- (product?.sku && product?.sku !== '-1' && product?.sku !== '1') ||
375
- (productCart?.sku && productCart?.sku !== '-1' && productCart?.sku !== '1')
376
- ) && (
377
- <>
378
- <OText size={20}>{t('SKU', 'Sku')}</OText>
379
- <OText>{product?.sku || productCart?.sku}</OText>
380
- </>
381
- )}
382
- </ProductDescription>
383
431
  <ProductEditions>
384
432
  {product?.ingredients.length > 0 && (
385
433
  <View style={styles.optionContainer}>
@@ -40,7 +40,7 @@ export const ProductTitle = styled.View`
40
40
  `
41
41
 
42
42
  export const ProductDescription = styled.View`
43
- margin-bottom: 30px;
43
+ margin-top: 10px;
44
44
  `
45
45
 
46
46
  export const ProductEditions = styled.View`
@@ -32,6 +32,7 @@ const ProductOptionUI = (props: any) => {
32
32
  <OText
33
33
  size={26}
34
34
  weight="bold"
35
+ style={{ width: '80%' }}
35
36
  >
36
37
  {option.name}
37
38
  </OText>
@@ -12,4 +12,5 @@ export const WrapHeader = styled.View`
12
12
  background-color: ${(props: any) => props.theme.colors.paleGray};
13
13
  border-top-left-radius: 10px;
14
14
  border-top-right-radius: 10px;
15
+ width: 100%;
15
16
  `
@@ -1,6 +1,6 @@
1
1
  import React,{ useState, useEffect } from 'react'
2
2
  import Spinner from 'react-native-loading-spinner-overlay';
3
- import { StyleSheet, View, Platform } from 'react-native'
3
+ import { StyleSheet, View, Platform, ImageBackground } from 'react-native'
4
4
  import {
5
5
  UpsellingPage as UpsellingPageController,
6
6
  useUtils,
@@ -20,6 +20,7 @@ import { Container } from '../../layouts/Container';
20
20
  import GridContainer from '../../layouts/GridContainer';
21
21
  import { PORTRAIT, useDeviceOrientation } from "../../../../../src/hooks/DeviceOrientation";
22
22
  import { useTheme } from 'styled-components/native';
23
+ import FastImage from 'react-native-fast-image';
23
24
 
24
25
  const UpsellingProductsUI = (props: UpsellingProductsParams) => {
25
26
  const {
@@ -114,7 +115,24 @@ const UpsellingProductsUI = (props: UpsellingProductsParams) => {
114
115
  {
115
116
  !upsellingProducts.error ? upsellingProducts.products.map((product: any) => (
116
117
  <Item key={product.id}>
117
- <OImage source={{ uri: product.images }} style={styles.imageStyle} />
118
+ {product?.images ? (
119
+ <FastImage
120
+ style={styles.imageStyle}
121
+ source={{
122
+ uri: product?.images,
123
+ priority: FastImage.priority.normal,
124
+ // cache:FastImage.cacheControl.web
125
+ }}
126
+ resizeMode={FastImage.resizeMode.cover}
127
+ />
128
+ ) : (
129
+ <ImageBackground
130
+ style={styles.imageStyle}
131
+ source={theme.images.dummies.product}
132
+ imageStyle={{ borderRadius: 10 }}
133
+ resizeMode='cover'
134
+ />
135
+ )}
118
136
  <Details>
119
137
  <OText
120
138
  weight="500"
@@ -125,24 +143,22 @@ const UpsellingProductsUI = (props: UpsellingProductsParams) => {
125
143
  {product.name}
126
144
  </OText>
127
145
 
128
- {!!product?.price && (
129
- <OText>
130
- <OText
131
- color={theme.colors.primary}
132
- weight="500"
133
- >
134
- {parsePrice(product.price)}
135
- </OText>
146
+ <OText>
147
+ <OText
148
+ color={theme.colors.primary}
149
+ weight="500"
150
+ >
151
+ {parsePrice(product.price)}
152
+ </OText>
136
153
 
137
- <OText
138
- color={theme.colors.mediumGray}
139
- size={12}
140
- style={{textDecorationLine: 'line-through', textDecorationStyle: 'solid'}}
141
- >
142
- {product?.offer_price ? ` ${parsePrice(product?.offer_price)} ` : ''}
143
- </OText>
154
+ <OText
155
+ color={theme.colors.mediumGray}
156
+ size={12}
157
+ style={{textDecorationLine: 'line-through', textDecorationStyle: 'solid'}}
158
+ >
159
+ {product?.offer_price ? ` ${parsePrice(product?.offer_price)} ` : ''}
144
160
  </OText>
145
- )}
161
+ </OText>
146
162
  </Details>
147
163
 
148
164
  <OButton
@@ -200,24 +216,22 @@ const UpsellingProductsUI = (props: UpsellingProductsParams) => {
200
216
  {product.name}
201
217
  </OText>
202
218
 
203
- {!!product?.price && (
204
- <OText>
205
- <OText
206
- color={theme.colors.primary}
207
- weight="500"
208
- >
209
- {parsePrice(product.price)}
210
- </OText>
219
+ <OText>
220
+ <OText
221
+ color={theme.colors.primary}
222
+ weight="500"
223
+ >
224
+ {parsePrice(product.price)}
225
+ </OText>
211
226
 
212
- <OText
213
- color={theme.colors.mediumGray}
214
- size={12}
215
- style={{textDecorationLine: 'line-through', textDecorationStyle: 'solid'}}
216
- >
217
- {product?.offer_price ? parsePrice(product?.offer_price) : ''}
218
- </OText>
227
+ <OText
228
+ color={theme.colors.mediumGray}
229
+ size={12}
230
+ style={{textDecorationLine: 'line-through', textDecorationStyle: 'solid'}}
231
+ >
232
+ {product?.offer_price ? parsePrice(product?.offer_price) : ''}
219
233
  </OText>
220
- )}
234
+ </OText>
221
235
  </Details>
222
236
  <OButton
223
237
  text={t('ADD_PRODUCT', 'add product')}
@@ -10,8 +10,6 @@ import {
10
10
 
11
11
  import * as React from 'react';
12
12
  import styled from 'styled-components/native';
13
- import AntDesignIcon from 'react-native-vector-icons/AntDesign'
14
- import { Icon, IconProps } from 'react-native-vector-icons/Icon';
15
13
 
16
14
  const StyledButton = styled.View<Props>`
17
15
  background-color: ${(props: any) => props.theme.colors.primary};
@@ -79,19 +77,17 @@ interface Props {
79
77
  isCircle?: boolean;
80
78
  bgColor?: string;
81
79
  borderColor?: string;
82
- iconProps?: IconProps;
83
- IconCustom?: React.FunctionComponent
84
80
  }
85
81
 
86
82
  const OButton = (props: Props): React.ReactElement => {
87
83
  if (props.isDisabled) {
88
84
  return (
89
85
  <View style={props.parentStyle}>
90
- <StyledButtonDisabled style={props.style}>
91
- <StyledTextDisabled style={props.disabledTextStyle ? props.disabledTextStyle : props.textStyle}>
92
- {props.text}
93
- </StyledTextDisabled>
94
- </StyledButtonDisabled>
86
+ <StyledButtonDisabled style={props.style}>
87
+ <StyledTextDisabled style={props.disabledTextStyle ? props.disabledTextStyle : props.textStyle}>
88
+ {props.text}
89
+ </StyledTextDisabled>
90
+ </StyledButtonDisabled>
95
91
  </View>
96
92
  );
97
93
  }
@@ -115,15 +111,6 @@ const OButton = (props: Props): React.ReactElement => {
115
111
  {props.imgLeftSrc ? (
116
112
  <StyledImage style={props.imgLeftStyle} source={props.imgLeftSrc} />
117
113
  ) : null}
118
- {props.iconProps ? (
119
- <>
120
- {props?.IconCustom ? (
121
- <props.IconCustom {...props.iconProps} />
122
- ) : (
123
- <AntDesignIcon {...props.iconProps} />
124
- )}
125
- </>
126
- ) : null}
127
114
  {props.text ? (
128
115
  <StyledText style={props.textStyle}>{props.text}</StyledText>
129
116
  ) : null}