ordering-ui-react-native 0.21.50 → 0.21.51-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 (198) hide show
  1. package/package.json +8 -8
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessesListing/index.tsx +1 -1
  4. package/src/components/PaymentOptionsWebView/index.tsx +1 -0
  5. package/src/components/StripeMethodForm/index.tsx +6 -4
  6. package/src/components/VerifyPhone/styles.tsx +1 -2
  7. package/src/types/index.tsx +3 -1
  8. package/themes/business/index.tsx +4 -0
  9. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +4 -3
  10. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  11. package/themes/business/src/components/BusinessProductList/ProductList.tsx +72 -27
  12. package/themes/business/src/components/BusinessProductList/index.tsx +57 -25
  13. package/themes/business/src/components/DriverMap/index.tsx +36 -23
  14. package/themes/business/src/components/GoogleMap/index.tsx +15 -8
  15. package/themes/business/src/components/Home/index.tsx +5 -1
  16. package/themes/business/src/components/LanguageSelector/index.tsx +1 -2
  17. package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
  18. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  19. package/themes/business/src/components/MapView/index.tsx +30 -15
  20. package/themes/business/src/components/NewOrderNotification/index.tsx +66 -26
  21. package/themes/business/src/components/OrderDetails/Business.tsx +52 -2
  22. package/themes/business/src/components/OrderDetails/Delivery.tsx +42 -23
  23. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +68 -61
  24. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +40 -20
  25. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +220 -0
  26. package/themes/business/src/components/OrderSummary/index.tsx +240 -76
  27. package/themes/business/src/components/OrdersOption/index.tsx +263 -135
  28. package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
  29. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +37 -40
  30. package/themes/business/src/components/PreviousOrders/OrderList.tsx +1 -1
  31. package/themes/business/src/components/PreviousOrders/index.tsx +5 -3
  32. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  33. package/themes/business/src/components/PrinterEdition/index.tsx +363 -0
  34. package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
  35. package/themes/business/src/components/PrinterSettings/index.tsx +267 -0
  36. package/themes/business/src/components/PrinterSettings/styles.tsx +30 -0
  37. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  38. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  39. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  40. package/themes/business/src/components/Sessions/index.tsx +187 -0
  41. package/themes/business/src/components/Sessions/styles.tsx +20 -0
  42. package/themes/business/src/components/StoresList/index.tsx +5 -3
  43. package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
  44. package/themes/business/src/components/UserProfileForm/index.tsx +106 -54
  45. package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
  46. package/themes/business/src/components/shared/OInput.tsx +2 -0
  47. package/themes/business/src/components/shared/OTextarea.tsx +8 -9
  48. package/themes/business/src/hooks/useLocation.tsx +5 -4
  49. package/themes/business/src/types/index.tsx +23 -5
  50. package/themes/business/src/utils/index.tsx +5 -0
  51. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  52. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  53. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  54. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  55. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  56. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  57. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  58. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  59. package/themes/original/index.tsx +6 -2
  60. package/themes/original/src/components/AddressDetails/index.tsx +20 -10
  61. package/themes/original/src/components/AddressForm/index.tsx +41 -15
  62. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  63. package/themes/original/src/components/AddressList/index.tsx +18 -4
  64. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  65. package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
  66. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  67. package/themes/original/src/components/BusinessBasicInformation/index.tsx +7 -10
  68. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +1 -1
  69. package/themes/original/src/components/BusinessController/index.tsx +18 -10
  70. package/themes/original/src/components/BusinessController/styles.tsx +8 -7
  71. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  72. package/themes/original/src/components/BusinessItemAccordion/index.tsx +4 -3
  73. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  74. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  75. package/themes/original/src/components/BusinessListingSearch/index.tsx +47 -358
  76. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -1
  77. package/themes/original/src/components/BusinessPreorder/index.tsx +4 -3
  78. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  79. package/themes/original/src/components/BusinessProductsList/index.tsx +1 -1
  80. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  81. package/themes/original/src/components/BusinessProductsListing/index.tsx +30 -18
  82. package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
  83. package/themes/original/src/components/BusinessReviews/index.tsx +1 -1
  84. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  85. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  86. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +1 -1
  87. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +7 -7
  88. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +2 -2
  89. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  90. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  91. package/themes/original/src/components/Cart/index.tsx +30 -9
  92. package/themes/original/src/components/CartContent/index.tsx +96 -58
  93. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  94. package/themes/original/src/components/Checkout/index.tsx +144 -62
  95. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  96. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  97. package/themes/original/src/components/DatePicker/index.tsx +18 -2
  98. package/themes/original/src/components/Favorite/index.tsx +9 -9
  99. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  100. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  101. package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -0
  102. package/themes/original/src/components/GPSButton/index.tsx +1 -1
  103. package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
  104. package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
  105. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
  106. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  107. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +2 -2
  108. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  109. package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
  110. package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
  111. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +83 -0
  112. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
  113. package/themes/original/src/components/GoogleMap/index.tsx +39 -18
  114. package/themes/original/src/components/Help/index.tsx +7 -0
  115. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +5 -0
  116. package/themes/original/src/components/HelpGuide/index.tsx +5 -0
  117. package/themes/original/src/components/HelpOrder/index.tsx +5 -0
  118. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
  119. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  120. package/themes/original/src/components/Home/index.tsx +3 -8
  121. package/themes/original/src/components/LoginForm/Otp/index.tsx +4 -16
  122. package/themes/original/src/components/LoginForm/index.tsx +9 -3
  123. package/themes/original/src/components/MessageListing/index.tsx +6 -0
  124. package/themes/original/src/components/Messages/index.tsx +8 -7
  125. package/themes/original/src/components/Messages/styles.tsx +1 -1
  126. package/themes/original/src/components/MomentOption/index.tsx +19 -4
  127. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  128. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
  129. package/themes/original/src/components/MultiCheckout/index.tsx +126 -61
  130. package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
  131. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -15
  132. package/themes/original/src/components/MyOrders/index.tsx +28 -28
  133. package/themes/original/src/components/NavBar/index.tsx +5 -0
  134. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  135. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  136. package/themes/original/src/components/Notifications/index.tsx +9 -8
  137. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  138. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +1 -1
  139. package/themes/original/src/components/OrderDetails/index.tsx +701 -662
  140. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  141. package/themes/original/src/components/OrderProgress/index.tsx +22 -3
  142. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  143. package/themes/original/src/components/OrderSummary/index.tsx +3 -1
  144. package/themes/original/src/components/OrderTypeSelector/index.tsx +10 -6
  145. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  146. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  147. package/themes/original/src/components/OrdersOption/index.tsx +3 -5
  148. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  149. package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
  150. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  151. package/themes/original/src/components/PaymentOptions/index.tsx +47 -4
  152. package/themes/original/src/components/PreviousOrders/index.tsx +2 -0
  153. package/themes/original/src/components/ProductForm/ActionButton.tsx +122 -0
  154. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  155. package/themes/original/src/components/ProductForm/index.tsx +170 -252
  156. package/themes/original/src/components/ProductItemAccordion/index.tsx +55 -44
  157. package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
  158. package/themes/original/src/components/ProductOptionSubOption/index.tsx +112 -91
  159. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  160. package/themes/original/src/components/Promotions/index.tsx +13 -11
  161. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  162. package/themes/original/src/components/ReviewDriver/index.tsx +5 -0
  163. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  164. package/themes/original/src/components/ReviewOrder/index.tsx +5 -0
  165. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  166. package/themes/original/src/components/ReviewProducts/index.tsx +5 -0
  167. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  168. package/themes/original/src/components/ServiceForm/index.tsx +1 -1
  169. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  170. package/themes/original/src/components/Sessions/index.tsx +5 -0
  171. package/themes/original/src/components/SignupForm/index.tsx +67 -59
  172. package/themes/original/src/components/SingleOrderCard/index.tsx +1 -1
  173. package/themes/original/src/components/SingleProductCard/index.tsx +4 -3
  174. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  175. package/themes/original/src/components/StripeCardsList/index.tsx +12 -35
  176. package/themes/original/src/components/StripeElementsForm/index.tsx +79 -59
  177. package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -1
  178. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  179. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +91 -0
  180. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  181. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  182. package/themes/original/src/components/UserFormDetails/index.tsx +100 -86
  183. package/themes/original/src/components/UserFormDetails/styles.tsx +7 -0
  184. package/themes/original/src/components/UserProfile/index.tsx +3 -2
  185. package/themes/original/src/components/UserProfileForm/index.tsx +5 -0
  186. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  187. package/themes/original/src/components/Wallets/index.tsx +7 -4
  188. package/themes/original/src/components/Wallets/styles.tsx +2 -1
  189. package/themes/original/src/components/WebsocketStatus/index.tsx +172 -0
  190. package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
  191. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  192. package/themes/original/src/components/shared/OButton.tsx +5 -5
  193. package/themes/original/src/components/shared/OInput.tsx +1 -4
  194. package/themes/original/src/components/shared/OModal.tsx +12 -14
  195. package/themes/original/src/layouts/Container.tsx +5 -3
  196. package/themes/original/src/types/index.tsx +6 -1
  197. package/themes/original/src/utils/index.tsx +12 -1
  198. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -6,12 +6,14 @@ 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
