ordering-ui-react-native 0.16.84 → 0.16.85-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 (214) hide show
  1. package/package.json +5 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/styles.tsx +8 -14
  4. package/src/components/BusinessInformation/index.tsx +19 -4
  5. package/src/components/BusinessInformation/styles.tsx +2 -2
  6. package/src/components/BusinessProductsList/index.tsx +8 -8
  7. package/src/components/BusinessesListing/index.tsx +1 -1
  8. package/src/components/LanguageSelector/index.tsx +21 -16
  9. package/src/components/Messages/index.tsx +2 -2
  10. package/src/components/OrderCreating/index.tsx +1 -21
  11. package/src/components/OrdersOption/index.tsx +54 -56
  12. package/src/components/PaymentOptionsWebView/index.tsx +119 -120
  13. package/src/components/SingleProductReview/index.tsx +7 -4
  14. package/src/components/VerifyPhone/styles.tsx +1 -2
  15. package/src/components/shared/OToast.tsx +4 -4
  16. package/src/utils/index.tsx +2 -1
  17. package/themes/business/index.tsx +2 -0
  18. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +260 -238
  19. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  20. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  21. package/themes/business/src/components/Chat/index.tsx +31 -31
  22. package/themes/business/src/components/DriverMap/index.tsx +22 -9
  23. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  24. package/themes/business/src/components/LoginForm/Otp/index.tsx +120 -0
  25. package/themes/business/src/components/LoginForm/Otp/styles.tsx +7 -0
  26. package/themes/business/src/components/LoginForm/index.tsx +236 -80
  27. package/themes/business/src/components/LoginForm/styles.tsx +10 -0
  28. package/themes/business/src/components/MapView/index.tsx +19 -8
  29. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  30. package/themes/business/src/components/NewOrderNotification/index.tsx +31 -41
  31. package/themes/business/src/components/OrderDetails/Delivery.tsx +4 -3
  32. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +96 -50
  33. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +3 -3
  34. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  35. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  36. package/themes/business/src/components/OrdersOption/index.tsx +63 -73
  37. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  38. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  39. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  40. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  41. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  42. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  43. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  44. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  45. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  46. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
  47. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  48. package/themes/business/src/components/PreviousOrders/index.tsx +447 -247
  49. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  50. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  51. package/themes/business/src/components/ReviewCustomer/index.tsx +39 -15
  52. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  53. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  54. package/themes/business/src/components/shared/OLink.tsx +33 -13
  55. package/themes/business/src/components/shared/OModal.tsx +16 -9
  56. package/themes/business/src/components/shared/OText.tsx +8 -2
  57. package/themes/business/src/types/index.tsx +35 -3
  58. package/themes/business/src/utils/index.tsx +53 -0
  59. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  60. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  61. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  62. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  63. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  64. package/themes/kiosk/src/components/LoginForm/Otp/index.tsx +92 -0
  65. package/themes/kiosk/src/components/LoginForm/Otp/styles.tsx +7 -0
  66. package/themes/kiosk/src/components/LoginForm/index.tsx +473 -151
  67. package/themes/kiosk/src/components/LoginForm/styles.tsx +14 -1
  68. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  69. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  70. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  71. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +1 -0
  72. package/themes/kiosk/src/components/PhoneInputNumber/styles.tsx +1 -3
  73. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  74. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  75. package/themes/kiosk/src/components/shared/OModal.tsx +14 -11
  76. package/themes/kiosk/src/layouts/Container.tsx +7 -1
  77. package/themes/kiosk/src/types/index.d.ts +13 -0
  78. package/themes/kiosk/src/utils/index.tsx +15 -0
  79. package/themes/original/index.tsx +8 -0
  80. package/themes/original/src/components/AddressDetails/index.tsx +10 -8
  81. package/themes/original/src/components/AddressForm/index.tsx +155 -139
  82. package/themes/original/src/components/AddressList/index.tsx +18 -18
  83. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  84. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  85. package/themes/original/src/components/BusinessBasicInformation/index.tsx +118 -76
  86. package/themes/original/src/components/BusinessController/index.tsx +100 -47
  87. package/themes/original/src/components/BusinessController/styles.tsx +14 -9
  88. package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
  89. package/themes/original/src/components/BusinessItemAccordion/index.tsx +9 -3
  90. package/themes/original/src/components/BusinessListingSearch/index.tsx +93 -42
  91. package/themes/original/src/components/BusinessListingSearch/styles.tsx +6 -0
  92. package/themes/original/src/components/BusinessPreorder/index.tsx +96 -15
  93. package/themes/original/src/components/BusinessProductsList/index.tsx +10 -8
  94. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  95. package/themes/original/src/components/BusinessProductsListing/index.tsx +564 -495
  96. package/themes/original/src/components/BusinessProductsListing/styles.tsx +13 -12
  97. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
  98. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  99. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +116 -81
  100. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
  101. package/themes/original/src/components/BusinessesListing/index.tsx +6 -6
  102. package/themes/original/src/components/Cart/index.tsx +83 -42
  103. package/themes/original/src/components/CartContent/index.tsx +77 -15
  104. package/themes/original/src/components/CartContent/styles.tsx +11 -1
  105. package/themes/original/src/components/Checkout/index.tsx +74 -86
  106. package/themes/original/src/components/Checkout/styles.tsx +4 -2
  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 +52 -37
  110. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  111. package/themes/original/src/components/Favorite/index.tsx +7 -4
  112. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  113. package/themes/original/src/components/FavoriteList/index.tsx +70 -80
  114. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  115. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  116. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  117. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  118. package/themes/original/src/components/GoogleMap/index.tsx +10 -1
  119. package/themes/original/src/components/Help/index.tsx +8 -8
  120. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +11 -22
  121. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
  122. package/themes/original/src/components/HelpGuide/index.tsx +12 -16
  123. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  124. package/themes/original/src/components/HelpOrder/index.tsx +12 -25
  125. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  126. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  127. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  128. package/themes/original/src/components/LoginForm/Otp/index.tsx +89 -73
  129. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  130. package/themes/original/src/components/LoginForm/index.tsx +28 -8
  131. package/themes/original/src/components/LottieAnimation/index.tsx +78 -0
  132. package/themes/original/src/components/MessageListing/index.tsx +7 -40
  133. package/themes/original/src/components/Messages/index.tsx +26 -10
  134. package/themes/original/src/components/MomentOption/index.tsx +195 -88
  135. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  136. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -93
  137. package/themes/original/src/components/MultiCheckout/index.tsx +179 -77
  138. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  139. package/themes/original/src/components/MultiOrdersDetails/index.tsx +67 -20
  140. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  141. package/themes/original/src/components/MyOrders/index.tsx +66 -17
  142. package/themes/original/src/components/NavBar/index.tsx +6 -11
  143. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  144. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  145. package/themes/original/src/components/Notifications/index.tsx +144 -0
  146. package/themes/original/src/components/Notifications/styles.tsx +20 -0
  147. package/themes/original/src/components/OrderDetails/index.tsx +108 -218
  148. package/themes/original/src/components/OrderDetails/styles.tsx +10 -1
  149. package/themes/original/src/components/OrderItAgain/index.tsx +44 -42
  150. package/themes/original/src/components/OrderProgress/index.tsx +82 -106
  151. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  152. package/themes/original/src/components/OrderSummary/index.tsx +2 -2
  153. package/themes/original/src/components/OrderTypeSelector/index.tsx +9 -3
  154. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +29 -20
  155. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  156. package/themes/original/src/components/OrdersOption/index.tsx +79 -84
  157. package/themes/original/src/components/PageBanner/index.tsx +146 -0
  158. package/themes/original/src/components/PageBanner/styles.tsx +11 -0
  159. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  160. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  161. package/themes/original/src/components/PaymentOptions/index.tsx +2 -2
  162. package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
  163. package/themes/original/src/components/PlaceSpot/index.tsx +12 -6
  164. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  165. package/themes/original/src/components/ProductForm/index.tsx +240 -256
  166. package/themes/original/src/components/ProductForm/styles.tsx +5 -8
  167. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  168. package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -10
  169. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +1 -2
  170. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  171. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -49
  172. package/themes/original/src/components/ProfessionalProfile/index.tsx +54 -14
  173. package/themes/original/src/components/Promotions/index.tsx +234 -220
  174. package/themes/original/src/components/Promotions/styles.tsx +7 -2
  175. package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
  176. package/themes/original/src/components/ReviewOrder/index.tsx +43 -11
  177. package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
  178. package/themes/original/src/components/ReviewProducts/index.tsx +8 -5
  179. package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
  180. package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
  181. package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
  182. package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
  183. package/themes/original/src/components/ServiceForm/index.tsx +377 -270
  184. package/themes/original/src/components/Sessions/index.tsx +11 -8
  185. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  186. package/themes/original/src/components/SignupForm/index.tsx +78 -66
  187. package/themes/original/src/components/SingleOrderCard/index.tsx +125 -56
  188. package/themes/original/src/components/SingleOrderCard/styles.tsx +10 -8
  189. package/themes/original/src/components/SingleProductCard/index.tsx +106 -47
  190. package/themes/original/src/components/SingleProductCard/styles.tsx +14 -13
  191. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  192. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  193. package/themes/original/src/components/StripeCardsList/index.tsx +1 -1
  194. package/themes/original/src/components/StripeElementsForm/index.tsx +4 -1
  195. package/themes/original/src/components/UpsellingProducts/index.tsx +243 -218
  196. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  197. package/themes/original/src/components/UserDetails/index.tsx +5 -3
  198. package/themes/original/src/components/UserFormDetails/index.tsx +61 -54
  199. package/themes/original/src/components/UserProfile/index.tsx +58 -35
  200. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  201. package/themes/original/src/components/UserProfileForm/index.tsx +21 -28
  202. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  203. package/themes/original/src/components/Wallets/index.tsx +96 -93
  204. package/themes/original/src/components/Wallets/styles.tsx +2 -0
  205. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  206. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  207. package/themes/original/src/components/shared/OBottomPopup.tsx +1 -1
  208. package/themes/original/src/components/shared/OButton.tsx +1 -1
  209. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  210. package/themes/original/src/components/shared/OInput.tsx +10 -1
  211. package/themes/original/src/layouts/Container.tsx +13 -9
  212. package/themes/original/src/types/index.tsx +36 -5
  213. package/themes/original/src/utils/index.tsx +321 -58
  214. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -0,0 +1,195 @@
