ordering-ui-react-native 0.16.42 → 0.16.43-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 (199) hide show
  1. package/package.json +7 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/index.tsx +61 -63
  4. package/src/components/ActiveOrders/styles.tsx +8 -14
  5. package/src/components/BusinessBasicInformation/index.tsx +11 -19
  6. package/src/components/BusinessInformation/index.tsx +33 -4
  7. package/src/components/BusinessInformation/styles.tsx +2 -2
  8. package/src/components/BusinessProductsList/index.tsx +10 -10
  9. package/src/components/BusinessesListing/index.tsx +1 -1
  10. package/src/components/Checkout/index.tsx +2 -1
  11. package/src/components/LanguageSelector/index.tsx +21 -16
  12. package/src/components/Messages/index.tsx +2 -2
  13. package/src/components/NotificationSetting/index.tsx +85 -0
  14. package/src/components/OrdersOption/index.tsx +54 -56
  15. package/src/components/PaymentOptions/index.tsx +298 -345
  16. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  17. package/src/components/ReviewDriver/index.tsx +1 -1
  18. package/src/components/ReviewOrder/index.tsx +2 -2
  19. package/src/components/ReviewProducts/index.tsx +11 -0
  20. package/src/components/SingleProductReview/index.tsx +8 -5
  21. package/src/components/StripeElementsForm/index.tsx +25 -16
  22. package/src/components/VerifyPhone/styles.tsx +1 -2
  23. package/src/components/shared/OBottomPopup.tsx +6 -2
  24. package/src/index.tsx +2 -0
  25. package/src/pages/BusinessesListing.tsx +7 -6
  26. package/src/pages/OrderDetails.tsx +1 -1
  27. package/src/pages/ReviewDriver.tsx +2 -2
  28. package/src/pages/ReviewOrder.tsx +2 -2
  29. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  30. package/src/utils/index.tsx +2 -1
  31. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  32. package/themes/business/src/components/Chat/index.tsx +40 -32
  33. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  34. package/themes/business/src/components/DriverSchedule/index.tsx +36 -19
  35. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  36. package/themes/business/src/components/MapView/index.tsx +12 -1
  37. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  38. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -41
  39. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  40. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +25 -19
  41. package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
  42. package/themes/business/src/components/OrdersOption/index.tsx +65 -21
  43. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  44. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  45. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  46. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  47. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  48. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  49. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  50. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  51. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  52. package/themes/business/src/components/PreviousOrders/index.tsx +22 -24
  53. package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
  54. package/themes/business/src/components/ReviewCustomer/index.tsx +27 -13
  55. package/themes/business/src/components/ScheduleBlocked/index.tsx +2 -2
  56. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  57. package/themes/business/src/components/UserProfileForm/index.tsx +2 -0
  58. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  59. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  60. package/themes/business/src/types/index.tsx +15 -9
  61. package/themes/business/src/utils/index.tsx +10 -0
  62. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  63. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  64. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  65. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  66. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  67. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  68. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  69. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  70. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  71. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  72. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  73. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  74. package/themes/kiosk/src/types/index.d.ts +2 -0
  75. package/themes/original/index.tsx +4 -0
  76. package/themes/original/src/components/AddressDetails/index.tsx +10 -8
  77. package/themes/original/src/components/AddressForm/index.tsx +157 -140
  78. package/themes/original/src/components/AddressList/index.tsx +1 -1
  79. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  80. package/themes/original/src/components/BusinessBasicInformation/index.tsx +218 -147
  81. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +2 -2
  82. package/themes/original/src/components/BusinessController/index.tsx +216 -113
  83. package/themes/original/src/components/BusinessController/styles.tsx +1 -8
  84. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -6
  85. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  86. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  87. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  88. package/themes/original/src/components/BusinessListingSearch/index.tsx +109 -139
  89. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  90. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  91. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  92. package/themes/original/src/components/BusinessProductsList/index.tsx +59 -60
  93. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  94. package/themes/original/src/components/BusinessProductsListing/index.tsx +210 -115
  95. package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -11
  96. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
  97. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +37 -25
  98. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -4
  99. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +275 -120
  100. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +47 -10
  101. package/themes/original/src/components/BusinessesListing/index.tsx +95 -7
  102. package/themes/original/src/components/Cart/index.tsx +53 -15
  103. package/themes/original/src/components/Cart/styles.tsx +4 -0
  104. package/themes/original/src/components/CartContent/index.tsx +22 -16
  105. package/themes/original/src/components/Checkout/index.tsx +114 -118
  106. package/themes/original/src/components/Checkout/styles.tsx +4 -3
  107. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  108. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  109. package/themes/original/src/components/DriverTips/index.tsx +4 -4
  110. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  111. package/themes/original/src/components/FavoriteList/index.tsx +19 -0
  112. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  113. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  114. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  115. package/themes/original/src/components/GoogleMap/index.tsx +20 -12
  116. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +25 -10
  117. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +4 -0
  118. package/themes/original/src/components/HelpGuide/index.tsx +9 -8
  119. package/themes/original/src/components/HelpOrder/index.tsx +9 -8
  120. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  121. package/themes/original/src/components/LoginForm/Otp/index.tsx +95 -73
  122. package/themes/original/src/components/LoginForm/index.tsx +98 -41
  123. package/themes/original/src/components/LottieAnimation/index.tsx +69 -0
  124. package/themes/original/src/components/Messages/index.tsx +20 -20
  125. package/themes/original/src/components/MomentOption/index.tsx +8 -6
  126. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -92
  127. package/themes/original/src/components/MultiCheckout/index.tsx +6 -0
  128. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -16
  129. package/themes/original/src/components/MyOrders/index.tsx +88 -22
  130. package/themes/original/src/components/NavBar/index.tsx +15 -9
  131. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  132. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  133. package/themes/original/src/components/Notifications/index.tsx +148 -0
  134. package/themes/original/src/components/Notifications/styles.tsx +17 -0
  135. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  136. package/themes/original/src/components/OrderDetails/index.tsx +200 -37
  137. package/themes/original/src/components/OrderDetails/styles.tsx +15 -2
  138. package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
  139. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  140. package/themes/original/src/components/OrderProgress/index.tsx +77 -66
  141. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  142. package/themes/original/src/components/OrderSummary/index.tsx +2 -35
  143. package/themes/original/src/components/OrderTypeSelector/index.tsx +85 -36
  144. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  145. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +94 -98
  146. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  147. package/themes/original/src/components/OrdersOption/index.tsx +71 -55
  148. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  149. package/themes/original/src/components/PaymentOptions/index.tsx +1 -2
  150. package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
  151. package/themes/original/src/components/PlaceSpot/index.tsx +249 -47
  152. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  153. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  154. package/themes/original/src/components/ProductForm/index.tsx +639 -664
  155. package/themes/original/src/components/ProductForm/styles.tsx +10 -11
  156. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  157. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  158. package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
  159. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +0 -1
  160. package/themes/original/src/components/ProfessionalFilter/index.tsx +2 -1
  161. package/themes/original/src/components/ProfessionalProfile/index.tsx +26 -14
  162. package/themes/original/src/components/Promotions/index.tsx +232 -219
  163. package/themes/original/src/components/Promotions/styles.tsx +7 -2
  164. package/themes/original/src/components/ReviewDriver/index.tsx +7 -7
  165. package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
  166. package/themes/original/src/components/ReviewProducts/index.tsx +2 -2
  167. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  168. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  169. package/themes/original/src/components/SearchBar/index.tsx +5 -3
  170. package/themes/original/src/components/ServiceForm/index.tsx +410 -258
  171. package/themes/original/src/components/SignupForm/index.tsx +160 -113
  172. package/themes/original/src/components/SingleOrderCard/index.tsx +229 -181
  173. package/themes/original/src/components/SingleOrderCard/styles.tsx +0 -7
  174. package/themes/original/src/components/SingleProductCard/index.tsx +198 -112
  175. package/themes/original/src/components/SingleProductCard/styles.tsx +3 -10
  176. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  177. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  178. package/themes/original/src/components/StripeElementsForm/index.tsx +13 -2
  179. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -5
  180. package/themes/original/src/components/UserDetails/index.tsx +5 -3
  181. package/themes/original/src/components/UserFormDetails/index.tsx +6 -48
  182. package/themes/original/src/components/UserProfile/index.tsx +56 -31
  183. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  184. package/themes/original/src/components/UserProfileForm/index.tsx +10 -10
  185. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  186. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  187. package/themes/original/src/components/Wallets/index.tsx +176 -164
  188. package/themes/original/src/components/Wallets/styles.tsx +12 -8
  189. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  190. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  191. package/themes/original/src/components/shared/OBottomPopup.tsx +48 -15
  192. package/themes/original/src/components/shared/OButton.tsx +10 -3
  193. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  194. package/themes/original/src/components/shared/OInput.tsx +13 -3
  195. package/themes/original/src/layouts/Container.tsx +13 -9
  196. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  197. package/themes/original/src/types/index.tsx +82 -28
  198. package/themes/original/src/utils/index.tsx +103 -58
  199. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,5 +1,5 @@