8
  import AntDesignIcon from 'react-native-vector-icons/AntDesign'
9
+ import RNRestart from 'react-native-restart'
9
10
 
10
11
  import { useTheme } from 'styled-components/native';
11
12
  import { DeviceOrientationMethods } from '../../../../../src/hooks/DeviceOrientation'
12
13
  import { NotificationSetting } from '../../../../../src/components/NotificationSetting'
13
14
  import { NewOrderNotification } from '../NewOrderNotification';
14
15
  import { WebsocketStatus } from '../WebsocketStatus'
16
+ import { _retrieveStoreData, _setStoreData } from '../../providers/StoreUtil'
15
17
 
16
18
  import { OText, OButton, OModal, OInput, OIcon } from '../shared';
17
19
  import { NotFoundSource } from '../NotFoundSource';
@@ -50,8 +52,12 @@ const { useDeviceOrientation, PORTRAIT } = DeviceOrientationMethods
50
52
 
51
53
  const OrdersOptionUI = (props: OrdersOptionParams) => {
52
54
  const {
55
+ navigation,
53
56
  setCurrentFilters,
54
57
  tabs,
58
+ combineTabs,
59
+ setCombineTabsState,
60
+ isNetConnected,
55
61
  currentTabSelected,
56
62
  setCurrentTabSelected,
57
63
  ordersGroup,
@@ -68,13 +74,13 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
68
74
  logisticOrders,
69
75
  loadLogisticOrders,
70
76
  isLogisticActivated,
71
- isAlsea,
72
77
  handleChangeOrderStatus,
73
78
  handleSendCustomerReview
74
79
  } = props;
75
80
 
76
81
  const defaultSearchList = {
77
82
  id: '',
83
+ external_id: '',
78
84
  state: '',
79
85
  city: '',
80
86
  business: '',
@@ -93,33 +99,13 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
93
99
  const [, t] = useLanguage();
94
100
  const [{ parseDate }] = useUtils()
95
101
  const [configState] = useConfig()
102
+
96
103
  const [orientationState] = useDeviceOrientation();
97
104
  const [openSearchModal, setOpenSearchModal] = useState(false)
98
105
  const [openSLASettingModal, setOpenSLASettingModal] = useState(false)
99
106
  const [slaSettingTime, setSlaSettingTime] = useState(6000)
100
107
  const [currentDeliveryType, setCurrentDeliveryType] = useState('Delivery')
101
108
  const [search, setSearch] = useState(defaultSearchList)
102
- const [selectedTabStatus, setSelectedTabStatus] = useState<any>([])
103
- const [openedSelect, setOpenedSelect] = useState('')
104
-
105
- const HEIGHT_SCREEN = orientationState?.dimensions?.height
106
- const IS_PORTRAIT = orientationState.orientation === PORTRAIT
107
-
108
- const preorderTypeList = [
109
- { key: null, name: t('SLA', 'SLA\'s') },
110
- { key: 'in_time', name: t('OK', 'Ok') },
111
- { key: 'at_risk', name: t('AT_RISK', 'At Risk') },
112
- { key: 'delayed', name: t('DELAYED', 'Delayed') }
113
- ]
114
-
115
- const defaultOrderTypes = [
116
- { key: 1, name: t('DELIVERY', 'Delivery') },
117
- { key: 2, name: t('PICKUP', 'Pickup') },
118
- { key: 3, name: t('EAT_IN', 'Eat in') },
119
- { key: 4, name: t('CURBSIDE', 'Curbside') },
120
- { key: 5, name: t('DRIVE_THRU', 'Drive thru') }
121
- ]
122
-
123
109
  const deliveryStatus = [
124
110
  {
125
111
  key: t('OK', 'Ok'),
@@ -143,6 +129,29 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
143
129
  backColor: '#E63757'
144
130
  }
145
131
  ]
132
+ const [selectedTabStatus, setSelectedTabStatus] = useState<any>(deliveryStatus)
133
+ const [openedSelect, setOpenedSelect] = useState('')
134
+ const [lastDateConnection, setLastDateConnection] = useState(null)
135
+ const [internetLoading, setInternetLoading] = useState(!isNetConnected && isNetConnected !== null)
136
+
137
+ const HEIGHT_SCREEN = orientationState?.dimensions?.height
138
+ const IS_PORTRAIT = orientationState.orientation === PORTRAIT
139
+ const showTagsList = !props.isAlsea && !props.isDriverApp && currentTabSelected !== 'logisticOrders'
140
+
141
+ const preorderTypeList = [
142
+ { key: null, name: t('SLA', 'SLA\'s') },
143
+ { key: 'in_time', name: t('OK', 'Ok') },
144
+ { key: 'at_risk', name: t('AT_RISK', 'At Risk') },
145
+ { key: 'delayed', name: t('DELAYED', 'Delayed') }
146
+ ]
147
+
148
+ const defaultOrderTypes = [
149
+ { key: 1, name: t('DELIVERY', 'Delivery') },
150
+ { key: 2, name: t('PICKUP', 'Pickup') },
151
+ { key: 3, name: t('EAT_IN', 'Eat in') },
152
+ { key: 4, name: t('CURBSIDE', 'Curbside') },
153
+ { key: 5, name: t('DRIVE_THRU', 'Drive thru') }
154
+ ]
146
155
 
147
156
  const styles = StyleSheet.create({
148
157
  header: {
@@ -378,28 +387,93 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
378
387
  }
379
388
 
380
389
  useEffect(() => {
381
- scrollRefTab.current?.scrollTo({ animated: true });
382
- scrollListRef.current?.scrollTo({ animated: true });
383
- scrollRef.current?.scrollTo({ y: 0, animated: true });
390
+ scrollRefTab.current?.scrollTo();
391
+ scrollListRef.current?.scrollTo();
392
+ scrollRef.current?.scrollTo();
384
393
  setTags({ values: [] })
385
394
  }, [currentTabSelected])
386
395
 
396
+ useEffect(() => {
397
+ const unsubcribe = navigation.addListener('focus', () => {
398
+ currentTabSelected === 'logisticOrders' && loadLogisticOrders && loadLogisticOrders()
399
+ })
400
+ return unsubcribe
401
+ }, [navigation, loadLogisticOrders])
402
+
387
403
  useEffect(() => {
388
- setSelectedTabStatus(deliveryStatus)
389
- }, [])
404
+ const orderStatuses = ['active', 'pending', 'inProgress', 'completed', 'cancelled']
405
+
406
+ const manageStoragedOrders = async () => {
407
+ setInternetLoading(true)
408
+ let lastConnection = await _retrieveStoreData('last_date_connection');
409
+ let _combineTabs = await _retrieveStoreData('combine_pending_and_progress_orders')
410
+ let ordersStoraged: any = {}
411
+ for (const status of orderStatuses) {
412
+ ordersStoraged[status] = await _retrieveStoreData(`${status}_orders`) ?? []
413
+ }
414
+
415
+ if (_combineTabs || !_combineTabs && combineTabs) {
416
+ _combineTabs && setCombineTabsState(_combineTabs)
417
+ _setStoreData('combine_pending_and_progress_orders', _combineTabs || combineTabs);
418
+ }
419
+
420
+ if (!lastConnection) {
421
+ const formattedDate = parseDate(new Date())
422
+ lastConnection = formattedDate
423
+ _setStoreData('last_date_connection', formattedDate);
424
+ }
425
+
426
+ lastConnection && setLastDateConnection(lastConnection)
427
+
428
+ if (Object.values(ordersStoraged).every((key: any) => Array.isArray(key) && !key?.length)) {
429
+ for (const status of orderStatuses) {
430
+ ordersStoraged[status] = ordersGroup[status]?.orders
431
+ _setStoreData(`${status}_orders`, ordersGroup[status]?.orders);
432
+ }
433
+ }
434
+
435
+ if (Object.values(ordersStoraged).some((key: any) => Array.isArray(key) && key?.length)) {
436
+ let newOrderGroup = {
437
+ ...ordersGroup
438
+ }
439
+ for (const status of orderStatuses) {
440
+ newOrderGroup[status] = {
441
+ ...ordersGroup[status],
442
+ error: null,
443
+ orders: ordersStoraged[status]
444
+ }
445
+ }
446
+ setOrdersGroup(newOrderGroup)
447
+ }
448
+ setInternetLoading(false)
449
+ };
450
+
451
+ if (isNetConnected) {
452
+ _setStoreData('last_date_connection', null);
453
+ _setStoreData('combine_pending_and_progress_orders', null);
454
+ orderStatuses.forEach((key: any) => _setStoreData(`${key}_orders`, null))
455
+ } else if (isNetConnected === false) {
456
+ manageStoragedOrders()
457
+ }
458
+ }, [isNetConnected]);
390
459
 
391
460
  return (
392
461
  <>
393
462
  <View style={styles.header}>
394
463
  <OText style={styles.title}>{t('MY_ORDERS', 'My orders')}</OText>
395
464
  <IconWrapper>
396
- <FeatherIcon
397
- name='refresh-cw'
398
- color={theme.colors.backgroundDark}
399
- size={24}
400
- onPress={() => { currentTabSelected === 'logisticOrders' ? loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true }) }}
401
- style={{ marginRight: 20 }}
402
- />
465
+ <View style={{ marginRight: 10 }}>
466
+ <WebsocketStatus />
467
+ </View>
468
+ {isNetConnected && (
469
+ <FeatherIcon
470
+ name='refresh-cw'
471
+ color={theme.colors.backgroundDark}
472
+ size={24}
473
+ onPress={() => { currentTabSelected === 'logisticOrders' ? loadLogisticOrders && loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true }) }}
474
+ style={{ marginRight: 20 }}
475
+ />
476
+ )}
403
477
  <FontistoIcon
