ordering-ui-react-native 0.15.68 → 0.15.69-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 (220) hide show
  1. package/package.json +7 -3
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/index.tsx +61 -63
  4. package/src/components/ActiveOrders/styles.tsx +1 -1
  5. package/src/components/AddressForm/index.tsx +18 -2
  6. package/src/components/BusinessBasicInformation/index.tsx +11 -19
  7. package/src/components/BusinessController/index.tsx +16 -8
  8. package/src/components/BusinessInformation/index.tsx +14 -0
  9. package/src/components/BusinessTypeFilter/index.tsx +1 -2
  10. package/src/components/BusinessesListing/index.tsx +1 -1
  11. package/src/components/Checkout/index.tsx +23 -2
  12. package/src/components/DriverTips/index.tsx +11 -6
  13. package/src/components/LanguageSelector/index.tsx +6 -2
  14. package/src/components/LoginForm/index.tsx +120 -30
  15. package/src/components/LoginForm/styles.tsx +6 -0
  16. package/src/components/NotificationSetting/index.tsx +85 -0
  17. package/src/components/OrderDetails/index.tsx +7 -21
  18. package/src/components/PaymentOptions/index.tsx +67 -50
  19. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  20. package/src/components/ReviewDriver/index.tsx +1 -1
  21. package/src/components/ReviewOrder/index.tsx +2 -1
  22. package/src/components/ReviewProducts/index.tsx +11 -0
  23. package/src/components/SignupForm/index.tsx +145 -61
  24. package/src/components/SingleProductCard/index.tsx +16 -4
  25. package/src/components/SingleProductReview/index.tsx +1 -1
  26. package/src/components/StripeMethodForm/index.tsx +22 -24
  27. package/src/components/UpsellingProducts/index.tsx +1 -1
  28. package/src/components/UserProfileForm/index.tsx +63 -6
  29. package/src/components/UserProfileForm/styles.tsx +8 -0
  30. package/src/components/VerifyPhone/styles.tsx +1 -2
  31. package/src/components/shared/OBottomPopup.tsx +6 -2
  32. package/src/components/shared/OModal.tsx +1 -1
  33. package/src/hooks/useCountdownTimer.tsx +26 -0
  34. package/src/index.tsx +2 -0
  35. package/src/navigators/CheckoutNavigator.tsx +6 -0
  36. package/src/navigators/HomeNavigator.tsx +12 -0
  37. package/src/pages/BusinessesListing.tsx +7 -6
  38. package/src/pages/MultiCheckout.tsx +31 -0
  39. package/src/pages/MultiOrdersDetails.tsx +27 -0
  40. package/src/pages/OrderDetails.tsx +1 -1
  41. package/src/pages/ReviewDriver.tsx +2 -2
  42. package/src/pages/ReviewOrder.tsx +2 -2
  43. package/src/pages/Sessions.tsx +22 -0
  44. package/src/theme.json +0 -1
  45. package/src/types/index.tsx +18 -11
  46. package/src/utils/index.tsx +68 -2
  47. package/themes/business/index.tsx +4 -0
  48. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +103 -15
  49. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -0
  50. package/themes/business/src/components/Chat/index.tsx +51 -91
  51. package/themes/business/src/components/DriverMap/index.tsx +6 -5
  52. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  53. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  54. package/themes/business/src/components/LoginForm/index.tsx +89 -2
  55. package/themes/business/src/components/LoginForm/styles.tsx +6 -0
  56. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  57. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -13
  58. package/themes/business/src/components/OrderDetails/Business.tsx +2 -2
  59. package/themes/business/src/components/OrderDetails/Delivery.tsx +28 -11
  60. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +14 -7
  61. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +6 -0
  62. package/themes/business/src/components/OrdersListManager/index.tsx +11 -4
  63. package/themes/business/src/components/OrdersOption/index.tsx +16 -4
  64. package/themes/business/src/components/PreviousOrders/index.tsx +7 -7
  65. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  66. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  67. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  68. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  69. package/themes/business/src/components/shared/OModal.tsx +41 -38
  70. package/themes/business/src/types/index.tsx +14 -7
  71. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  72. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  73. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  74. package/themes/kiosk/src/components/BusinessMenu/index.tsx +39 -28
  75. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -3
  76. package/themes/kiosk/src/components/Cart/index.tsx +11 -12
  77. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
  78. package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
  79. package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
  80. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +107 -62
  81. package/themes/kiosk/src/components/Checkout/index.tsx +40 -22
  82. package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
  83. package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
  84. package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
  85. package/themes/kiosk/src/components/NavBar/index.tsx +29 -20
  86. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  87. package/themes/kiosk/src/components/OrderDetails/index.tsx +32 -27
  88. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +9 -11
  89. package/themes/kiosk/src/components/PaymentOptions/index.tsx +56 -54
  90. package/themes/kiosk/src/components/ProductForm/index.tsx +7 -8
  91. package/themes/kiosk/src/components/ProductItemAccordion/index.tsx +2 -2
  92. package/themes/kiosk/src/components/ProductOption/index.tsx +1 -1
  93. package/themes/kiosk/src/components/ProductOptionSubOption/index.tsx +3 -1
  94. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
  95. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  96. package/themes/kiosk/src/types/index.d.ts +1 -0
  97. package/themes/original/index.tsx +24 -0
  98. package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
  99. package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
  100. package/themes/original/src/components/AddressForm/index.tsx +7 -6
  101. package/themes/original/src/components/AddressList/index.tsx +30 -18
  102. package/themes/original/src/components/AppleLogin/index.tsx +6 -8
  103. package/themes/original/src/components/BusinessBasicInformation/index.tsx +304 -158
  104. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  105. package/themes/original/src/components/BusinessController/index.tsx +201 -96
  106. package/themes/original/src/components/BusinessController/styles.tsx +5 -0
  107. package/themes/original/src/components/BusinessItemAccordion/index.tsx +8 -5
  108. package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
  109. package/themes/original/src/components/BusinessListingSearch/index.tsx +231 -63
  110. package/themes/original/src/components/BusinessListingSearch/styles.tsx +22 -2
  111. package/themes/original/src/components/BusinessPreorder/index.tsx +1 -1
  112. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
  113. package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
  114. package/themes/original/src/components/BusinessProductsList/index.tsx +70 -52
  115. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  116. package/themes/original/src/components/BusinessProductsListing/index.tsx +323 -155
  117. package/themes/original/src/components/BusinessProductsListing/styles.tsx +33 -0
  118. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  119. package/themes/original/src/components/BusinessTypeFilter/index.tsx +106 -39
  120. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  121. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +560 -0
  122. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -2
  123. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +679 -0
  124. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  125. package/themes/original/src/components/BusinessesListing/index.tsx +104 -458
  126. package/themes/original/src/components/Cart/index.tsx +93 -43
  127. package/themes/original/src/components/Cart/styles.tsx +4 -0
  128. package/themes/original/src/components/Checkout/index.tsx +90 -39
  129. package/themes/original/src/components/DriverTips/index.tsx +17 -12
  130. package/themes/original/src/components/Favorite/index.tsx +92 -0
  131. package/themes/original/src/components/Favorite/styles.tsx +22 -0
  132. package/themes/original/src/components/FavoriteList/index.tsx +298 -0
  133. package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
  134. package/themes/original/src/components/ForgotPasswordForm/index.tsx +84 -4
  135. package/themes/original/src/components/GPSButton/index.tsx +15 -8
  136. package/themes/original/src/components/GoogleMap/index.tsx +11 -11
  137. package/themes/original/src/components/Help/index.tsx +21 -4
  138. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
  139. package/themes/original/src/components/LastOrders/index.tsx +12 -1
  140. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -0
  141. package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
  142. package/themes/original/src/components/LoginForm/index.tsx +332 -164
  143. package/themes/original/src/components/LoginForm/styles.tsx +1 -3
  144. package/themes/original/src/components/MessageListing/index.tsx +10 -1
  145. package/themes/original/src/components/Messages/index.tsx +1 -1
  146. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  147. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  148. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
  149. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
  150. package/themes/original/src/components/MultiCheckout/index.tsx +298 -0
  151. package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
  152. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
  153. package/themes/original/src/components/MultiOrdersDetails/index.tsx +258 -0
  154. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
  155. package/themes/original/src/components/MyOrders/index.tsx +120 -32
  156. package/themes/original/src/components/MyOrders/styles.tsx +8 -1
  157. package/themes/original/src/components/NavBar/index.tsx +4 -4
  158. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  159. package/themes/original/src/components/OrderDetails/index.tsx +148 -63
  160. package/themes/original/src/components/OrderDetails/styles.tsx +1 -2
  161. package/themes/original/src/components/OrderItAgain/index.tsx +72 -0
  162. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  163. package/themes/original/src/components/OrderSummary/index.tsx +6 -6
  164. package/themes/original/src/components/OrderTypeSelector/index.tsx +79 -35
  165. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  166. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +153 -0
  167. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
  168. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +53 -0
  169. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
  170. package/themes/original/src/components/OrdersOption/index.tsx +137 -38
  171. package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
  172. package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
  173. package/themes/original/src/components/PaymentOptionWallet/index.tsx +17 -23
  174. package/themes/original/src/components/PaymentOptionWallet/styles.tsx +1 -1
  175. package/themes/original/src/components/PaymentOptions/index.tsx +58 -37
  176. package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
  177. package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
  178. package/themes/original/src/components/ProductForm/index.tsx +718 -679
  179. package/themes/original/src/components/ProductForm/styles.tsx +9 -7
  180. package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
  181. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  182. package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -12
  183. package/themes/original/src/components/ProfessionalFilter/index.tsx +128 -0
  184. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  185. package/themes/original/src/components/ProfessionalProfile/index.tsx +298 -0
  186. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  187. package/themes/original/src/components/Promotions/index.tsx +151 -133
  188. package/themes/original/src/components/Promotions/styles.tsx +2 -1
  189. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  190. package/themes/original/src/components/ReviewOrder/index.tsx +1 -1
  191. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  192. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  193. package/themes/original/src/components/SearchBar/index.tsx +13 -5
  194. package/themes/original/src/components/ServiceForm/index.tsx +579 -0
  195. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  196. package/themes/original/src/components/Sessions/index.tsx +160 -0
  197. package/themes/original/src/components/Sessions/styles.tsx +15 -0
  198. package/themes/original/src/components/SignupForm/index.tsx +237 -126
  199. package/themes/original/src/components/SingleOrderCard/index.tsx +310 -0
  200. package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
  201. package/themes/original/src/components/SingleProductCard/index.tsx +214 -90
  202. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
  203. package/themes/original/src/components/StripeElementsForm/index.tsx +16 -8
  204. package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
  205. package/themes/original/src/components/UpsellingProducts/index.tsx +86 -74
  206. package/themes/original/src/components/UserDetails/index.tsx +32 -18
  207. package/themes/original/src/components/UserFormDetails/index.tsx +102 -66
  208. package/themes/original/src/components/UserProfile/index.tsx +10 -1
  209. package/themes/original/src/components/UserProfileForm/index.tsx +32 -25
  210. package/themes/original/src/components/UserVerification/index.tsx +178 -192
  211. package/themes/original/src/components/Wallets/index.tsx +25 -12
  212. package/themes/original/src/components/shared/OBottomPopup.tsx +44 -13
  213. package/themes/original/src/components/shared/OButton.tsx +2 -0
  214. package/themes/original/src/components/shared/OInput.tsx +3 -2
  215. package/themes/original/src/components/shared/OModal.tsx +4 -2
  216. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  217. package/themes/original/src/types/index.tsx +203 -35
  218. package/themes/original/src/utils/index.tsx +94 -1
  219. package/themes/single-business/src/components/OrderTypeSelector/index.tsx +1 -1
  220. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  PaymentOptions as PaymentOptionsController,
