ordering-ui-react-native 0.15.57 → 0.15.59-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 (186) hide show
  1. package/package.json +5 -3
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/AddressForm/index.tsx +18 -2
  4. package/src/components/BusinessController/index.tsx +16 -8
  5. package/src/components/BusinessTypeFilter/index.tsx +3 -1
  6. package/src/components/BusinessesListing/index.tsx +1 -1
  7. package/src/components/Checkout/index.tsx +23 -2
  8. package/src/components/DriverTips/index.tsx +11 -6
  9. package/src/components/LanguageSelector/index.tsx +7 -2
  10. package/src/components/LoginForm/index.tsx +120 -30
  11. package/src/components/LoginForm/styles.tsx +6 -0
  12. package/src/components/OrderDetails/index.tsx +7 -21
  13. package/src/components/PaymentOptions/index.tsx +67 -50
  14. package/src/components/PaymentOptionsWebView/index.tsx +123 -124
  15. package/src/components/ReviewDriver/index.tsx +1 -1
  16. package/src/components/ReviewOrder/index.tsx +2 -1
  17. package/src/components/ReviewProducts/index.tsx +11 -0
  18. package/src/components/SignupForm/index.tsx +145 -61
  19. package/src/components/SingleProductCard/index.tsx +16 -4
  20. package/src/components/SingleProductReview/index.tsx +1 -1
  21. package/src/components/StripeMethodForm/index.tsx +1 -2
  22. package/src/components/UpsellingProducts/index.tsx +1 -1
  23. package/src/components/UserProfileForm/index.tsx +63 -6
  24. package/src/components/UserProfileForm/styles.tsx +8 -0
  25. package/src/components/VerifyPhone/styles.tsx +1 -2
  26. package/src/components/shared/OModal.tsx +1 -1
  27. package/src/hooks/useCountdownTimer.tsx +26 -0
  28. package/src/navigators/CheckoutNavigator.tsx +6 -0
  29. package/src/navigators/HomeNavigator.tsx +12 -0
  30. package/src/pages/BusinessesListing.tsx +1 -1
  31. package/src/pages/MultiCheckout.tsx +31 -0
  32. package/src/pages/MultiOrdersDetails.tsx +27 -0
  33. package/src/pages/Sessions.tsx +22 -0
  34. package/src/theme.json +0 -1
  35. package/src/types/index.tsx +18 -11
  36. package/src/utils/index.tsx +68 -1
  37. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +103 -15
  38. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -0
  39. package/themes/business/src/components/Chat/index.tsx +42 -90
  40. package/themes/business/src/components/DriverMap/index.tsx +6 -5
  41. package/themes/business/src/components/LoginForm/index.tsx +89 -2
  42. package/themes/business/src/components/LoginForm/styles.tsx +6 -0
  43. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  44. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -13
  45. package/themes/business/src/components/OrderDetails/Business.tsx +2 -2
  46. package/themes/business/src/components/OrderDetails/Delivery.tsx +28 -11
  47. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +41 -7
  48. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +6 -0
  49. package/themes/business/src/components/OrdersListManager/index.tsx +1 -1
  50. package/themes/business/src/components/OrdersOption/index.tsx +5 -2
  51. package/themes/business/src/components/PreviousOrders/index.tsx +7 -7
  52. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  53. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  54. package/themes/business/src/components/UserProfileForm/index.tsx +2 -0
  55. package/themes/business/src/components/shared/OModal.tsx +1 -1
  56. package/themes/business/src/types/index.tsx +6 -1
  57. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  58. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  59. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  60. package/themes/kiosk/src/components/BusinessMenu/index.tsx +39 -28
  61. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -3
  62. package/themes/kiosk/src/components/Cart/index.tsx +11 -12
  63. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
  64. package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
  65. package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
  66. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +107 -62
  67. package/themes/kiosk/src/components/Checkout/index.tsx +40 -22
  68. package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
  69. package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
  70. package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
  71. package/themes/kiosk/src/components/NavBar/index.tsx +29 -20
  72. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  73. package/themes/kiosk/src/components/OrderDetails/index.tsx +32 -27
  74. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +9 -11
  75. package/themes/kiosk/src/components/PaymentOptions/index.tsx +56 -54
  76. package/themes/kiosk/src/components/ProductForm/index.tsx +7 -8
  77. package/themes/kiosk/src/components/ProductItemAccordion/index.tsx +2 -2
  78. package/themes/kiosk/src/components/ProductOption/index.tsx +1 -1
  79. package/themes/kiosk/src/components/ProductOptionSubOption/index.tsx +3 -1
  80. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
  81. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  82. package/themes/kiosk/src/types/index.d.ts +1 -0
  83. package/themes/original/index.tsx +22 -8
  84. package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
  85. package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
  86. package/themes/original/src/components/AddressForm/index.tsx +7 -6
  87. package/themes/original/src/components/AddressList/index.tsx +30 -18
  88. package/themes/original/src/components/AppleLogin/index.tsx +9 -13
  89. package/themes/original/src/components/BusinessBasicInformation/index.tsx +136 -45
  90. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +4 -0
  91. package/themes/original/src/components/BusinessController/index.tsx +48 -11
  92. package/themes/original/src/components/BusinessController/styles.tsx +27 -0
  93. package/themes/original/src/components/BusinessFeaturedController/index.tsx +20 -1
  94. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +23 -0
  95. package/themes/original/src/components/BusinessItemAccordion/index.tsx +8 -5
  96. package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
  97. package/themes/original/src/components/BusinessListingSearch/index.tsx +196 -58
  98. package/themes/original/src/components/BusinessListingSearch/styles.tsx +22 -2
  99. package/themes/original/src/components/BusinessPreorder/index.tsx +1 -1
  100. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
  101. package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
  102. package/themes/original/src/components/BusinessProductsList/index.tsx +51 -53
  103. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  104. package/themes/original/src/components/BusinessProductsListing/index.tsx +105 -22
  105. package/themes/original/src/components/BusinessProductsListing/styles.tsx +22 -0
  106. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  107. package/themes/original/src/components/BusinessTypeFilter/index.tsx +1 -2
  108. package/themes/original/src/components/BusinessesListing/index.tsx +126 -65
  109. package/themes/original/src/components/BusinessesListing/styles.tsx +11 -3
  110. package/themes/original/src/components/Cart/index.tsx +60 -41
  111. package/themes/original/src/components/Checkout/index.tsx +48 -32
  112. package/themes/original/src/components/DriverTips/index.tsx +17 -12
  113. package/themes/original/src/components/Favorite/index.tsx +92 -0
  114. package/themes/original/src/components/Favorite/styles.tsx +22 -0
  115. package/themes/original/src/components/FavoriteList/index.tsx +298 -0
  116. package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
  117. package/themes/original/src/components/ForgotPasswordForm/index.tsx +84 -4
  118. package/themes/original/src/components/GPSButton/index.tsx +15 -8
  119. package/themes/original/src/components/GoogleMap/index.tsx +11 -11
  120. package/themes/original/src/components/Help/index.tsx +21 -4
  121. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
  122. package/themes/original/src/components/LastOrders/index.tsx +12 -1
  123. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -0
  124. package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
  125. package/themes/original/src/components/LoginForm/index.tsx +332 -164
  126. package/themes/original/src/components/LoginForm/styles.tsx +1 -3
  127. package/themes/original/src/components/MessageListing/index.tsx +10 -1
  128. package/themes/original/src/components/Messages/index.tsx +1 -1
  129. package/themes/original/src/components/MomentOption/index.tsx +10 -1
  130. package/themes/original/src/components/MomentOption/styles.tsx +1 -1
  131. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
  132. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
  133. package/themes/original/src/components/MultiCheckout/index.tsx +298 -0
  134. package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
  135. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
  136. package/themes/original/src/components/MultiOrdersDetails/index.tsx +258 -0
  137. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
  138. package/themes/original/src/components/MyOrders/index.tsx +120 -32
  139. package/themes/original/src/components/MyOrders/styles.tsx +8 -1
  140. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  141. package/themes/original/src/components/OrderDetails/index.tsx +135 -49
  142. package/themes/original/src/components/OrderDetails/styles.tsx +1 -2
  143. package/themes/original/src/components/OrderSummary/index.tsx +2 -2
  144. package/themes/original/src/components/OrderTypeSelector/index.tsx +4 -2
  145. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +153 -0
  146. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
  147. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +53 -0
  148. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
  149. package/themes/original/src/components/OrdersOption/index.tsx +130 -38
  150. package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
  151. package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
  152. package/themes/original/src/components/PaymentOptionWallet/index.tsx +17 -23
  153. package/themes/original/src/components/PaymentOptionWallet/styles.tsx +1 -1
  154. package/themes/original/src/components/PaymentOptions/index.tsx +57 -36
  155. package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
  156. package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
  157. package/themes/original/src/components/ProductForm/index.tsx +70 -62
  158. package/themes/original/src/components/ProductForm/styles.tsx +0 -1
  159. package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
  160. package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -12
  161. package/themes/original/src/components/Promotions/index.tsx +151 -133
  162. package/themes/original/src/components/Promotions/styles.tsx +3 -23
  163. package/themes/original/src/components/SearchBar/index.tsx +10 -4
  164. package/themes/original/src/components/Sessions/index.tsx +160 -0
  165. package/themes/original/src/components/Sessions/styles.tsx +15 -0
  166. package/themes/original/src/components/SignupForm/index.tsx +237 -126
  167. package/themes/original/src/components/SingleOrderCard/index.tsx +282 -0
  168. package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
  169. package/themes/original/src/components/SingleProductCard/index.tsx +59 -17
  170. package/themes/original/src/components/StripeElementsForm/index.tsx +16 -8
  171. package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
  172. package/themes/original/src/components/UpsellingProducts/index.tsx +86 -74
  173. package/themes/original/src/components/UserDetails/index.tsx +5 -96
  174. package/themes/original/src/components/UserFormDetails/index.tsx +25 -26
  175. package/themes/original/src/components/UserProfile/index.tsx +52 -5
  176. package/themes/original/src/components/UserProfileForm/index.tsx +20 -18
  177. package/themes/original/src/components/UserVerification/index.tsx +178 -192
  178. package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
  179. package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
  180. package/themes/original/src/components/Wallets/index.tsx +76 -9
  181. package/themes/original/src/components/Wallets/styles.tsx +21 -0
  182. package/themes/original/src/components/shared/OModal.tsx +4 -2
  183. package/themes/original/src/types/index.tsx +189 -35
  184. package/themes/original/src/utils/index.tsx +85 -2
  185. package/themes/single-business/src/components/OrderTypeSelector/index.tsx +1 -1
  186. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -71,6 +71,11 @@ const UpsellingProductsUI = (props: UpsellingProductsParams) => {
71
71
  }, [upsellingProducts.loading, upsellingProducts?.products.length])