404
478
  name='search'
405
479
  color={theme.colors.backgroundDark}
@@ -408,58 +482,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
408
482
  />
409
483
  </IconWrapper>
410
484
  </View>
411
- <WebsocketStatus />
412
- {configState?.configs?.order_deadlines_enabled?.value === '1' && (
413
- <View style={styles.SLAwrapper}>
414
- <View style={{ flex: 0.5 }}>
415
- <OButton
416
- text={t('SLA_SETTING', 'SLA’s Settings')}
417
- textStyle={{ color: theme.colors.backArrow }}
418
- imgRightSrc={null}
419
- style={{
420
- backgroundColor: theme.colors.inputChat,
421
- borderRadius: 7.6,
422
- zIndex: 10,
423
- borderWidth: 0,
424
- minHeight: 40
425
- }}
426
- onClick={onClickSetting}
427
- />
428
- </View>
429
- <View style={{ width: 10, height: '100%' }} />
430
- <View style={{ flex: 0.5, justifyContent: 'center' }}>
431
- <SelectDropdown
432
- defaultButtonText={t('SLA', 'SLA\'s')}
433
- data={preorderTypeList}
434
- onSelect={(selectedItem, index) => {
435
- onFiltered && onFiltered({ ...search, timeStatus: selectedItem?.key })
436
- }}
437
- buttonTextAfterSelection={(selectedItem, index) => {
438
- return selectedItem.name
439
- }}
440
- rowTextForSelection={(item, index) => {
441
- return item.key
442
- }}
443
- buttonStyle={styles.selectOption}
444
- buttonTextStyle={styles.buttonTextStyle}
445
- renderDropdownIcon={isOpened => {
446
- return <FeatherIcon name={isOpened ? 'chevron-up' : 'chevron-down'} color={'#444'} size={18} />;
447
- }}
448
- dropdownStyle={styles.dropdownStyle}
449
- dropdownOverlayColor='transparent'
450
- rowStyle={styles.rowStyle}
451
- renderCustomizedRowChild={(item, index) => {
452
- return (
453
- <SlaOption>
454
- {index !== 0 && <OrderStatus timeState={item?.key} />}
455
- <View><OText size={14} color={'#748194'} >{item?.name}</OText></View>
456
- </SlaOption>
457
- );
458
- }}
459
- />
460
- </View>
461
- </View>
462
- )}
463
485
  <FiltersTab>