11
11
  useLanguage,
12
- ToastType,
12
+ ToastType,
13
13
  useToast,
14
14
  } from 'ordering-components/native';
15
15
  import { useTheme } from 'styled-components/native';
@@ -30,6 +30,7 @@ import {
30
30
  PMCardItemContent
31
31
  } from './styles'
32
32
  import { getIconCard, flatArray } from '../../utils';
33
+ import { useApplePay } from '@stripe/stripe-react-native';
33
34
 
34
35
  const stripeOptions: any = ['stripe_direct', 'stripe', 'stripe_connect']
35
36
  const methodsPay = ['google_pay', 'apple_pay']
@@ -62,7 +63,8 @@ const PaymentOptionsUI = (props: any) => {
62
63
  } = props
63
64
 
64
65
  const theme = useTheme();
65
- const [, { showToast }] = useToast();
66
+ const [, { showToast }] = useToast();
67
+ const { confirmApplePayPayment } = useApplePay()
66
68
 
67
69
  const getPayIcon = (method: string) => {
68
70
  switch (method) {
@@ -80,6 +82,8 @@ const PaymentOptionsUI = (props: any) => {
80
82
  return theme.images.general.stripes
81
83
  case 'stripe_redirect':
82
84
  return theme.images.general.stripesb
85
+ case 'apple_pay':
86
+ return theme.images.general.applePayMark
83
87
  default:
84
88
  return theme.images.general.creditCard
85
89
  }
@@ -98,18 +102,18 @@ const PaymentOptionsUI = (props: any) => {
98
102
  // ]
99
103
 
100
104
  const handlePaymentMethodClick = (paymethod: any) => {
101
- if (cart?.balance > 0) {
102
- const isPopupMethod = ['stripe', 'stripe_direct', 'stripe_connect', 'stripe_redirect', 'paypal'].includes(paymethod?.gateway)
103
- if (webViewPaymentGateway.includes(paymethod?.gateway)) {
104
- handlePaymentMethodClickCustom(paymethod)
105
- }
106
- handlePaymethodClick(paymethod, isPopupMethod)
107
- return
108
- }
109
- showToast(
105
+ if (cart?.balance > 0) {
106
+ const isPopupMethod = ['stripe', 'stripe_direct', 'stripe_connect', 'stripe_redirect', 'paypal'].includes(paymethod?.gateway)
107
+ if (webViewPaymentGateway.includes(paymethod?.gateway)) {
108
+ handlePaymentMethodClickCustom(paymethod)
109
+ }
110
+ handlePaymethodClick(paymethod, isPopupMethod)
111
+ return
112
+ }
113
+ showToast(
110
114
  ToastType.Error,
111
115
  t('CART_BALANCE_ZERO', 'Sorry, the amount to pay is equal to zero and it is not necessary to select a payment method'))
112
- ;
116
+ ;
113
117
  }
114
118
 
115
119
  useEffect(() => {
@@ -134,39 +138,56 @@ const PaymentOptionsUI = (props: any) => {
134
138
 
135
139
  useEffect(() => {
136
140
  if (methodsPay.includes(paymethodSelected?.gateway) && paymethodData?.id && paymethodSelected?.data?.card) {
137
- handlePlaceOrder()
141
+ handlePlaceOrder(confirmApplePayPayment)
138
142
  }
139
143
  }, [paymethodData, paymethodSelected])
140
144
 
141
145
  const renderPaymethods = ({ item }: any) => {
142
146
  return (
143
- <TouchableOpacity
144
- onPress={() => handlePaymentMethodClick(item)}
145
- >
146
- <PMItem
147
- key={item.id}
148
- isDisabled={isDisabled}
149
- isActive={paymethodSelected?.id === item.id}
150
- >
151
- <OIcon
152
- src={getPayIcon(item.gateway)}
153
- width={20}
154
- height={20}
155
- color={paymethodSelected?.id === item.id ? theme.colors.white : theme.colors.backgroundDark}
156
- />
157
- <OText
158
- size={10}
159
- style={{ margin: 0, marginTop: 4 }}
160
- color={paymethodSelected?.id === item.id ? theme.colors.white : '#000'}
147
+ <>
148
+ {item?.gateway === 'apple_pay' ? (
149
+ <TouchableOpacity
150
+ onPress={() => handlePaymentMethodClick(item)}
161
151
  >
162
- {t(item.gateway.toUpperCase(), item.name)}
163
- </OText>
164
- </PMItem>
165
- </TouchableOpacity>
152
+ <OIcon
153
+ src={getPayIcon(item.gateway)}
154
+ width={70}
155
+ height={70}
156
+ style={{ marginRight: 10 }}
157
+ />
158
+ </TouchableOpacity>
159
+ ) : (
160
+ <TouchableOpacity
161
+ onPress={() => handlePaymentMethodClick(item)}
162
+ >
163
+ {console.log(item?.gateway)}
164
+ <PMItem
165
+ key={item.id}
166
+ isDisabled={isDisabled}
167
+ isActive={paymethodSelected?.id === item.id}
168
+ >
169
+ <OIcon
170
+ src={getPayIcon(item.gateway)}
171
+ width={20}
172
+ height={20}
173
+ color={item?.gateway === 'apple_pay' ? '' : paymethodSelected?.id === item.id ? theme.colors.white : theme.colors.backgroundDark}
174
+ />
175
+ <OText
176
+ size={10}
177
+ style={{ margin: 0, marginTop: 4 }}
178
+ color={paymethodSelected?.id === item.id ? theme.colors.white : '#000'}
179
+ >
180
+ {t(item.gateway.toUpperCase(), item.name)}
181
+ </OText>
182
+ </PMItem>
183
+ </TouchableOpacity>
184
+ )}
185
+ </>
186
+
166
187
  )
167
188
  }
168
189
 
169
- const excludeIds: any = [32]; //exclude paypal & connect & redirect
190
+ const excludeIds: any = [32, 66]; //exclude paypal & connect & redirect
170
191
 
171
192
  return (
172
193
  <PMContainer>
@@ -214,7 +235,7 @@ const PaymentOptionsUI = (props: any) => {
214
235
 
215
236
  {paymethodSelected?.gateway === 'cash' && (
216
237
  <PaymentOptionCash
217
- orderTotal={cart.total}
238
+ orderTotal={cart.balance ?? cart.total}
218
239
  defaultValue={paymethodSelected?.data?.cash}
219
240
  onChangeData={handlePaymethodDataChange}
220
241
  setErrorCash={props.setErrorCash}
@@ -22,9 +22,8 @@ export const PhoneInputNumber = (props: PhoneInputParams) => {
22
22
  textStyle,
23
23
  flagStyle,
24
24
  noDropIcon,
25
- isDisabled,
26
- isStartValidation,
27
- changeCountry
25
+ isDisabled,
26
+ isStartValidation
28
27
  } = props
29
28
 
30
29
  const theme = useTheme();
@@ -59,7 +58,7 @@ export const PhoneInputNumber = (props: PhoneInputParams) => {
59
58
  }
60
59
 
61
60
  useEffect(() => {
62
- if ((defaultValue && userphoneNumber) || defaultValue === undefined || defaultValue === '') {
61
+ if ((defaultValue && userphoneNumber) || !defaultValue) {
63
62
  if (userphoneNumber) {
64
63
  const checkValid = phoneInput.current?.isValidNumber(userphoneNumber);
65
64
  const callingCode = phoneInput.current?.getCallingCode();
@@ -107,16 +106,11 @@ export const PhoneInputNumber = (props: PhoneInputParams) => {
107
106
  )}
108
107
  <PhoneInput
109
108
  ref={phoneInput}
110
- disabled={isDisabled}
109
+ disabled={isDisabled}
111
110
  defaultValue={userphoneNumber || defaultValue}
112
- defaultCode={defaultCode ?
113
- !isNaN(defaultCode)
114
- ? transformCountryCode(defaultCode)
115
- : defaultCode
116
- : configs?.default_country_code?.value}
111
+ defaultCode={defaultCode ? transformCountryCode(defaultCode) : configs?.default_country_code?.value}
117
112
  onChangeFormattedText={(text: string) => handleChangeNumber(text)}
118
113
  withDarkTheme
119
- onChangeCountry={(country) => changeCountry?.(country)}
120
114
  countryPickerProps={{ withAlphaFilter: true }}
121
115
  textContainerStyle={{ ...style.input, ...inputStyle ? inputStyle : {} }}
122
116
  textInputStyle={textStyle}
@@ -1,18 +1,13 @@
1
- import React, { useState } from 'react';
2
- import { useLanguage, useUtils } from 'ordering-components/native';
1
+ import React from 'react';
2
+ import { useLanguage } from 'ordering-components/native';
3
3
  import { useTheme } from 'styled-components/native';
4
- import { StyleSheet, TouchableOpacity, ScrollView, View } from 'react-native';
5
- import { OButton, OIcon, OText } from '../shared';
4
+ import { View } from 'react-native';
5
+ import { OButton } from '../shared';
6
6
  import {
7
- Card,
8
- Logo,
9
- Information,
10
- MyOrderOptions,
11
- Status,
12
7
  WrappButton,
13
8
  } from './styles';
14
9
  import { PreviousOrdersParams } from '../../types';
15
- import moment from 'moment';
10
+ import { SingleOrderCard } from '../SingleOrderCard';
16
11
 
17
12
  export const PreviousOrders = (props: PreviousOrdersParams) => {
18
13
  const {
@@ -24,152 +19,28 @@ export const PreviousOrders = (props: PreviousOrdersParams) => {
24
19
  handleReorder,
25
20
  reorderLoading,
26
21
  orderID,
22
+ handleUpdateOrderList
27
23
  } = props;
28
24
 
29
25
  const theme = useTheme();
30
26
 
31
-
32
- const styles = StyleSheet.create({
33
- logo: {
34
- borderRadius: 10,
35
- width: 64,
36
- height: 64,
37
- },
38
- reorderbutton: {
39
- height: 23,
40
- paddingLeft: 10,
41
- paddingRight: 10,
42
- borderRadius: 23,
43
- shadowOpacity: 0,
44
- backgroundColor: theme.colors.primaryContrast,
45
- borderWidth: 0,
46
- },
47
- reorderLoading: {
48
- width: 80,
49
- height: 40,
50
- borderRadius: 10,
51
- },
52
- reviewButton: {
53
- height: 23,
54
- maxHeight: 23,
55
- backgroundColor: theme.colors.white,
56
- alignItems: 'center',
57
- justifyContent: 'center',
58
- paddingHorizontal: 10,
59
- borderRadius: 23,
60
- borderWidth: 1,
61
- borderColor: theme.colors.primaryContrast,
62
- },
63
- buttonText: {
64
- color: theme.colors.primary,
65
- fontSize: 10,
66
- marginLeft: 2,
67
- marginRight: 2,
68
- },
69
- });
70
-
71
-
72
27
  const [, t] = useLanguage();
73
- const [reorderSelected, setReorderSelected] = useState<number | null>(null);
74
- const [{ parseDate, optimizeImage }] = useUtils();
75
- const allowedOrderStatus = [1, 2, 5, 6, 10, 11, 12];
76
-
77
- const handleClickViewOrder = (uuid: string) => {
78
- onNavigationRedirect &&
79
- onNavigationRedirect('OrderDetails', { orderId: uuid });
80
- };
81
-
82
- const handleClickOrderReview = (order: any) => {
83
- onNavigationRedirect &&
84
- onNavigationRedirect('ReviewOrder', {
85
- order: {
86
- id: order?.id,
87
- business_id: order?.business_id,
88
- logo: order?.business?.logo,
89
- driver: order?.driver,
90
- products: order?.products,
91
- review: order?.review,
92
- user_review: order?.user_review
93
- },
94
- });
95
- };
96
-
97
- const formatDate = (date: string, option?: any) => {
98
- return option?.utc ? moment.utc(date).format('DD/MM/YY \u2022 h:m a') : moment(date).format('DD/MM/YY \u2022 h:m a');
99
- };
100
28
 
101
- const handleReorderClick = (id: number) => {
102
- setReorderSelected(id);
103
- handleReorder(id);
104
- };
29
+ const pastOrders = [1, 2, 5, 6, 10, 11, 12, 15, 16, 17]
105
30
 
106
31
  return (
107
32
  <View style={{ marginBottom: 30 }}>
108
- {orders.map((order: any) => (
109
- <TouchableOpacity
110
- onPress={() => handleClickViewOrder(order?.uuid)}
111
- activeOpacity={0.7}
112
- style={{ flexDirection: 'row' }}
113
- key={order.id}>
114
- <Card>
115
- {!!order.business?.logo && (
116
- <Logo>
117
- <OIcon
118
- url={optimizeImage(order.business?.logo, 'h_300,c_limit')}
119
- style={styles.logo}
120
- />
121
- </Logo>
122
- )}
123
- <Information>
124
- <OText size={12} lineHeight={18} weight={'600'} numberOfLines={1} ellipsizeMode={'tail'}>
125
- {order.business?.name}
126
- </OText>
127
- <OText
128
- size={10}
129
- lineHeight={15}
130
- color={theme.colors.textSecondary}
131
- style={{ marginVertical: 3 }}
132
- numberOfLines={1}>
133
- {order?.delivery_datetime_utc
134
- ? formatDate(order?.delivery_datetime_utc)
135
- : formatDate(order?.delivery_datetime, { utc: false })}
136
- </OText>
137
- <OText
138
- color={theme.colors.primary}
139
- size={10}
140
- lineHeight={15}
141
- numberOfLines={1}>
142
- {getOrderStatus(order.status)?.value}
143
- </OText>
144
- </Information>
145
- <Status>
146
- {order.cart && (
147
- <OButton
148
- text={t('REORDER', 'Reorder')}
149
- imgRightSrc={''}
150
- textStyle={styles.buttonText}
151
- style={
152
- reorderLoading && order.id === reorderSelected
153
- ? styles.reorderLoading
154
- : styles.reorderbutton
155
- }
156
- onClick={() => handleReorderClick(order.id)}
157
- isLoading={reorderLoading && order.id === reorderSelected}
158
- />
159
- )}
160
- {allowedOrderStatus.includes(parseInt(order?.status)) &&
161
- !order.review && (
162
- <TouchableOpacity
163
- onPress={() => handleClickOrderReview(order)}
164
- style={styles.reviewButton}>
165
- <OText size={10} color={theme.colors.primary} numberOfLines={1}>
166
- {t('REVIEW', 'Review')}
167
- </OText>
168
- </TouchableOpacity>
169
- )}
170
- </Status>
171
- </Card>
172
- </TouchableOpacity>
33
+ {orders.map((order: any, i: number) => (
34
+ <SingleOrderCard
35
+ key={i}
36
+ order={order}
37
+ reorderLoading={reorderLoading}
38
+ handleReorder={handleReorder}
39
+ onNavigationRedirect={onNavigationRedirect}
40
+ getOrderStatus={getOrderStatus}
41
+ pastOrders={pastOrders.includes(order?.status)}
42
+ handleUpdateOrderList={handleUpdateOrderList}
43
+ />
173
44
  ))}
174
45
  {pagination.totalPages && pagination.currentPage < pagination.totalPages && (
175
46
  <WrappButton>