1
+ //React & React Native
2
+ import React, { useState, useEffect } from 'react';
3
+ import { View } from 'react-native';
4
+
5
+ // Thirds
6
+ import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
7
+
8
+ //OrderingComponent
9
+ import {
10
+ useLanguage,
11
+ OrderDetails as OrderDetailsConTableoller,
12
+ useSession,
13
+ } from 'ordering-components/native';
14
+
15
+ //Components
16
+ import Alert from '../../providers/AlertProvider';
17
+ import { FloatingButton } from '../FloatingButton';
18
+ import { OrderDetailsLogisticParams } from '../../types';
19
+ import { useTheme } from 'styled-components/native';
20
+ import { NotFoundSource } from '../NotFoundSource';
21
+ import { getOrderStatus } from '../../utils';
22
+ import { OrderHeaderComponent } from '../OrderDetails/OrderHeaderComponent';
23
+ import { OrderContentComponent } from '../OrderDetails/OrderContentComponent';
24
+ //Styles
25
+ import { OrderDetailsContainer } from './styles';
26
+
27
+ export const OrderDetailsLogisticUI = (props: OrderDetailsLogisticParams) => {
28
+ const {
29
+ navigation,
30
+ handleClickLogisticOrder,
31
+ orderAssingId,
32
+ } = props;
33
+ const { order } = props.order
34
+ const theme = useTheme();
35
+ const [, t] = useLanguage();
36
+ const [session] = useSession();
37
+ const [alertState, setAlertState] = useState<{
38
+ open: boolean;
39
+ content: Array<string>;
40
+ key?: string | null;
41
+ }>({ open: false, content: [], key: null });
42
+
43
+ const logisticOrderStatus = [4, 6, 7]
44
+
45
+ const showFloatButtonsAcceptOrReject: any = {
46
+ 0: true,
47
+ 4: true,
48
+ 7: true,
49
+ 14: true
50
+ };
51
+
52
+ const handleArrowBack: any = () => {
53
+ navigation?.canGoBack() && navigation.goBack();
54
+ };
55
+
56
+ const handleRejectLogisticOrder = (order: any) => {
57
+ handleClickLogisticOrder?.(2, orderAssingId || order?.logistic_order_id, order)
58
+ handleArrowBack()
59
+ }
60
+
61
+ const handleAcceptLogisticOrder = (order: any) => {
62
+ handleClickLogisticOrder?.(1, orderAssingId || order?.logistic_order_id, order)
63
+ handleArrowBack()
64
+ }
65
+
66
+ useEffect(() => {
67
+ if (order?.driver === null && session?.user?.level === 4) {
68
+ setAlertState({
69
+ open: true,
70
+ content: [
71
+ t(
72
+ 'YOU_HAVE_BEEN_REMOVED_FROM_THE_ORDER',
73
+ 'You have been removed from the order',
74
+ ),
75
+ ],
76
+ key: null,
77
+ });
78
+ }
79
+ }, [order?.driver]);
80
+
81
+ const OrderDetailsInformation = (props: { order: any, isOrderGroup?: boolean, lastOrder?: boolean }) => {
82
+ const {
83
+ order,
84
+ isOrderGroup,
85
+ lastOrder,
86
+ } = props
87
+ return (
88
+ <>
89
+ <OrderContentComponent
90
+ order={order}
91
+ logisticOrderStatus={logisticOrderStatus}
92
+ isOrderGroup={isOrderGroup}
93
+ lastOrder={lastOrder}
94
+ />
95
+ <View
96
+ style={{
97
+ height:
98
+ order?.status === 8 && order?.delivery_type === 1 ? 50 : 35,
99
+ }}
100
+ />
101
+
102
+ </>
103
+ )
104
+ }
105
+
106
+ return (
107
+ <>
108
+ {(!order || Object.keys(order).length === 0) &&
109
+ (props.order?.error?.length < 1 || !props.order?.error) && (
110
+ <View style={{ flex: 1 }}>
111
+ {[...Array(6)].map((item, i) => (
112
+ <Placeholder key={i} Animation={Fade}>
113
+ <View style={{ flexDirection: 'row', paddingVertical: 20 }}>
114
+ <Placeholder>
115
+ <PlaceholderLine width={100} />
116
+ <PlaceholderLine width={70} />
117
+ <PlaceholderLine width={30} />
118
+ <PlaceholderLine width={20} />
119
+ </Placeholder>
120
+ </View>
121
+ </Placeholder>
122
+ ))}
123
+ </View>
124
+ )}
125
+
126
+ {(!!props.order?.error || props.order?.error) && (
127
+ <NotFoundSource
128
+ btnTitle={t('GO_TO_MY_ORDERS', 'Go to my orders')}
129
+ content={
130
+ props.order.error[0] ||
131
+ props.order.error ||
132
+ t('NETWORK_ERROR', 'Network Error')
133
+ }
134
+ onClickButton={() => navigation.navigate('Orders')}
135
+ />
136
+ )}
137
+ {!((!order || Object.keys(order).length === 0) &&
138
+ (props.order?.error?.length < 1 || !props.order?.error)) && (
139
+ <View style={{ flex: 1 }}>
140
+ <OrderHeaderComponent
141
+ order={order}
142
+ getOrderStatus={getOrderStatus}
143
+ handleArrowBack={handleArrowBack}
144
+ logisticOrderStatus={logisticOrderStatus}
145
+ />
146
+ {order && Object.keys(order).length > 0 && (props.order?.error?.length < 1 || !props.order?.error) && (
147
+ <>
148
+ <OrderDetailsContainer
149
+ keyboardShouldPersistTaps="handled"
150
+ showsVerticalScrollIndicator={false}
151
+ >
152
+ {order?.order_group && order?.order_group_id && order?.isLogistic ? order?.order_group?.orders.map((order: any, i: number, hash: any) => (
153
+ <OrderDetailsInformation key={order?.id} order={order} isOrderGroup lastOrder={hash?.length === i + 1} />
154
+ )) : (
155
+ <OrderDetailsInformation order={order} />
156
+ )}
157
+ </OrderDetailsContainer>
158
+
159
+ {showFloatButtonsAcceptOrReject[order?.status] && (
160
+ <FloatingButton
161
+ btnText={t('REJECT', 'Reject')}
162
+ isSecondaryBtn={false}
163
+ secondButtonClick={() => handleAcceptLogisticOrder(order)}
164
+ firstButtonClick={() => handleRejectLogisticOrder(order)}
165
+ secondBtnText={t('ACCEPT', 'Accept')}
166
+ secondButton={true}
167
+ firstColorCustom={theme.colors.red}
168
+ secondColorCustom={theme.colors.green}
169
+ widthButton={'45%'}
170
+ />
171
+ )}
172
+ </>
173
+ )}
174
+ </View>
175
+ )}
176
+ {alertState?.open && (
177
+ <Alert
178
+ open={alertState.open}
179
+ onAccept={handleArrowBack}
180
+ onClose={handleArrowBack}
181
+ content={alertState.content}
182
+ title={t('WARNING', 'Warning')}
183
+ />
184
+ )}
185
+ </>
186
+ );
187
+ };
188
+
189
+ export const OrderDetailsLogistic = (props: OrderDetailsLogisticParams) => {
190
+ const orderDetailsProps = {
191
+ ...props,
192
+ UIComponent: OrderDetailsLogisticUI,
193
+ };
194
+ return <OrderDetailsConTableoller {...orderDetailsProps} />;
195
+ };
@@ -0,0 +1,5 @@
1
+ import styled from 'styled-components/native';
2
+
3
+ export const OrderDetailsContainer = styled.ScrollView`
4
+ flex: 1;
5
+ `;
@@ -1,10 +1,11 @@
1
1
  import React, { useEffect, useState, useRef } from 'react';