1
- import React, { useEffect } from 'react'
2
- import { BusinessList as BusinessListController, useOrder } from 'ordering-components/native'
1
+ import React from 'react'
2
+ import { useOrder } from 'ordering-components/native'
3
3
  import { BusinessController } from '../../BusinessController'
4
4
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
5
5
 
@@ -12,43 +12,12 @@ import {
12
12
  } from 'react-native';
13
13
  import { PreviousBusinessOrderedParams } from '../../../types';
14
14
 
15
- export const PreviousBusinessOrderedUI = (props: PreviousBusinessOrderedParams) => {
16
- const {
17
- navigation,
18
- businessesList,
19
- setBusinessLoading,
20
- businessId,
21
- onNavigationRedirect,
22
- isBusinessesSearchList,
23
- businessLoading
24
- } = props
25
-
26
- const [orderState] = useOrder()
27
- const windowWidth = Dimensions.get('window').width;
28
-
29
- const onBusinessClick = (business: any) => {
30
- onNavigationRedirect('Business', { store: business.slug })
31
- }
32
- useEffect(() => {
33
- if (businessesList?.loading && businessesList?.businesses?.length === 0) {
34
- setBusinessLoading(true)
35
- } else {
36
- setBusinessLoading(false)
37
- }
38
- }, [businessesList?.loading])
39
-
40
- const styles = StyleSheet.create({
41
- container: {
42
- marginBottom: 0,
43
- },
44
- });
45
-
46
- const BusinessControllerList = ({ style }: any) => {
47
- return (
48
- <>
49
- {businessesList.businesses?.filter((business: any) => businessId?.includes(business?.id))?.map((business: any, i: number) => (
15
+ const BusinessControllerList = ({ businesses, onBusinessClick, navigation, orderState, handleCustomUpdate, style }: any) => {
16
+ return (
17
+ <>
18
+ {businesses?.result?.map((business: any, i: number) => (
19
+ <View style={style} key={`${business.id}_` + i}>
50
20
  <BusinessController
51
- key={`${business.id}_` + i}
52
21
  business={business}
53
22
  isBusinessOpen={business.open}
54
23
  handleCustomClick={() => onBusinessClick(business)}
@@ -62,76 +31,115 @@ export const PreviousBusinessOrderedUI = (props: PreviousBusinessOrderedParams)
62
31
  businessDeliveryTime={business?.delivery_time}
63
32
  businessPickupTime={business?.pickup_time}
64
33
  businessDistance={business?.distance}
65
- style={style}
34
+ handleCustomUpdate={handleCustomUpdate}
66
35
  />
67
- ))}
68
- </>
69
- )
70
- }
36
+ </View>
37
+ ))}
38
+ </>
39
+ )
40
+ }
71
41
 
72
- const BusinessSkeletons = () => {
73
- return (
74
- <>
75
- {[...Array(4).keys()].map((item, i) => (
76
- <Placeholder
77
- Animation={Fade}
78
- key={i}
79
- style={{ marginBottom: 20 }}>
80
- <View style={{ width: '100%' }}>
81
- <PlaceholderLine
82
- height={200}
83
- style={{ marginBottom: 20, borderRadius: 25 }}
84
- />
85
- <View style={{ paddingHorizontal: 10 }}>
86
- <View
87
- style={{
88
- flexDirection: 'row',
89
- justifyContent: 'space-between',
90
- }}>
91
- <PlaceholderLine
92
- height={25}
93
- width={40}
94
- style={{ marginBottom: 10 }}
95
- />
96
- <PlaceholderLine
97
- height={25}
98
- width={20}
99
- style={{ marginBottom: 10 }}
100
- />
101
- </View>
42
+ const BusinessSkeletons = () => {
43
+ return (
44
+ <>
45
+ {[...Array(4).keys()].map((item, i) => (
46
+ <Placeholder
47
+ Animation={Fade}
48
+ key={i}
49
+ style={{ marginBottom: 20 }}>
50
+ <View style={{ width: '100%' }}>
51
+ <PlaceholderLine
52
+ height={200}
53
+ style={{ marginBottom: 20, borderRadius: 25 }}
54
+ />
55
+ <View style={{ paddingHorizontal: 10 }}>
56
+ <View
57
+ style={{
58
+ flexDirection: 'row',
59
+ justifyContent: 'space-between',
60
+ }}>
102
61
  <PlaceholderLine
103
- height={20}
104
- width={30}
62
+ height={25}
63
+ width={40}
105
64
  style={{ marginBottom: 10 }}
106
65
  />
107
66
  <PlaceholderLine
108
- height={20}
109
- width={80}
67
+ height={25}
68
+ width={20}
110
69
  style={{ marginBottom: 10 }}
111
70
  />
112
71
  </View>
72
+ <PlaceholderLine
73
+ height={20}
74
+ width={30}
75
+ style={{ marginBottom: 10 }}
76
+ />
77
+ <PlaceholderLine
78
+ height={20}
79
+ width={80}
80
+ style={{ marginBottom: 10 }}
81
+ />
113
82
  </View>
114
- </Placeholder>
115
- ))}
116
- </>
117
- )
83
+ </View>
84
+ </Placeholder>
85
+ ))}
86
+ </>
87
+ )
88
+ }
89
+
90
+ export const PreviousBusinessOrdered = (props: PreviousBusinessOrderedParams) => {
91
+ const {
92
+ navigation,
93
+ businesses,
94
+ onNavigationRedirect,
95
+ isBusinessesSearchList,
96
+ handleUpdateBusinesses,
97
+ } = props
98
+
99
+ const [orderState] = useOrder()
100
+ const windowWidth = Dimensions.get('window').width;
101
+ const onBusinessClick = (business: any) => {
102
+ onNavigationRedirect('Business', { store: business.slug, logo: business.logo, header: business.header })
118
103
  }
119
104
 
105
+ const styles = StyleSheet.create({
106
+ container: {
107
+ marginBottom: 0,
108
+ },
109
+ });
110
+
120
111
  return (
121
- <ScrollView horizontal={isBusinessesSearchList} style={styles.container} showsVerticalScrollIndicator={false}>
112
+ <ScrollView
113
+ horizontal={isBusinessesSearchList}
114
+ style={styles.container}
115
+ showsVerticalScrollIndicator={false}
116
+ showsHorizontalScrollIndicator={false}
117
+ >
122
118
  {isBusinessesSearchList ? (
123
119
  <>
124
- {!businessLoading && (
120
+ {!businesses?.loading && (
125
121
  <BusinessControllerList
126
- style={{ width: windowWidth - 80, marginRight: 20 }}
122
+ style={{ width: windowWidth - 120, marginRight: 20 }}
123
+ onBusinessClick={onBusinessClick}
124
+ orderState={orderState}
125
+ navigation={navigation}
126
+ businesses={businesses}
127
+ handleCustomUpdate={handleUpdateBusinesses}
127
128
  />
128
129
  )}
129
130
  </>
130
131
  ) : (
131
132
  <ListWrapper>
132
- <BusinessControllerList />
133
- {businessesList.loading && (
133
+ {businesses?.loading ? (
134
134
  <BusinessSkeletons />
135
+ ) : (
136
+ <BusinessControllerList
137
+ onBusinessClick={onBusinessClick}
138
+ orderState={orderState}
139
+ navigation={navigation}
140
+ businesses={businesses}
141
+ handleCustomUpdate={handleUpdateBusinesses}
142
+ />
135
143
  )}
136
144
  </ListWrapper>
137
145
  )}
@@ -139,15 +147,3 @@ export const PreviousBusinessOrderedUI = (props: PreviousBusinessOrderedParams)
139
147
  </ScrollView>
140
148
  )
141
149
  }
142
-
143
- export const PreviousBusinessOrdered = (props: PreviousBusinessOrderedParams) => {
144
- const previousBusinessOrderedController = {
145
- ...props,
146
- UIComponent: PreviousBusinessOrderedUI,
147
- paginationSettings: { initialPage: 1, pageSize: 50, controlType: 'infinity' }
148
- }
149
-
150
- return (
151
- <BusinessListController {...previousBusinessOrderedController} />
152
- )
153
- }
@@ -11,6 +11,7 @@ export const PreviousProductsOrdered = (props: PreviousProductsOrderedParams) =>
11
11
  const {
12
12
  products,
13
13
  onProductClick,
14
+ handleUpdateProducts,
14
15
  isBusinessesSearchList
15
16
  } = props
16
17
 
@@ -28,12 +29,14 @@ export const PreviousProductsOrdered = (props: PreviousProductsOrderedParams) =>
28
29
  {products?.map((product: any) => (
29
30
  <SingleProductCard
30
31
  key={product?.id}
32
+ isProductId
31
33
  isSoldOut={(product.inventoried && !product.quantity)}
32
34
  product={product}
33
35
  businessId={product?.business?.id}
34
36
  onProductClick={onProductClick}
35
37
  style={style}
36
38
  productAddedToCartLength={0}
39
+ handleUpdateProducts={handleUpdateProducts}
37
40
  />
38
41
  ))}
39
42
  </>
@@ -47,6 +47,10 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
47
47
  businessesSearchList,
48
48
  hideOrders,
49
49
  BusinessControllerSkeletons,
50
+ businesses,
51
+ businessPaginationProps,
52
+ handleUpdateProducts,
53
+ handleUpdateBusinesses
50
54
  } = props
51
55
 
52
56
  const theme = useTheme();
@@ -98,11 +102,18 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
98
102
  }
99
103
 
100
104
  const onProductClick = (product: any) => {
101
- if (product?.product_id && product?.category_id && product?.businessId) {
105
+ if (product?.product_id && product?.category_id && product?.businessId &&
106
+ product?.business.slug && product?.business.header && product?.business.logo) {
102
107
  onNavigationRedirect('ProductDetails', {
103
- productId: product?.product_id,
104
- categoryId: product?.category_id,
108
+ isRedirect: 'business',
105
109
  businessId: product?.businessId,
110
+ categoryId: product?.category_id,
111
+ productId: product?.product_id,
112
+ business: {
113
+ store: product?.business.slug,
114
+ header: product?.business.header,
115
+ logo: product?.business.logo,
116
+ }
106
117
  })
107
118
  } else {
108
119
  showToast(ToastType.Error, t('ERROR_FAILED_REDIRECT_IDS', 'Failed to redirect product for ids'))
@@ -134,7 +145,9 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
134
145
 
135
146
  useFocusEffect(
136
147
  React.useCallback(() => {
137
- loadOrders(false, false, false, true)
148
+ if (!businessesSearchList) {
149
+ loadOrders(false, false, false, true)
150
+ }
138
151
  }, [navigation])
139
152
  )
140
153
 
@@ -182,15 +195,18 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
182
195
  )}
183
196
  {(ordersLength?.activeOrdersLength > 0 || ordersLength?.previousOrdersLength > 0) && (
184
197
  <>
185
- <OptionTitle titleContent={!!titleContent} isBusinessesSearchList={!!businessesSearchList}>
186
- <OText size={16} lineHeight={24} weight={'500'} color={theme.colors.textNormal} mBottom={10} >
187
- {titleContent || (activeOrders
188
- ? t('ACTIVE', 'Active')
189
- : preOrders
190
- ? t('PREORDERS', 'Preorders')
191
- : t('PAST', 'Past'))}
192
- </OText>
193
- </OptionTitle>
198
+ {((titleContent && ((isBusiness && businessOrderIds?.length > 0) || isProducts)) || !titleContent) && (
199
+ <OptionTitle titleContent={!!titleContent} isBusinessesSearchList={!!businessesSearchList}>
200
+ <OText size={16} lineHeight={24} weight={'500'} color={theme.colors.textNormal} mBottom={10} >
201
+ {titleContent || (activeOrders
202
+ ? t('ACTIVE', 'Active')
203
+ : preOrders
204
+ ? t('PREORDERS', 'Preorders')
205
+ : t('PAST', 'Past'))}
206
+ </OText>
207
+ </OptionTitle>
208
+ )}
209
+
194
210
  {!(ordersLength?.activeOrdersLength === 0 && ordersLength?.previousOrdersLength === 0) &&
195
211
  !loading &&
196
212
  orders.filter((order: any) => orderStatus.includes(order.status)).length === 0 &&
@@ -203,34 +219,33 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
203
219
  )}
204
220
  </>
205
221
  )}
206
- {isBusiness && !!businessesSearchList && businessLoading && (
222
+ {isBusiness && !!businessesSearchList && businesses?.loading && (
207
223
  <ScrollView horizontal>
208
- <BusinessControllerSkeletons />
224
+ <BusinessControllerSkeletons paginationProps={businessPaginationProps} />
209
225
  </ScrollView>
210
226
  )}
211
- {isBusiness && businessOrderIds?.length > 0 && (
227
+ {isBusiness && (
212
228
  <PreviousBusinessOrdered
213
- businessId={businessOrderIds}
214
- businessLoading={businessLoading}
215
- setBusinessLoading={setBusinessLoading}
216
229
  onNavigationRedirect={onNavigationRedirect}
217
- isLoadingOrders={loading}
218
230
  isBusinessesSearchList={!!businessesSearchList}
231
+ businesses={businesses}
232
+ handleUpdateBusinesses={handleUpdateBusinesses}
219
233
  />
220
234
  )}
221
235
 
222
- {isProducts && (
236
+ {isProducts && !loading && (
223
237
  <PreviousProductsOrdered
224
238
  products={products}
225
239
  onProductClick={onProductClick}
240
+ handleUpdateProducts={handleUpdateProducts}
226
241
  isBusinessesSearchList={!!businessesSearchList}
227
242
  />
228
243
  )}
229
244
  {(loading && isProducts) && (
230
245
  <>
231
- {[...Array(4).keys()].map(
246
+ {[...Array(!!businessesSearchList ? 1 : 4).keys()].map(
232
247
  (item, i) => (
233
- <Placeholder key={i} style={{ padding: 5, paddingLeft: 40 }} Animation={Fade}>
248
+ <Placeholder key={i} style={{ padding: 5, paddingLeft: !!businessesSearchList ? 0 : 40, marginBottom: !!businessesSearchList ? 38 : 0 }} Animation={Fade}>
234
249
  <View style={{ flexDirection: 'row' }}>
235
250
  <PlaceholderLine
236
251
  width={24}
@@ -247,38 +262,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
247
262
  )}
248
263
  </>
249
264
  )}
250
- {loading && !hideOrders && (
251
- <>
252
- {!activeOrders ? (
253
- <Placeholder style={{ marginTop: 30 }} Animation={Fade}>
254
- <View style={{ width: '100%', flexDirection: 'row' }}>
255
- <PlaceholderLine width={20} height={70} style={{ marginRight: 20, marginBottom: 35 }} />
256
- <Placeholder>
257
- <PlaceholderLine width={30} style={{ marginTop: 5 }} />
258
- <PlaceholderLine width={50} />
259
- <PlaceholderLine width={70} />
260
- </Placeholder>
261
- </View>
262
- </Placeholder>
263
- ) : (
264
- <View style={{ marginTop: 30 }}>
265
- {[...Array(5)].map((item, i) => (
266
- <Placeholder key={i} Animation={Fade}>
267
- <View style={{ width: '100%', flexDirection: 'row' }}>
268
- <PlaceholderLine width={20} height={70} style={{ marginRight: 20, marginBottom: 20 }} />
269
- <Placeholder>
270
- <PlaceholderLine width={30} style={{ marginTop: 5 }} />
271
- <PlaceholderLine width={50} />
272
- <PlaceholderLine width={20} />
273
- </Placeholder>
274
- </View>
275
- </Placeholder>
276
- ))}
277
- </View>
278
- )}
279
- </>
280
- )}
281
- {!loading && !error && orders.length > 0 && !hideOrders && (
265
+ {!error && orders.length > 0 && !hideOrders && (
282
266
  preOrders ? (
283
267
  <ActiveOrders
284
268
  orders={orders.filter((order: any) => orderStatus.includes(order.status))}
@@ -310,9 +294,41 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
310
294
  onNavigationRedirect={onNavigationRedirect}
311
295
  handleReorder={handleReorder}
312
296
  handleUpdateOrderList={handleUpdateOrderList}
297
+ loading={loading}
313
298
  />
314
299
  )
315
300
  )}
301
+ {loading && !hideOrders && (
302
+ <>
303
+ {!activeOrders ? (
304
+ <Placeholder style={{ marginTop: 30 }} Animation={Fade}>
305
+ <View style={{ width: '100%', flexDirection: 'row' }}>
306
+ <PlaceholderLine width={20} height={70} style={{ marginRight: 20, marginBottom: 35 }} />
307
+ <Placeholder>
308
+ <PlaceholderLine width={30} style={{ marginTop: 5 }} />
309
+ <PlaceholderLine width={50} />
310
+ <PlaceholderLine width={70} />
311
+ </Placeholder>
312
+ </View>
313
+ </Placeholder>
314
+ ) : (
315
+ <View style={{ marginTop: 30 }}>
316
+ {[...Array(5)].map((item, i) => (
317
+ <Placeholder key={i} Animation={Fade}>
318
+ <View style={{ width: '100%', flexDirection: 'row' }}>
319
+ <PlaceholderLine width={20} height={70} style={{ marginRight: 20, marginBottom: 20 }} />
320
+ <Placeholder>
321
+ <PlaceholderLine width={30} style={{ marginTop: 5 }} />
322
+ <PlaceholderLine width={50} />
323
+ <PlaceholderLine width={20} />
324
+ </Placeholder>
325
+ </View>
326
+ </Placeholder>
327
+ ))}
328
+ </View>
329
+ )}
330
+ </>
331
+ )}
316
332
  </>
317
333
  )
318
334
  }
@@ -45,7 +45,7 @@ const PaymentOptionWalletUI = (props: any) => {
45
45
  new Array(walletsState.result?.length).fill(false)
46
46
  );
47
47
 
48
- const creditBalance: any = (wallet: any) => ` = ${parsePrice(wallet.balance / wallet.redemption_rate, { isTruncable: true })}`
48
+ const creditBalance: any = (wallet: any) => ` = ${parsePrice(wallet.balance / wallet.redemption_rate)}`
49
49
 
50
50
  const walletName: any = {
51
51
  cash: {
@@ -87,65 +87,65 @@ const PaymentOptionWalletUI = (props: any) => {
87
87
  {!walletsState.loading &&
88
88
  !walletsState.error &&
89
89
  walletsState.result?.length > 0 &&
90
- (
91
- <>
92
- {walletsState.result?.map((wallet: any, idx: any) => wallet.valid && wallet.balance >= 0 && walletName[wallet.type]?.isActive && (
93
- <Container
94
- key={wallet.id}
95
- isBottomBorder={idx === walletsState.result?.filter((wallet: any) => wallet.valid)?.length - 1}
96
- onPress={() => handleOnChange(idx, wallet)}
97
- disabled={(cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0}
98
- >
99
- <SectionLeft>
100
- {checkedState[idx] ? (
101
- <MaterialCommunityIcons
102
- name="checkbox-marked"
103
- size={25}
104
- color={theme.colors.primary}
105
- />
106
- ) : (
107
- <MaterialCommunityIcons
108
- name="checkbox-blank-outline"
109
- size={25}
110
- color={theme.colors.disabled}
111
- />
112
- )}
113
- <View style={{ alignItems: 'baseline', marginLeft: 5 }}>
114
- <View>
115
- <OText
116
- style={((cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0) ? {
117
- color: theme.colors.disabled
118
- } : {}}
119
- >
120
- {walletName[wallet.type]?.name}
121
- </OText>
122
- </View>
90
+ (
91
+ <>
92
+ {walletsState.result?.map((wallet: any, idx: any) => wallet.valid && wallet.balance >= 0 && walletName[wallet.type]?.isActive && (
93
+ <Container
94
+ key={wallet.id}
95
+ isBottomBorder={idx === walletsState.result?.filter((wallet: any) => wallet.valid)?.length - 1}
96
+ onPress={() => handleOnChange(idx, wallet)}
97
+ disabled={(cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0}
98
+ >
99
+ <SectionLeft>
100
+ {checkedState[idx] ? (
101
+ <MaterialCommunityIcons
102
+ name="checkbox-marked"
103
+ size={25}
104
+ color={theme.colors.primary}
105
+ />
106
+ ) : (
107
+ <MaterialCommunityIcons
108
+ name="checkbox-blank-outline"
109
+ size={25}
110
+ color={theme.colors.disabled}
111
+ />
112
+ )}
113
+ <View style={{ alignItems: 'baseline', marginLeft: 5 }}>
114
+ <View>
115
+ <OText
116
+ style={((cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0) ?{
117
+ color: theme.colors.disabled
118
+ } : {}}
119
+ >
120
+ {walletName[wallet.type]?.name}
121
+ </OText>
123
122
  </View>
124
- </SectionLeft>
125
-
126
- <View style={{ maxWidth: '35%', alignItems: 'flex-end' }}>
127
- {wallet.type === 'cash' && (
128
- <OText>
129
- {parsePrice(wallet?.balance, { isTruncable: true })}
123
+ </View>
124
+ </SectionLeft>
125
+
126
+ <View style={{maxWidth: '35%', alignItems: 'flex-end' }}>
127
+ {wallet.type === 'cash' && (
128
+ <OText>
129
+ {parsePrice(wallet?.balance)}
130
+ </OText>
131
+ )}
132
+ {wallet.type === 'credit_point' && (
133
+ <OText>
134
+ <OText color={theme.colors.primary} weight='bold'>
135
+ {`${wallet?.balance} ${t('POINTS', 'Points')}`}
130
136
  </OText>
131
- )}
132
- {wallet.type === 'credit_point' && (
133
137
  <OText>
134
- <OText color={theme.colors.primary} weight='bold'>
135
- {`${wallet?.balance} ${t('POINTS', 'Points')}`}
136
- </OText>
137
- <OText>
138
- {wallet?.balance > 0
139
- ? creditBalance(wallet)
140
- : null}
141
- </OText>
138
+ {wallet?.balance > 0
139
+ ? creditBalance(wallet)
140
+ : null}
142
141
  </OText>
143
- )}
144
- </View>
145
- </Container>
146
- ))}
147
- </>
148
- )}
142
+ </OText>
143
+ )}
144
+ </View>
145
+ </Container>
146
+ ))}
147
+ </>
148
+ )}
149
149
 
150
150
  {walletsState?.loading && (
151
151
  <View>
@@ -160,7 +160,6 @@ const PaymentOptionsUI = (props: any) => {
160
160
  <TouchableOpacity
161
161
  onPress={() => handlePaymentMethodClick(item)}
162
162
  >
163
- {console.log(item?.gateway)}
164
163
  <PMItem
165
164
  key={item.id}
166
165
  isDisabled={isDisabled}
@@ -187,7 +186,7 @@ const PaymentOptionsUI = (props: any) => {
187
186
  )
188
187
  }
189
188
 
190
- const excludeIds: any = [32]; //exclude paypal & connect & redirect
189
+ const excludeIds: any = [32, 66]; //exclude paypal & connect & redirect
191
190
 
192
191
  return (
193
192
  <PMContainer>
@@ -124,7 +124,7 @@ export const PhoneInputNumber = (props: PhoneInputParams) => {
124
124
  flagButtonStyle={flagStyle}
125
125
  countryPickerButtonStyle={{ ...style.countryBtn, ...boxStyle ? boxStyle : {} }}
126
126
  placeholder={t('PHONE_NUMBER', 'Phone Number')}
127
- textInputProps={{ autoCompleteType: 'tel', ref: forwardRef, ...textInputProps }}
127
+ textInputProps={{ keyboardType: 'number-pad', autoCompleteType: 'tel', textContentType: 'telephoneNumber', dataDetectorTypes: 'phoneNumber', ref: forwardRef, ...textInputProps }}
128
128
  containerStyle={{ width: '100%' }}
129
129
  renderDropdownImage={noDropIcon ? <View /> : <OIcon src={theme.images.general.arrow_down} width={13} color={'#B1BCCC'}></OIcon>}
130
130
  />