464
486
  <ScrollView
465
487
  ref={scrollRefTab}
@@ -469,7 +491,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
469
491
  nestedScrollEnabled={true}
470
492
  >
471
493
  <TabsContainer>
472
- {(isLogisticActivated && !isBusinessApp) && (
494
+ {(isLogisticActivated && !isBusinessApp && !combineTabs) && (
473
495
  <Pressable
474
496
  style={styles.pressable}
475
497
  onPress={() => setCurrentTabSelected('logisticOrders')}>
@@ -514,7 +536,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
514
536
  </ScrollView>
515
537
  </FiltersTab>
516
538
  <View style={{ flex: 1, minHeight: HEIGHT_SCREEN - 450 }}>
517
- {currentTabSelected !== 'logisticOrders' && !isAlsea && (
539
+ {showTagsList && (
518
540
  <View
519
541
  style={{
520
542
  display: 'flex',
@@ -581,6 +603,22 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
581
603
  </ScrollView>
582
604
  </View>
583
605
  )}
606
+ {isNetConnected === false && lastDateConnection && (
607
+ <View
608
+ style={{
609
+ borderRadius: 8,
610
+ paddingVertical: 3,
611
+ backgroundColor: theme.colors.danger500,
612
+ marginBottom: 10
613
+ }}
614
+ >
615
+ <OText
616
+ style={{ color: 'white', textAlign: 'center' }}
617
+ >
618
+ {`${t('LAST_UPDATE', 'Last Update')}: ${lastDateConnection}`}
619
+ </OText>
620
+ </View>
621
+ )}
584
622
  <ScrollView
585
623
  ref={scrollListRef}
586
624
  showsVerticalScrollIndicator={false}
@@ -589,7 +627,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
589
627
  refreshControl={
590
628
  <RefreshControl
591
629
  refreshing={refreshing}
592
- onRefresh={() => { currentTabSelected === 'logisticOrders' ? loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true }) }}
630
+ onRefresh={() => { isNetConnected && (currentTabSelected === 'logisticOrders' ? loadLogisticOrders && loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true })) }}
593
631
  />
594
632
  }
595
633
  >
@@ -626,42 +664,48 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
626
664
  />
627
665
  )
628
666
  }
629
- {((currentOrdersGroup?.loading ||
630
- currentOrdersGroup?.pagination?.total === null) ||
631
- (logisticOrders?.loading)) &&
667
+ {(
632
668
  (
633
- <>
634
- <View>
635
- {[...Array(5)].map((_, i) => (
636
- <Placeholder key={i} Animation={Fade}>
637
- <View
638
- style={{
639
- width: '100%',
640
- flexDirection: 'row',
641
- marginBottom: 10,
642
- }}>
643
- <PlaceholderLine
644
- width={IS_PORTRAIT ? 22 : 11}
645
- height={74}
646
- style={{
647
- marginRight: 20,
648
- marginBottom: 20,
649
- borderRadius: 7.6,
650
- }}
651
- />
652
- <Placeholder>
653
- <PlaceholderLine width={30} style={{ marginTop: 5 }} />
654
- <PlaceholderLine width={50} />
655
- <PlaceholderLine width={20} />
656
- </Placeholder>
657
- </View>
669
+ (
670
+ currentOrdersGroup?.loading ||
671
+ (currentOrdersGroup?.pagination?.total === null && isNetConnected) ||
672
+ logisticOrders?.loading
673
+ ) &&
674
+ !currentOrdersGroup?.error?.length &&
675
+ !currentOrdersGroup?.orders?.length
676
+ ) || internetLoading
677
+ ) && (
678
+ <View>
679
+ {[...Array(5)].map((_, i) => (
680
+ <Placeholder key={i} Animation={Fade}>
681
+ <View
682
+ style={{
683
+ width: '100%',
684
+ flexDirection: 'row',
685
+ marginBottom: 10,
686
+ }}>
687
+ <PlaceholderLine
688
+ width={IS_PORTRAIT ? 22 : 11}
689
+ height={74}
690
+ style={{
691
+ marginRight: 20,
692
+ marginBottom: 20,
693
+ borderRadius: 7.6,
694
+ }}
695
+ />
696
+ <Placeholder>
697
+ <PlaceholderLine width={30} style={{ marginTop: 5 }} />
698
+ <PlaceholderLine width={50} />
699
+ <PlaceholderLine width={20} />
658
700
  </Placeholder>
659
- ))}
660
- </View>
661
- </>
662
- )}
701
+ </View>
702
+ </Placeholder>
703
+ ))}
704
+ </View>
705
+ )}
663
706
 
664
- {!currentOrdersGroup?.error?.length &&
707
+ {isNetConnected &&
708
+ !currentOrdersGroup?.error?.length &&
665
709
  !currentOrdersGroup?.loading &&
666
710
  currentOrdersGroup?.pagination?.totalPages &&
667
711
  currentOrdersGroup?.pagination?.currentPage < currentOrdersGroup?.pagination?.totalPages &&
@@ -678,7 +722,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
678
722
  />
679
723
  )}
680
724
 
681
- {((!currentOrdersGroup?.loading &&
725
+ {!internetLoading &&
726
+ ((!currentOrdersGroup?.loading &&
682
727
  (currentOrdersGroup?.error?.length ||
683
728
  currentOrdersGroup?.orders?.length === 0)) ||
684
729
  (currentTabSelected === 'logisticOrders' &&
@@ -687,6 +732,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
687
732
  (
688
733
  <NotFoundSource
689
734
  content={
735
+ !isNetConnected ? t('NETWORK_ERROR', 'Network Error') :
690
736
  ((currentTabSelected !== 'logisticOrders' && !currentOrdersGroup?.error?.length) ||
691
737
  (currentTabSelected === 'logisticOrders' && (!logisticOrders?.error?.length || (logisticOrders?.orders?.length > 0 && !logisticOrders?.orders?.some(order => !order?.expired)))))
692
738
  ? t('NO_RESULTS_FOUND', 'Sorry, no results found')
@@ -697,6 +743,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
697
743
  }
698
744
  image={theme.images.general.notFound}
699
745
  conditioned={false}
746
+ btnTitle={!isNetConnected && t('REFRESH', 'Refresh')}
747
+ onClickButton={!isNetConnected && (() => RNRestart.Restart())}
700
748
  />
701
749
  )}
702
750
  </ScrollView>
@@ -717,6 +765,41 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
717
765
  {openSearchModal && (
718
766
  <SearchModalContent>
719
767
  <ModalTitle>{t('SEARCH_ORDERS', 'Search orders')}</ModalTitle>
768
+ {configState?.configs?.order_deadlines_enabled?.value === '1' && (
769
+ <InputContainer style={{ marginBottom: 24 }}>
770
+ <SelectDropdown
771
+ defaultButtonText={search?.timeStatus
772
+ ? preorderTypeList.find(type => type.key === search?.timeStatus)?.name
773
+ : t('SLA', 'SLA\'s')}
774
+ data={preorderTypeList}
775
+ onSelect={(selectedItem, index) => {
776
+ setSearch({ ...search, timeStatus: selectedItem?.key })
777
+ }}
778
+ buttonTextAfterSelection={(selectedItem, index) => {
779
+ return selectedItem.name
780
+ }}
781
+ rowTextForSelection={(item, index) => {
782
+ return item.key
783
+ }}
784
+ buttonStyle={styles.selectOption}
785
+ buttonTextStyle={styles.buttonTextStyle}
786
+ renderDropdownIcon={isOpened => {
787
+ return <FeatherIcon name={isOpened ? 'chevron-up' : 'chevron-down'} color={'#444'} size={18} />;
788
+ }}
789
+ dropdownStyle={styles.dropdownStyle}
790
+ dropdownOverlayColor='transparent'
791
+ rowStyle={styles.rowStyle}
792
+ renderCustomizedRowChild={(item, index) => {
793
+ return (
794
+ <SlaOption>
795
+ {index !== 0 && <OrderStatus timeState={item?.key} />}
796
+ <View><OText size={14} color={'#748194'} >{item?.name}</OText></View>
797
+ </SlaOption>
798
+ );
799
+ }}
800
+ />
801
+ </InputContainer>
802
+ )}
720
803
  <InputContainer>
721
804
  <OInput
722
805
  value={search.id}
@@ -732,6 +815,21 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
732
815
  onPress={() => setSearch({ ...search, id: '' })}
733
816
  />
734
817
  </InputContainer>
818
+ <InputContainer>
819
+ <OInput
820
+ value={search.external_id}
821
+ onChange={(value: any) => setSearch({ ...search, external_id: value })}
822
+ style={styles.inputStyle}
823
+ placeholder={t('EXTERNAL_ID', 'External id')}
824
+ autoCorrect={false}
825
+ />
826
+ <AntDesignIcon
827
+ name='close'
828
+ size={20}
829
+ style={{ position: 'absolute', right: 12, top: 13 }}
830
+ onPress={() => setSearch({ ...search, external_id: '' })}
831
+ />
832
+ </InputContainer>
735
833
  <OrdersOptionDate
736
834
  {...props}
737
835
  search={search}
@@ -928,12 +1026,18 @@ export const Timer = () => {
928
1026
 
929
1027
  export const OrdersOption = (props: OrdersOptionParams) => {
930
1028
  const [, t] = useLanguage();
1029
+ const [configState] = useConfig()
931
1030
  const [checkNotificationStatus, setCheckNotificationStatus] = useState({ open: false, checked: false })
1031
+
1032
+ const getCombineTabsStoraged = async () => await _retrieveStoreData('combine_pending_and_progress_orders')
1033
+ const combineTabs = configState?.configs?.combine_pending_and_progress_orders?.value === '1' || getCombineTabsStoraged()
1034
+
932
1035
  const ordersProps = {
933
1036
  ...props,
934
1037
  UIComponent: OrdersOptionUI,
935
1038
  useDefualtSessionManager: true,
936
1039
  asDashboard: true,
1040
+ combineTabs,
937
1041
  isIos: Platform.OS === 'ios',
938
1042
  orderStatus: [
939
1043
  { key: 0, text: t('PENDING', 'Pending') },
@@ -1015,32 +1119,52 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1015
1119
  text: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
1016
1120
  }
1017
1121
  ],
1018
- tabs: [
1122
+ tabs: combineTabs ? [
1019
1123
  {
1020
1124
  key: 0,
1021
- text: t('PENDING', 'Pending'),
1022
- tags: props?.orderGroupStatusCustom?.pending ?? [0, 13],
1023
- title: 'pending'
1125
+ text: t('ACTIVE', 'Active'),
1126
+ tags: props?.orderGroupStatusCustom?.active ?? [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23],
1127
+ title: 'active',
1024
1128
  },
1025
1129
  {
1026
1130
  key: 1,
1027
- text: t('IN_PROGRESS', 'In Progress'),
1028
- tags: props?.orderGroupStatusCustom?.inProgress ?? [3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23],
1029
- title: 'inProgress',
1030
- },
1031
- {
1032
- key: 2,
1033
1131
  text: t('COMPLETED', 'Completed'),
1034
1132
  tags: props?.orderGroupStatusCustom?.completed ?? [1, 11, 15],
1035
1133
  title: 'completed',
1036
1134
  },
1037
1135
  {
1038
- key: 3,
1136
+ key: 2,
1039
1137
  text: t('CANCELLED', 'Cancelled'),
1040
1138
  tags: props?.orderGroupStatusCustom?.cancelled ?? [2, 5, 6, 10, 12, 16, 17],
1041
1139
  title: 'cancelled',
1042
1140
  },
1043
- ]
1141
+ ] :
1142
+ [
1143
+ {
1144
+ key: 0,
1145
+ text: t('PENDING', 'Pending'),
1146
+ tags: props?.orderGroupStatusCustom?.pending ?? [0, 13],
1147
+ title: 'pending'
1148
+ },
1149
+ {
1150
+ key: 1,
1151
+ text: t('IN_PROGRESS', 'In Progress'),
1152
+ tags: props?.orderGroupStatusCustom?.inProgress ?? [3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23],
1153
+ title: 'inProgress',
1154
+ },
1155
+ {
1156
+ key: 2,
1157
+ text: t('COMPLETED', 'Completed'),
1158
+ tags: props?.orderGroupStatusCustom?.completed ?? [1, 11, 15],
1159
+ title: 'completed',
1160
+ },
1161
+ {
1162
+ key: 3,
1163
+ text: t('CANCELLED', 'Cancelled'),
1164
+ tags: props?.orderGroupStatusCustom?.cancelled ?? [2, 5, 6, 10, 12, 16, 17],
1165
+ title: 'cancelled',
1166
+ },
1167
+ ]
1044
1168
  };
1045
1169
 
1046
1170
  return (<>
@@ -1051,3 +1175,7 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1051
1175
  )}
1052
1176
  </>);
1053
1177
  };
1178
+
1179
+ OrdersOption.defaultProps = {
1180
+ isNetConnected: true
1181
+ }
@@ -6,7 +6,7 @@ import { useTheme } from 'styled-components/native';
6
6
  import { Wrapper } from './styles';
7
7
  import { OText, OIcon } from '../shared';
8
8
  import { PhoneInputParams } from '../../types';
9
- import { transformCountryCode } from '../../utils';
9
+ import { transformCountryCode, findExitingCode } from '../../utils';
10
10
 
11
11
  export const PhoneInputNumber = (props: PhoneInputParams) => {
12
12
  const {
@@ -97,10 +97,13 @@ export const PhoneInputNumber = (props: PhoneInputParams) => {
97
97
  containerStyle={{ width: '100%' }}
98
98
  ref={phoneInput}
99
99
  defaultValue={userphoneNumber || defaultValue}
100
- defaultCode={
101
- defaultCode
102
- ? transformCountryCode(defaultCode)
103
- : configs?.default_country_code?.value
100
+ defaultCode={defaultCode ?
101
+ !isNaN(defaultCode)
102
+ ? transformCountryCode(defaultCode)
103
+ : findExitingCode(defaultCode)
104
+ : !isNaN((configs?.default_country_code?.value || '')?.replace(/\+/g, ''))
105
+ ? transformCountryCode((configs?.default_country_code?.value || '')?.replace(/\+/g, ''))
106
+ : findExitingCode(configs?.default_country_code?.value?.toUpperCase())
104
107
  }
105
108
  onChangeFormattedText={(text: string) => handleChangeNumber(text)}
106
109
  countryPickerProps={{