2
- import { View, Pressable, StyleSheet, ScrollView, RefreshControl, Linking, Platform, TextInput } from 'react-native';
3
- import { useLanguage, useUtils, useToast, ToastType, OrderListGroups, useConfig } from 'ordering-components/native';
2
+ import { View, Pressable, StyleSheet, ScrollView, RefreshControl, Platform } from 'react-native';
3
+ import { useLanguage, useUtils, useToast, OrderListGroups, useConfig } from 'ordering-components/native';
4
4
  import SelectDropdown from 'react-native-select-dropdown'
5
5
  import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
6
6
  import FeatherIcon from 'react-native-vector-icons/Feather';
7
7
  import FontistoIcon from 'react-native-vector-icons/Fontisto'
8
+ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
8
9
  import { useTheme } from 'styled-components/native';
9
10
  import { DeviceOrientationMethods } from '../../../../../src/hooks/DeviceOrientation'
10
11
  import { NotificationSetting } from '../../../../../src/components/NotificationSetting'
@@ -19,7 +20,6 @@ import {
19
20
  IconWrapper,
20
21
  ModalContainer,
21
22
  ModalTitle,
22
- FilterBtnWrapper,
23
23
  TabPressable,
24
24
  OrderStatus,
25
25
  SlaOption,
@@ -33,41 +33,17 @@ import {
33
33
  ItemContent,
34
34
  TimerInputWrapper,
35
35
  OverLine,
36
- Actions
36
+ InputContainer
37
37
  } from './styles';
38
38
  import { PreviousOrders } from '../PreviousOrders';
39
39
  import { OrdersOptionParams } from '../../types';
40
40
 
41
- import { TouchableOpacity } from 'react-native-gesture-handler';
42
- import GestureRecognizer from 'react-native-swipe-gestures';
43
- import ODropDown from '../shared/ODropDown';
44
- import { OrdersOptionStatus } from '../OrdersOptionStatus'
45
41
  import { OrdersOptionCity } from '../OrdersOptionCity';
46
42
  import { OrdersOptionBusiness } from '../OrdersOptionBusiness';
47
43
  import { OrdersOptionDelivery } from '../OrdersOptionDelivery';
48
44
  import { OrdersOptionPaymethod } from '../OrdersOptionPaymethod';
49
45
  import { OrdersOptionDriver } from '../OrdersOptionDriver';
50
46
  import { OrdersOptionDate } from '../OrdersOptionDate';
51
-
52
- const tabsList: any = {
53
- pending: 1,
54
- inProgress: 2,
55
- completed: 3,
56
- cancelled: 4
57
- };
58
-
59
- const tabsListText: any = {
60
- 1: 'pending',
61
- 2: 'inProgress',
62
- 3: 'completed',
63
- 4: 'cancelled'
64
- };
65
-
66
- const swipeConfig = {
67
- velocityThreshold: 0.3,
68
- directionalOffsetThreshold: 80
69
- };
70
-
71
47
  const { useDeviceOrientation, PORTRAIT } = DeviceOrientationMethods
72
48
 
73
49
  const OrdersOptionUI = (props: OrdersOptionParams) => {
@@ -79,10 +55,10 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
79
55
  ordersGroup,
80
56
  setOrdersGroup,
81
57
  orderStatus,
58
+ ordersFormatted,
82
59
  loadOrders,
83
60
  loadMoreOrders,
84
61
  onNavigationRedirect,
85
- filtered,
86
62
  onFiltered,
87
63
  handleClickOrder,
88
64
  isBusinessApp,
@@ -90,7 +66,9 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
90
66
  logisticOrders,
91
67
  loadLogisticOrders,
92
68
  isLogisticActivated,
93
- isAlsea
69
+ isAlsea,
70
+ handleChangeOrderStatus,
71
+ handleSendCustomerReview
94
72
  } = props;
95
73
 
96
74
  const defaultSearchList = {
@@ -120,10 +98,10 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
120
98
  const [slaSettingTime, setSlaSettingTime] = useState(6000)
121
99
  const [currentDeliveryType, setCurrentDeliveryType] = useState('Delivery')
122
100
  const [search, setSearch] = useState(defaultSearchList)
123
- const [selectedTabStatus, setSelectedTabStatus] = useState([])
101
+ const [selectedTabStatus, setSelectedTabStatus] = useState<any>([])
124
102
  const [hour, setHour] = useState(0)
125
103
  const [minute, setMinute] = useState(0)
126
-
104
+ const [openedSelect, setOpenedSelect] = useState('')
127
105
  const WIDTH_SCREEN = orientationState?.dimensions?.width
128
106
  const HEIGHT_SCREEN = orientationState?.dimensions?.height
129
107
  const IS_PORTRAIT = orientationState.orientation === PORTRAIT
@@ -344,26 +322,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
344
322
  })