72
72
 
73
73
  const handleFormProduct = (product: any) => {
74
+ if (props.onAddProduct) {
75
+ onClose && onClose()
76
+ props.onAddProduct(product)
77
+ return
78
+ }
74
79
  setActualProduct(product)
75
80
  setModalIsOpen(true)
76
81
  }
@@ -81,9 +86,18 @@ const UpsellingProductsUI = (props: UpsellingProductsParams) => {
81
86
  }
82
87
 
83
88
  const UpsellingLayout = () => {
84
-
85
89
  const theme = useTheme()
86
90
 
91
+ const onClickProduct = (product: any) => {
92
+ resetInactivityTimeout()
93
+ if (props.onAddProduct) {
94
+ onClose && onClose()
95
+ props.onAddProduct(product)
96
+ return
97
+ }
98
+ handleFormProduct(product)
99
+ }
100
+
87
101
  return (
88
102
  <Container>
89
103
  {
@@ -167,10 +181,7 @@ const UpsellingProductsUI = (props: UpsellingProductsParams) => {
167
181
  style={{ height: 40, width: '100%' }}
168
182
  bgColor="#EAF2FE"
169
183
  borderColor="#EAF2FE"
170
- onClick={() => {
171
- resetInactivityTimeout()
172
- handleFormProduct(product)
173
- }}
184
+ onClick={() => onClickProduct(product)}
174
185
  />
175
186
  </Item>
176
187
  )) : (
@@ -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}
@@ -55,6 +55,7 @@ export interface UpsellingProductsParams {
55
55
  setCanOpenUpselling?: (value: any) => void;
56
56
  onClose?: () => void;
57
57
  resetInactivityTimeout: any;
58
+ onAddProduct: any;
58
59
  }
59
60
 
60
61
  export interface LanguageSelectorParams {
@@ -15,6 +15,8 @@ import { BusinessProductsListing } from './src/components/BusinessProductsListin
15
15
  import { CartContent } from './src/components/CartContent';
16
16
  import { BusinessCart } from './src/components/BusinessCart';
17
17
  import { Checkout } from './src/components/Checkout';
18
+ import { Favorite } from './src/components/Favorite';
19
+ import { FavoriteList } from './src/components/FavoriteList';
18
20
  import { FloatingButton } from './src/components/FloatingButton';
19
21
  import { ForgotPasswordForm } from './src/components/ForgotPasswordForm';
20
22
  import { MomentOption } from './src/components/MomentOption';
@@ -30,6 +32,7 @@ import { ReviewDriver } from './src/components/ReviewDriver';
30
32
  import { UserProfile } from './src/components/UserProfile';
31
33
  import { MessageListing } from './src/components/MessageListing';
32
34
  import { Messages } from './src/components/Messages';
35
+ import { MyOrders } from './src/components/MyOrders';
33
36
  import { Help } from './src/components/Help';
34
37
  import { HelpAccountAndPayment } from './src/components/HelpAccountAndPayment';
35
38
  import { HelpGuide } from './src/components/HelpGuide';
@@ -45,7 +48,9 @@ import { UpsellingProducts } from './src/components/UpsellingProducts';
45
48
  import { UserVerification } from './src/components/UserVerification';
46
49
  import { BusinessListingSearch } from './src/components/BusinessListingSearch';
47
50
  import { LastOrders } from './src/components/LastOrders';
48
- import NavBar from './src/components/NavBar';
51
+ import { MultiCheckout } from './src/components/MultiCheckout'
52
+ import { MultiOrdersDetails } from './src/components/MultiOrdersDetails'
53
+ import NavBar from './src/components/NavBar';
49
54
  import { BusinessTypeFilter } from './src/components/BusinessTypeFilter';
50
55
  import { BusinessController } from './src/components/BusinessController';
51
56
  import { BusinessFeaturedController } from './src/components/BusinessFeaturedController';
@@ -58,6 +63,7 @@ import { CartStoresListing } from './src/components/CartStoresListing';
58
63
  import { PaymentOptionsWebView } from '../../src/components/PaymentOptionsWebView';
59
64
  import { GoogleMap } from './src/components/GoogleMap';
60
65
  import { SingleProductCard } from './src/components/SingleProductCard';
66
+ import { SingleOrderCard } from './src/components/SingleOrderCard';
61
67
  import { UpsellingRedirect } from './src/components/BusinessProductsListing/UpsellingRedirect';
62
68
  import { ProductItemAccordion } from './src/components/ProductItemAccordion';
63
69
  import { BusinessItemAccordion } from './src/components/BusinessItemAccordion';
@@ -77,21 +83,22 @@ import { StripeCardsList } from './src/components/StripeCardsList';
77
83
  import { ProductIngredient } from './src/components/ProductIngredient';
78
84
  import { ProductOption } from './src/components/ProductOption';
79
85
  import { ProductOptionSubOption } from './src/components/ProductOptionSubOption';
86
+ import { Sessions } from './src/components/Sessions';
80
87
  import { SingleProductReview } from './src/components/SingleProductReview';
81
88
  import { LogoutButton } from './src/components/LogoutButton';
82
89
  import { UserFormDetailsUI } from './src/components/UserFormDetails';
83
90
  import { WalletTransactionItem } from './src/components/WalletTransactionItem';
84
-
91
+ import { Promotions } from './src/components/Promotions'
85
92
  import { USER_TYPE, ORDER_TYPES } from './src/config/constants'
86
93
 
87
94
  import { OSBill, OSTable, OSCoupon, OSTotal, OSRow } from './src/components/OrderSummary/styles';
88
95
 
89
96
  import { FormInput, FormSide, ButtonsWrapper, LoginWith, OTab, OTabs } from './src/components/LoginForm/styles';
90
- import { OSItem, OSItemContent, OSItemActions} from './src/components/PaymentOptionStripe/styles';
97
+ import { OSItem, OSItemContent, OSItemActions } from './src/components/PaymentOptionStripe/styles';
91
98
 
92
99
  import Alert from './src/providers/AlertProvider'
93
100
 
94
- import {
101
+ import {
95
102
  LoginParams,
96
103
  ProfileParams,
97
104
  AddressListParams,
@@ -134,7 +141,7 @@ import {
134
141
  OAlert,
135
142
  OModal,
136
143
  OBottomPopup,
137
- HeaderTitle
144
+ HeaderTitle
138
145
  } from './src/components/shared';
139
146
 
140
147
  import { Container } from './src/layouts/Container';
@@ -163,6 +170,8 @@ export {
163
170
  CartContent,
164
171
  BusinessCart,
165
172
  Checkout,
173
+ Favorite,
174
+ FavoriteList,
166
175
  ForgotPasswordForm,
167
176
  MomentOption,
168
177
  OrdersOption,
@@ -176,11 +185,13 @@ export {
176
185
  BusinessMenuList,
177
186
  UserProfile,
178
187
  MessageListing,
179
- Messages,
188
+ Messages,
180
189
  Help,
181
190
  HelpAccountAndPayment,
182
191
  HelpGuide,
183
192
  HelpOrder,
193
+ MultiCheckout,
194
+ MultiOrdersDetails,
184
195
  NetworkError,
185
196
  NotFoundSource,
186
197
  OrderTypeSelector,
@@ -208,6 +219,7 @@ export {
208
219
  PaymentOptionsWebView,
209
220
  GoogleMap,
210
221
  SingleProductCard,
222
+ SingleOrderCard,
211
223
  UpsellingRedirect,
212
224
  ProductItemAccordion,
213
225
  BusinessItemAccordion,
@@ -227,11 +239,13 @@ export {
227
239
  ProductIngredient,
228
240
  ProductOption,
229
241
  ProductOptionSubOption,
242
+ Sessions,
230
243
  SingleProductReview,
231
244
  LogoutButton,
232
245
  UserFormDetailsUI,
233
246
  WalletTransactionItem,
234
-
247
+ Promotions,
248
+ MyOrders,
235
249
  ORDER_TYPES,
236
250
  USER_TYPE,
237
251
 
@@ -296,7 +310,7 @@ export {
296
310
  OAlert,
297
311
  OModal,
298
312
  OBottomPopup,
299
- HeaderTitle,
313
+ HeaderTitle,
300
314
 
301
315
  // layout
302
316
  Container,
@@ -1,23 +1,13 @@
1
1
  import React from 'react';
2
- import { useLanguage, useUtils, useConfig } from 'ordering-components/native';
3
- import { OButton, OIcon, OText } from '../shared';
2
+ import { useConfig } from 'ordering-components/native';
4
3
  import {
5
- ActiveOrdersContainer,
6
- Card,
7
- Map,
8
- Information,
9
- Logo,
10
- OrderInformation,
11
- BusinessInformation,
12
- Price,
13
- UnreadMessageCounter,
14
- LoadMore
4
+ ActiveOrdersContainer
15
5
  } from './styles';
16
- import { View, StyleSheet } from 'react-native';
6
+ import { View } from 'react-native';
17
7
 
18
8
  import { ActiveOrdersParams } from '../../types';
19
- import moment from 'moment';
20
9
  import { useTheme } from 'styled-components/native';
10
+ import { SingleOrderCard } from '../SingleOrderCard';
21
11
 
22
12
  export const ActiveOrders = (props: ActiveOrdersParams) => {
23
13
  const {
@@ -27,111 +17,27 @@ export const ActiveOrders = (props: ActiveOrdersParams) => {
27
17
  loadMoreOrders,
28
18
  getOrderStatus,
29
19
  isMessageView,
30
- handleClickOrder
20
+ handleClickOrder,
21
+ handleUpdateOrderList
31
22
  } = props;
32
23
 
33
24
  const theme = useTheme();
34
25
  const [{ configs }] = useConfig();
35
- const [, t] = useLanguage();
36
- const [{ parseDate, parsePrice, optimizeImage }] = useUtils();
37
-
38
- const formatDate = (date: string, option?: any) => {
39
- return option?.utc ? moment.utc(date).format('DD/MM/YY \u2022 h:m a') : moment(date).format('DD/MM/YY \u2022 h:m a');
40
- };
41
-
42
- const handleClickCard = (uuid: string) => {
43
- if (isMessageView) {
44
- handleClickOrder(uuid)
45
- return
46
- }
47
- onNavigationRedirect &&
48
- onNavigationRedirect('OrderDetails', { orderId: uuid });
49
- };
50
-
51
- const Order = ({ order, index }: { order: any; index: number }) => (
52
- <React.Fragment>
53
- <Card
54
- isMiniCard={configs?.google_maps_api_key?.value}
55
- onPress={() => handleClickCard(order?.uuid)}
56
- activeOpacity={0.7}>
57
- {/* {!!(configs?.google_maps_api_key?.value) && (
58
- <Map>
59
- <OIcon
60
- url={getGoogleMapImage(order?.business?.location, configs?.google_maps_api_key?.value)}
61
- height={100}
62
- width={320}
63
- style={{resizeMode: 'cover', borderTopRightRadius: 24, borderTopLeftRadius: 24}}
64
- />
65
- </Map>
66
- )} */}
67
- <Information>
68
- {!!order.business?.logo && (
69
- <Logo>
70
- <OIcon
71
- url={optimizeImage(order.business?.logo, 'h_300,c_limit')}
72
- style={styles.logo}
73
- />
74
- </Logo>
75
- )}
76
- <OrderInformation>
77
- <BusinessInformation>
78
- <OText size={12} lineHeight={18} weight={600} numberOfLines={1} ellipsizeMode={'tail'}>
79
- {order.business?.name}
80
- </OText>
81
- <View style={styles.orderNumber}>
82
- <OText size={10} space color={theme.colors.textSecondary}>
83
- {t('ORDER_NO', 'Order No') + '.'}
84
- </OText>
85
- <OText size={10} color={theme.colors.textSecondary}>
86
- {order.id + ` \u2022 `}
87
- </OText>
88
- <OText size={10} color={theme.colors.textSecondary}>
89
- {order?.delivery_datetime_utc
90
- ? formatDate(order?.delivery_datetime_utc)
91
- : formatDate(order?.delivery_datetime, { utc: false })}
92
- </OText>
93
- </View>
94
- {/* {order?.status !== 0 && ( */}
95
- <OText
96
- color={theme.colors.primary}
97
- size={10}
98
- lineHeight={15}
99
- weight={400}
100
- numberOfLines={2}>
101
- {getOrderStatus(order.status)?.value}
102
- </OText>
103
- {/* )} */}
104
- </BusinessInformation>
105
- {isMessageView ? (
106
- <>
107
- {order?.unread_count > 0 && (
108
- <UnreadMessageCounter>
109
- <OText size={12} color={theme.colors.primary} lineHeight={18} >
110
- {order?.unread_count}
111
- </OText>
112
- </UnreadMessageCounter>
113
- )}
114
- </>
115
- ) : (
116
- <Price>
117
- <OText size={12} lineHeight={18}>
118
- {parsePrice(order?.summary?.total || order?.total)}
119
- </OText>
120
- </Price>
121
- )}
122
-
123
- </OrderInformation>
124
- </Information>
125
- </Card >
126
- </React.Fragment >
127
- );
128
26
 
129
27
  return (
130
28
  <>
131
29
  <ActiveOrdersContainer isMiniCards={configs?.google_maps_api_key?.value}>
132
30
  {orders.length > 0 &&
133
31
  orders.map((order: any, index: any) => (
134
- <Order key={index} order={order} index={index} />
32
+ <SingleOrderCard
33
+ key={index}
34
+ order={order}
35
+ handleClickOrder={handleClickOrder}
36
+ isMessageView={isMessageView}
37
+ getOrderStatus={getOrderStatus}
38
+ onNavigationRedirect={onNavigationRedirect}
39
+ handleUpdateOrderList={handleUpdateOrderList}
40
+ />
135
41
  ))}
136
42
  </ActiveOrdersContainer>
137
43
  <View
@@ -144,26 +50,3 @@ export const ActiveOrders = (props: ActiveOrdersParams) => {
144
50
  </>
145
51
  );
146
52
  };
147
-
148
- const styles = StyleSheet.create({
149
- logo: {
150
- borderRadius: 7.6,
151
- width: 64,
152
- height: 64,
153
- },
154
- orderNumber: {
155
- flexDirection: 'row',
156
- marginVertical: 3,
157
- },
158
- loadOrders: {
159
- justifyContent: 'center',
160
- alignItems: 'center',
161
- minWidth: 230,
162
- },
163
- loadMoreButton: {
164
- width: '100%',
165
- marginLeft: 'auto',
166
- marginRight: 'auto',
167
- borderRadius: 7.6
168
- },
169
- });
@@ -3,57 +3,3 @@ import styled from 'styled-components/native'
3
3
  export const ActiveOrdersContainer = styled.View`
4
4
  margin-bottom: 20px;
5
5
  `
6
-
7
- export const Card = styled.TouchableOpacity`
8
- `
9
-
10
- export const Map = styled.View`
11
- flex: 1;
12
- height: 125px;
13
- margin-bottom: 10px;
14
- `
15
-
16
- export const Information = styled.View`
17
- flex-direction: row;
18
- height: 100px;
19
- align-items: center;
20
- padding-vertical: 5px;
21
- `
22
-
23
- export const Logo = styled.View`
24
- border-radius: 7.6px;
25
- box-shadow: 0 1px 2px #0000001A;
26
- `
27
-
28
- export const OrderInformation = styled.View`
29
- flex-direction: row;
30
- justify-content: space-between;
31
- flex: 1;
32
- padding-left: 14px;
33
- `
34
-
35
- export const BusinessInformation = styled.View`
36
- flex-basis: 65%;
37
- `
38
-
39
- export const Price = styled.View`
40
- justify-content: space-between;
41
- align-items: flex-end;
42
- margin-left: 10px;
43
- width: 30%;
44
- `
45
-
46
- export const UnreadMessageCounter = styled.View`
47
- justify-content: center;
48
- align-items: center;
49
- margin-left: 10px;
50
- width: 24px;
51
- height: 24px;
52
- border-radius: 7.6px;
53
- background-color: ${(props: any) => props.theme.colors.primaryContrast};
54
- `
55
- export const LoadMore = styled.View`
56
- flex-direction: row;
57
- justify-content: center;
58
- margin-top: 10px;
59
- `
@@ -109,8 +109,8 @@ const AddressFormUI = (props: AddressFormParams) => {
109
109
  zIndex: 1002,
110
110
  },
111
111
  wrapperNavbar: Platform.OS === 'ios'
112
- ? { paddingVertical: 0, paddingHorizontal: 40 }
113
- : { paddingVertical: 20, paddingHorizontal: 40 }
112
+ ? { paddingVertical: 0, paddingHorizontal: 40 }
113
+ : { paddingVertical: 20, paddingHorizontal: 40 }
114
114
  });
115
115
 
116
116
  const [, t] = useLanguage();
@@ -156,7 +156,7 @@ const AddressFormUI = (props: AddressFormParams) => {
156
156
  const maxLimitLocation =
157
157
  configState?.configs?.meters_to_change_address?.value;
158
158
 
159
- const continueAsGuest = () => navigation.navigate('BusinessList');
159
+ const continueAsGuest = () => navigation.navigate('BusinessList', { isGuestUser: true });
160
160
  const goToBack = () => navigation?.canGoBack() && navigation.goBack();
161
161
 
162
162
  const getAddressFormatted = (address: any) => {
@@ -203,6 +203,7 @@ const AddressFormUI = (props: AddressFormParams) => {
203
203
  saveAddress(data.address);
204
204
  if (isGuestUser) {
205
205
  continueAsGuest();
206
+ return;
206
207
  }
207
208
  if (!isGuestUser && !auth) {
208
209
  !isFromProductsList
@@ -510,7 +511,7 @@ const AddressFormUI = (props: AddressFormParams) => {
510
511
  onActionLeft={goToBack}
511
512
  showCall={false}
512
513
  btnStyle={{ paddingLeft: 0 }}
513
- style={{ flexDirection: 'column', alignItems: 'flex-start' }}
514
+ style={{ marginTop: Platform.OS === 'ios' ? 0 : 30 }}
514
515
  titleWrapStyle={{ paddingHorizontal: 0 }}
515
516
  titleStyle={{ marginRight: 0, marginLeft: 0 }}
516
517
  />
@@ -600,13 +601,13 @@ const AddressFormUI = (props: AddressFormParams) => {
600
601
  />
601
602
  {hasEditing ? (
602
603
  <View style={styles.pinIcon}>
603
- <GPSButton
604
+ <GPSButton
604
605
  apiKey={googleMapsApiKey}
605
606
  handleGPS={(data: any, detail: any) => {
606
607
  handleChangeAddress(data, detail);
607
608
  setValue(data.address);
608
609
  if (googleInput?.current) {
609
- googleInput?.current?.setAddressText( data.address );
610
+ googleInput?.current?.setAddressText(data.address);
610
611
  }
611
612
  }}
612
613
  IconButton={<OIcon src={theme.images.general.pin} width={16} />}
@@ -1,7 +1,7 @@
1
1
  import React, { useEffect } from 'react'
2
2
  import { AddressList as AddressListController, useLanguage, useOrder, useSession } from 'ordering-components/native'
3
3
  import { AddressListContainer, AddressItem } from './styles'
4
- import { Platform, StyleSheet, View } from 'react-native'
4
+ import { Platform, RefreshControl, StyleSheet, View } from 'react-native'
5
5
  import { OButton, OText, OAlert, OModal, OIcon } from '../shared'
6
6
  import { Container } from '../../layouts/Container'
7
7
  import { AddressListParams } from '../../types'
@@ -27,7 +27,8 @@ const AddressListUI = (props: AddressListParams) => {
27
27
  actionStatus,
28
28
  isFromBusinesses,
29
29
  isFromProductsList,
30
- afterSignup
30
+ afterSignup,
31
+ loadAddresses
31
32
  } = props
32
33
 
33
34
  const theme = useTheme();
@@ -35,6 +36,7 @@ const AddressListUI = (props: AddressListParams) => {
35
36
  const [orderState] = useOrder()
36
37
  const [, t] = useLanguage()
37
38
  const [{ auth }] = useSession()
39
+ const [refreshing] = useState(false);
38
40
 
39
41
  const [isProfile, setIsProfile] = useState(isFromProfile || route?.params?.isFromProfile);
40
42
 
@@ -121,6 +123,12 @@ const AddressListUI = (props: AddressListParams) => {
121
123
  })
122
124
  }
123
125
 
126
+ const handleOnRefresh = () => {
127
+ if (!addressList.loading) {
128
+ loadAddresses();
129
+ }
130
+ }
131
+
124
132
  const goToBack = () => navigation?.canGoBack() && navigation.goBack()
125
133
  const onNavigationRedirect = (route: string, params?: any) => navigation.navigate(route, params)
126
134
 
@@ -135,22 +143,26 @@ const AddressListUI = (props: AddressListParams) => {
135
143
  }, [])
136
144
 
137
145
  return (
138
- <Container noPadding>
146
+ <Container
147
+ noPadding
148
+ refreshControl={
149
+ <RefreshControl
150
+ refreshing={refreshing}
151
+ onRefresh={() => handleOnRefresh()}
152
+ />
153
+ }
154
+ >
155
+ {isProfile && (
156
+ <NavBar
157
+ title={t('SAVED_PLACES', 'My saved places')}
158
+ titleAlign={'center'}
159
+ onActionLeft={goToBack}
160
+ showCall={false}
161
+ style={{ paddingHorizontal: 40, paddingVertical: Platform.OS === 'ios' ? 0 : 20, marginTop: Platform.OS === 'ios' ? 0 : 30 }}
162
+ />
163
+ )}
139
164
  {(!addressList.loading || (isFromProductsList || isFromBusinesses || isFromProfile || isProfile)) && (
140
165
  <AddressListContainer>
141
- {isProfile && (
142
- <NavBar
143
- title={t('SAVED_PLACES', 'My saved places')}
144
- titleAlign={'center'}
145
- onActionLeft={() => goToBack()}
146
- showCall={false}
147
- btnStyle={{ paddingLeft: 0 }}
148
- paddingTop={0}
149
- isVertical
150
- titleWrapStyle={{ paddingHorizontal: 0 }}
151
- titleStyle={{ marginLeft: 0, marginRight: 0 }}
152
- />
153
- )}
154
166
  {
155
167
  route &&
156
168
  (
@@ -167,12 +179,12 @@ const AddressListUI = (props: AddressListParams) => {
167
179
  showCall={false}
168
180
  btnStyle={{ paddingLeft: 0 }}
169
181
  paddingTop={0}
170
- style={{ flexDirection: 'column', alignItems: 'flex-start' }}
182
+ style={{ marginTop: Platform.OS === 'ios' ? 0 : 40 }}
171
183
  titleWrapStyle={{ paddingHorizontal: 0 }}
172
184
  titleStyle={{ marginLeft: 0, marginRight: 0 }}
173
185
  />
174
186
  )}
175
- {addressList.loading && (
187
+ {addressList.loading && addressList?.addresses?.length === 0 && (
176
188
  <>
177
189
  {[...Array(5)].map((item, i) => (
178
190
  <Placeholder key={i} style={{ paddingVertical: 20 }} Animation={Fade}>