345
323
  }
346
324
 
347
- const onSwipeLeft = () => {
348
- let currentTab = tabsList[currentTabSelected]
349
- currentTab = currentTab >= 4 ? null : currentTab + 1
350
-
351
- if (!currentTab) return
352
-
353
- const nextTab = tabsListText[currentTab]
354
- nextTab && setCurrentTabSelected(nextTab)
355
- }
356
-
357
- const onSwipeRight = () => {
358
- let currentTab = tabsList[currentTabSelected]
359
- currentTab = currentTab <= 1 ? null : currentTab - 1
360
-
361
- if (!currentTab) return
362
-
363
- const nextTab = tabsListText[currentTab]
364
- nextTab && setCurrentTabSelected(nextTab)
365
- }
366
-
367
325
  const calculateDate = (type: any, from: any, to: any) => {
368
326
  switch (type) {
369
327
  case 'today':
@@ -403,13 +361,15 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
403
361
  setOpenSLASettingModal(false)
404
362
  }
405
363
 
406
- useEffect(() => {
407
- setCurrentFilters(null)
408
- onFiltered && onFiltered(null)
364
+ const handleClearFilters = () => {
409
365
  setSearch(defaultSearchList)
366
+ }
367
+
368
+ useEffect(() => {
410
369
  scrollRefTab.current?.scrollTo({ animated: true });
411
370
  scrollListRef.current?.scrollTo({ animated: true });
412
371
  scrollRef.current?.scrollTo({ y: 0, animated: true });
372
+ setTags({ values: [] })
413
373
  }, [currentTabSelected])
414
374
 
415
375
  useEffect(() => {
@@ -417,12 +377,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
417
377
  }, [])
418
378
 
419
379
  return (
420
- // <GestureRecognizer
421
- // onSwipeLeft={onSwipeLeft}
422
- // onSwipeRight={onSwipeRight}
423
- // config={swipeConfig}
424
- // style={{ flex: 1 }}
425
- // >
426
380
  <>
427
381
  <View style={styles.header}>
428
382
  <OText style={styles.title}>{t('MY_ORDERS', 'My orders')}</OText>
@@ -631,12 +585,18 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
631
585
  currentTabSelected !== 'logisticOrders' &&
632
586
  (
633
587
  <PreviousOrders
634
- orders={currentOrdersGroup?.orders}
588
+ orders={ordersFormatted}
589
+ navigation={props.navigation}
635
590
  onNavigationRedirect={onNavigationRedirect}
636
591
  getOrderStatus={getOrderStatus}
637
592
  handleClickOrder={handleClickOrder}
638
593
  slaSettingTime={slaSettingTime}
639
594
  currentTabSelected={currentTabSelected}
595
+ appTitle={props.orderDetailsProps?.appTitle}
596
+ actions={props.orderDetailsProps?.actions}
597
+ orderTitle={props.orderDetailsProps?.orderTitle}
598
+ handleChangeOrderStatus={handleChangeOrderStatus}
599
+ handleSendCustomerReview={handleSendCustomerReview}
640
600
  />
641
601
  )}
642
602
  {!logisticOrders?.error?.length &&
@@ -726,7 +686,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
726
686
  )}
727
687
  </ScrollView>
728
688
  </View>
729
- {/* </GestureRecognizer> */}
730
689
 
731
690
  {isBusinessApp && (
732
691
  <NewOrderNotification isBusinessApp={isBusinessApp} />
@@ -754,22 +713,34 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
754
713
  {openSearchModal && (
755
714
  <SearchModalContent>
756
715
  <ModalTitle>{t('SEARCH_ORDERS', 'Search orders')}</ModalTitle>
757
- <OInput
758
- value={search.id}
759
- onChange={(value: any) => setSearch({ ...search, id: value })}
760
- style={styles.inputStyle}
761
- placeholder={t('ORDER_NUMBER', 'Order number')}
762
- autoCorrect={false}
763
- />
716
+ <InputContainer>
717
+ <OInput
718
+ value={search.id}
719
+ onChange={(value: any) => setSearch({ ...search, id: value })}
720
+ style={styles.inputStyle}
721
+ placeholder={t('ORDER_NUMBER', 'Order number')}
722
+ autoCorrect={false}
723
+ />
724
+ <AntDesignIcon
725
+ name='close'
726
+ size={20}
727
+ style={{ position: 'absolute', right: 12, top: 13 }}
728
+ onPress={() => setSearch({ ...search, id: '' })}
729
+ />
730
+ </InputContainer>
764
731
  <OrdersOptionDate
765
732
  {...props}
766
733
  search={search}
767
734
  onSearch={setSearch}
735
+ setOpenedSelect={setOpenedSelect}
736
+ openedSelect={openedSelect}
768
737
  />
769
738
  <OrdersOptionCity
770
739
  {...props}
771
740
  search={search}
772
741
  onSearch={setSearch}
742
+ setOpenedSelect={setOpenedSelect}
743
+ openedSelect={openedSelect}
773
744
  />
774
745
  {isBusinessApp && (
775
746
  <>
@@ -777,21 +748,29 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
777
748
  {...props}
778
749
  search={search}
779
750
  onSearch={setSearch}
751
+ setOpenedSelect={setOpenedSelect}
752
+ openedSelect={openedSelect}
780
753
  />
781
754
  <OrdersOptionDelivery
782
755
  {...props}
783
756
  search={search}
784
757
  onSearch={setSearch}
758
+ setOpenedSelect={setOpenedSelect}
759
+ openedSelect={openedSelect}
785
760
  />
786
761
  <OrdersOptionDriver
787
762
  {...props}
788
763
  search={search}
789
764
  onSearch={setSearch}
765
+ setOpenedSelect={setOpenedSelect}
766
+ openedSelect={openedSelect}
790
767
  />
791
768
  <OrdersOptionPaymethod
792
769
  {...props}
793
770
  search={search}
794
771
  onSearch={setSearch}
772
+ setOpenedSelect={setOpenedSelect}
773
+ openedSelect={openedSelect}
795
774
  />
796
775
  </>
797
776
  )}
@@ -801,13 +780,24 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
801
780
  imgRightSrc={null}
802
781
  style={{
803
782
  borderRadius: 7.6,
804
- marginBottom: 70,
783
+ marginBottom: 10,
805
784
  marginTop: 60,
806
785
  zIndex: 12
807
786
  }}
808
787
  onClick={applyFilters}
809
788
  />
810
-
789
+ <OButton
790
+ text={t('CLEAR_SEARCh', 'Clear search')}
791
+ imgRightSrc={null}
792
+ bgColor='#fff'
793
+ style={{
794
+ borderRadius: 7.6,
795
+ marginBottom: 0,
796
+ marginTop: 0,
797
+ zIndex: 12
798
+ }}
799
+ onClick={handleClearFilters}
800
+ />
811
801
  </SearchModalContent>
812
802
  )}
813
803
  {openSLASettingModal && (
@@ -849,7 +839,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
849
839
  </ScrollView>
850
840
  </FiltersTab>
851
841
  <DeliveryStatusWrapper>
852
- {selectedTabStatus && selectedTabStatus.length > 0 && selectedTabStatus.map((item, i) => (
842
+ {selectedTabStatus && selectedTabStatus.length > 0 && selectedTabStatus.map((item: any, i: number) => (
853
843
  <StatusBlock
854
844
  key={i}
855
845
  item={item}
@@ -149,4 +149,8 @@ export const OverLine = styled.View`
149
149
  `
150
150
  export const Actions = styled.View`
151
151
 
152
- `
152
+ `
153
+
154
+ export const InputContainer = styled.View`
155
+ position: relative;
156
+ `
@@ -10,7 +10,9 @@ export const OrdersOptionBusinessUI = (props: any) => {
10
10
  const {
11
11
  search,
12
12
  onSearch,
13
- businessesList
13
+ businessesList,
14
+ setOpenedSelect,
15
+ openedSelect
14
16
  } = props
15
17
 
16
18
  const theme = useTheme();
@@ -25,6 +27,14 @@ export const OrdersOptionBusinessUI = (props: any) => {
25
27
  setOptionsList(businesses)
26
28
  }, [businessesList?.businesses])
27
29
 
30
+ const handleClear = () => {
31
+ onSearch({ ...search, business: '' })
32
+ }
33
+
34
+ const handleOpenSelect = () => {
35
+ setOpenedSelect('business')
36
+ }
37
+
28
38
  return (
29
39
  <Container isIos={Platform.OS === 'ios'}>
30
40
  <ODropDown
@@ -36,6 +46,10 @@ export const OrdersOptionBusinessUI = (props: any) => {
36
46
  textcolor={theme.colors.unselectText}
37
47
  placeholder={t('SELECT_BUSINESS', 'Select Business')}
38
48
  dropViewMaxHeight={200}
49
+ handleClear={handleClear}
50
+ handleOpenSelect={handleOpenSelect}
51
+ openedSelect={openedSelect}
52
+ selectType='business'
39
53
  />
40
54
  </Container>
41
55
  );
@@ -10,7 +10,9 @@ export const OrdersOptionCityUI = (props: any) => {
10
10
  const {
11
11
  search,
12
12
  onSearch,
13
- allListValues
13
+ allListValues,
14
+ setOpenedSelect,
15
+ openedSelect
14
16
  } = props
15
17
 
16
18
  const theme = useTheme();
@@ -27,6 +29,14 @@ export const OrdersOptionCityUI = (props: any) => {
27
29
  setOptionsList(cities)
28
30
  }, [allListValues?.countries])
29
31
 
32
+ const handleClear = () => {
33
+ onSearch({ ...search, city: '' })
34
+ }
35
+
36
+ const handleOpenSelect = () => {
37
+ setOpenedSelect('city')
38
+ }
39
+
30
40
  return (
31
41
  <Container isIos={Platform.OS === 'ios'}>
32
42
  <ODropDown
@@ -38,6 +48,10 @@ export const OrdersOptionCityUI = (props: any) => {
38
48
  textcolor={theme.colors.unselectText}
39
49
  placeholder={t('SELECT_CITY', 'Select City')}
40
50
  dropViewMaxHeight={200}
51
+ handleClear={handleClear}
52
+ handleOpenSelect={handleOpenSelect}
53
+ openedSelect={openedSelect}
54
+ selectType='city'
41
55
  />
42
56
  </Container>
43
57
  );
@@ -3,12 +3,16 @@ import { useLanguage } from 'ordering-components/native';
3
3
  import { useTheme } from 'styled-components/native';
4
4
  import { Container } from './styles';
5
5
  import ODropDownCalendar from '../shared/ODropDownCalendar';
6
- import { Platform } from 'react-native'
7
-
6
+ import { Button, Platform, Touchable, TouchableOpacity, View } from 'react-native'
7
+ import DoubleClick from 'react-native-double-tap'
8
+ import { OText } from '../shared';
9
+ import DoubleTap from 'react-native-double-tap';
8
10
  export const OrdersOptionDate = (props: any) => {
9
11
  const {
10
12
  search,
11
- onSearch
13
+ onSearch,
14
+ setOpenedSelect,
15
+ openedSelect
12
16
  } = props
13
17
 
14
18
  const theme = useTheme();
@@ -22,18 +26,23 @@ export const OrdersOptionDate = (props: any) => {
22
26
 
23
27
  const handleChangeOption = (option: any) => {
24
28
  if (option === 'calendar') {
25
- onSearch({...search, date: {...search.date, type: option}})
29
+ onSearch({ ...search, date: { ...search.date, type: option } })
26
30
  } else {
27
- onSearch({...search, date: {from: '', to: '', type: option}})
31
+ onSearch({ ...search, date: { from: '', to: '', type: option } })
28
32
  }
29
33
  }
30
34
 
31
35
  const handleChangeDate = (from: any, to: any) => {
32
- onSearch({...search, date: {...search.date, from: from, to: to}})
36
+ onSearch({ ...search, date: { ...search.date, from: from, to: to } })
37
+ }
38
+
39
+ const handleOpenSelect = () => {
40
+ setOpenedSelect('calendar')
33
41
  }
34
42
 
35
43
  return (
36
44
  <Container isIos={Platform.OS === 'ios'}>
45
+
37
46
  <ODropDownCalendar
38
47
  options={optionsList}
39
48
  defaultValue={search.date.type}
@@ -47,6 +56,10 @@ export const OrdersOptionDate = (props: any) => {
47
56
  rangeDate={search.date}
48
57
  handleChangeDate={handleChangeDate}
49
58
  isCalendarAlwaysVisible
59
+ handleClear={() => onSearch({ ...search, date: { from: '', to: '', type: '' } })}
60
+ handleOpenSelect={handleOpenSelect}
61
+ openedSelect={openedSelect}
62
+ selectType='calendar'
50
63
  />
51
64
  </Container>
52
65
  );
@@ -8,7 +8,9 @@ import { Platform } from 'react-native'
8
8
  export const OrdersOptionDelivery = (props: any) => {
9
9
  const {
10
10
  search,
11
- onSearch
11
+ onSearch,
12
+ setOpenedSelect,
13
+ openedSelect
12
14
  } = props
13
15
 
14
16
  const theme = useTheme();
@@ -18,6 +20,14 @@ export const OrdersOptionDelivery = (props: any) => {
18
20
  { value: '2', content: t('PICKUP', 'Pickup') }
19
21
  ]
20
22
 
23
+ const handleClear = () => {
24
+ onSearch({ ...search, delivery_type: '' })
25
+ }
26
+
27
+ const handleOpenSelect = () => {
28
+ setOpenedSelect('delivery_type')
29
+ }
30
+
21
31
  return (
22
32
  <Container isIos={Platform.OS === 'ios'}>
23
33
  <ODropDown
@@ -29,6 +39,10 @@ export const OrdersOptionDelivery = (props: any) => {
29
39
  textcolor={theme.colors.unselectText}
30
40
  placeholder={t('SELECT_DELIVERY_TYPE', 'Select Delivery type')}
31
41
  dropViewMaxHeight={200}
42
+ handleClear={handleClear}
43
+ handleOpenSelect={handleOpenSelect}
44
+ openedSelect={openedSelect}
45
+ selectType='delivery_type'
32
46
  />
33
47
  </Container>
34
48
  );