ordering-ui-react-native 0.21.52 → 0.21.53-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 (166) 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/BusinessProductList/ProductList.tsx +72 -27
  11. package/themes/business/src/components/BusinessProductList/index.tsx +57 -25
  12. package/themes/business/src/components/DriverMap/index.tsx +36 -23
  13. package/themes/business/src/components/GoogleMap/index.tsx +15 -8
  14. package/themes/business/src/components/Home/index.tsx +5 -1
  15. package/themes/business/src/components/LanguageSelector/index.tsx +1 -2
  16. package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
  17. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  18. package/themes/business/src/components/MapView/index.tsx +30 -15
  19. package/themes/business/src/components/NewOrderNotification/index.tsx +66 -26
  20. package/themes/business/src/components/OrderDetails/Business.tsx +52 -2
  21. package/themes/business/src/components/OrderDetails/Delivery.tsx +42 -23
  22. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +68 -61
  23. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +36 -22
  24. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +220 -0
  25. package/themes/business/src/components/OrderSummary/index.tsx +240 -76
  26. package/themes/business/src/components/OrdersOption/index.tsx +245 -112
  27. package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
  28. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +29 -19
  29. package/themes/business/src/components/PreviousOrders/index.tsx +5 -3
  30. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  31. package/themes/business/src/components/PrinterEdition/index.tsx +363 -0
  32. package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
  33. package/themes/business/src/components/PrinterSettings/index.tsx +267 -0
  34. package/themes/business/src/components/PrinterSettings/styles.tsx +30 -0
  35. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  36. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  37. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  38. package/themes/business/src/components/Sessions/index.tsx +187 -0
  39. package/themes/business/src/components/Sessions/styles.tsx +20 -0
  40. package/themes/business/src/components/StoresList/index.tsx +4 -3
  41. package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
  42. package/themes/business/src/components/UserProfileForm/index.tsx +106 -54
  43. package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
  44. package/themes/business/src/components/shared/OInput.tsx +2 -0
  45. package/themes/business/src/components/shared/OTextarea.tsx +8 -9
  46. package/themes/business/src/hooks/useLocation.tsx +5 -4
  47. package/themes/business/src/types/index.tsx +22 -5
  48. package/themes/business/src/utils/index.tsx +5 -0
  49. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  50. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  51. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  52. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  53. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  54. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  55. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  56. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  57. package/themes/original/index.tsx +6 -2
  58. package/themes/original/src/components/AddressDetails/index.tsx +20 -10
  59. package/themes/original/src/components/AddressForm/index.tsx +32 -17
  60. package/themes/original/src/components/AddressList/index.tsx +8 -7
  61. package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
  62. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  63. package/themes/original/src/components/BusinessBasicInformation/index.tsx +6 -9
  64. package/themes/original/src/components/BusinessController/index.tsx +18 -10
  65. package/themes/original/src/components/BusinessController/styles.tsx +8 -7
  66. package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -7
  67. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +316 -0
  68. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +94 -0
  69. package/themes/original/src/components/BusinessListingSearch/index.tsx +48 -359
  70. package/themes/original/src/components/BusinessPreorder/index.tsx +20 -16
  71. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +5 -5
  72. package/themes/original/src/components/BusinessProductsList/index.tsx +3 -3
  73. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  74. package/themes/original/src/components/BusinessProductsListing/index.tsx +29 -14
  75. package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
  76. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  77. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +1 -1
  78. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  79. package/themes/original/src/components/Cart/index.tsx +26 -9
  80. package/themes/original/src/components/CartContent/index.tsx +60 -45
  81. package/themes/original/src/components/Checkout/index.tsx +106 -64
  82. package/themes/original/src/components/CitiesControl/index.tsx +0 -3
  83. package/themes/original/src/components/CouponControl/index.tsx +1 -3
  84. package/themes/original/src/components/DatePicker/index.tsx +18 -2
  85. package/themes/original/src/components/DriverTips/index.tsx +1 -3
  86. package/themes/original/src/components/Favorite/index.tsx +1 -5
  87. package/themes/original/src/components/FavoriteList/index.tsx +0 -1
  88. package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -7
  89. package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
  90. package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
  91. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
  92. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
  93. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
  94. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +9 -11
  95. package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
  96. package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
  97. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +82 -0
  98. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
  99. package/themes/original/src/components/GoogleMap/index.tsx +39 -18
  100. package/themes/original/src/components/Help/index.tsx +2 -0
  101. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
  102. package/themes/original/src/components/Home/index.tsx +2 -10
  103. package/themes/original/src/components/LoginForm/Otp/index.tsx +4 -19
  104. package/themes/original/src/components/LoginForm/index.tsx +4 -7
  105. package/themes/original/src/components/MessageListing/index.tsx +1 -0
  106. package/themes/original/src/components/Messages/index.tsx +8 -7
  107. package/themes/original/src/components/MomentOption/index.tsx +13 -2
  108. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
  109. package/themes/original/src/components/MultiCheckout/index.tsx +124 -63
  110. package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
  111. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -14
  112. package/themes/original/src/components/MyOrders/index.tsx +21 -26
  113. package/themes/original/src/components/NavBar/index.tsx +4 -2
  114. package/themes/original/src/components/NetworkError/index.tsx +2 -8
  115. package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
  116. package/themes/original/src/components/Notifications/index.tsx +2 -4
  117. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +5 -7
  118. package/themes/original/src/components/OrderDetails/index.tsx +5 -7
  119. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  120. package/themes/original/src/components/OrderProgress/index.tsx +22 -3
  121. package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -6
  122. package/themes/original/src/components/OrdersOption/index.tsx +2 -4
  123. package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
  124. package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
  125. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  126. package/themes/original/src/components/PaymentOptions/index.tsx +47 -6
  127. package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
  128. package/themes/original/src/components/PreviousOrders/index.tsx +1 -2
  129. package/themes/original/src/components/ProductForm/ActionButton.tsx +16 -19
  130. package/themes/original/src/components/ProductForm/index.tsx +123 -112
  131. package/themes/original/src/components/ProductItemAccordion/index.tsx +55 -49
  132. package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
  133. package/themes/original/src/components/ProductOptionSubOption/index.tsx +112 -91
  134. package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
  135. package/themes/original/src/components/Promotions/index.tsx +6 -9
  136. package/themes/original/src/components/ReviewDriver/index.tsx +1 -1
  137. package/themes/original/src/components/ReviewOrder/index.tsx +2 -2
  138. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  139. package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
  140. package/themes/original/src/components/ServiceForm/index.tsx +52 -54
  141. package/themes/original/src/components/Sessions/index.tsx +3 -3
  142. package/themes/original/src/components/SignupForm/index.tsx +65 -67
  143. package/themes/original/src/components/SingleOrderCard/index.tsx +1 -2
  144. package/themes/original/src/components/SingleProductCard/index.tsx +5 -6
  145. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  146. package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
  147. package/themes/original/src/components/StripeCardsList/index.tsx +12 -35
  148. package/themes/original/src/components/StripeElementsForm/index.tsx +78 -59
  149. package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -1
  150. package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
  151. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +10 -7
  152. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +8 -3
  153. package/themes/original/src/components/UserFormDetails/index.tsx +88 -91
  154. package/themes/original/src/components/UserFormDetails/styles.tsx +7 -0
  155. package/themes/original/src/components/UserProfile/index.tsx +11 -2
  156. package/themes/original/src/components/Wallets/index.tsx +7 -4
  157. package/themes/original/src/components/Wallets/styles.tsx +1 -1
  158. package/themes/original/src/components/WebsocketStatus/index.tsx +169 -0
  159. package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
  160. package/themes/original/src/components/shared/OAlert.tsx +2 -1
  161. package/themes/original/src/components/shared/OButton.tsx +8 -7
  162. package/themes/original/src/components/shared/OInput.tsx +1 -4
  163. package/themes/original/src/layouts/Container.tsx +4 -2
  164. package/themes/original/src/types/index.tsx +5 -1
  165. package/themes/original/src/utils/index.tsx +12 -1
  166. 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,6 +99,7 @@ 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)
@@ -124,9 +131,12 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
124
131
  ]
125
132
  const [selectedTabStatus, setSelectedTabStatus] = useState<any>(deliveryStatus)
126
133
  const [openedSelect, setOpenedSelect] = useState('')
134
+ const [lastDateConnection, setLastDateConnection] = useState(null)
135
+ const [internetLoading, setInternetLoading] = useState(!isNetConnected && isNetConnected !== null)
127
136
 
128
137
  const HEIGHT_SCREEN = orientationState?.dimensions?.height
129
138
  const IS_PORTRAIT = orientationState.orientation === PORTRAIT
139
+ const showTagsList = !props.isAlsea && !props.isDriverApp && currentTabSelected !== 'logisticOrders'
130
140
 
131
141
  const preorderTypeList = [
132
142
  { key: null, name: t('SLA', 'SLA\'s') },
@@ -377,24 +387,93 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
377
387
  }
378
388
 
379
389
  useEffect(() => {
380
- scrollRefTab.current?.scrollTo({ animated: true });
381
- scrollListRef.current?.scrollTo({ animated: true });
382
- scrollRef.current?.scrollTo({ y: 0, animated: true });
390
+ scrollRefTab.current?.scrollTo();
391
+ scrollListRef.current?.scrollTo();
392
+ scrollRef.current?.scrollTo();
383
393
  setTags({ values: [] })
384
394
  }, [currentTabSelected])
385
395
 
396
+ useEffect(() => {
397
+ const unsubcribe = navigation.addListener('focus', () => {
398
+ currentTabSelected === 'logisticOrders' && loadLogisticOrders && loadLogisticOrders()
399
+ })
400
+ return unsubcribe
401
+ }, [navigation, loadLogisticOrders])
402
+
403
+ useEffect(() => {
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]);
459
+
386
460
  return (
387
461
  <>
388
462
  <View style={styles.header}>
389
463
  <OText style={styles.title}>{t('MY_ORDERS', 'My orders')}</OText>
390
464
  <IconWrapper>
391
- <FeatherIcon
392
- name='refresh-cw'
393
- color={theme.colors.backgroundDark}
394
- size={24}
395
- onPress={() => { currentTabSelected === 'logisticOrders' ? loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true }) }}
396
- style={{ marginRight: 20 }}
397
- />
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
+ )}
398
477
  <FontistoIcon
399
478
  name='search'
400
479
  color={theme.colors.backgroundDark}
@@ -403,58 +482,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
403
482
  />
404
483
  </IconWrapper>
405
484
  </View>
406
- <WebsocketStatus />
407
- {configState?.configs?.order_deadlines_enabled?.value === '1' && (
408
- <View style={styles.SLAwrapper}>
409
- <View style={{ flex: 0.5 }}>
410
- <OButton
411
- text={t('SLA_SETTING', 'SLA’s Settings')}
412
- textStyle={{ color: theme.colors.backArrow }}
413
- imgRightSrc={null}
414
- style={{
415
- backgroundColor: theme.colors.inputChat,
416
- borderRadius: 7.6,
417
- zIndex: 10,
418
- borderWidth: 0,
419
- minHeight: 40
420
- }}
421
- onClick={onClickSetting}
422
- />
423
- </View>
424
- <View style={{ width: 10, height: '100%' }} />
425
- <View style={{ flex: 0.5, justifyContent: 'center' }}>
426
- <SelectDropdown
427
- defaultButtonText={t('SLA', 'SLA\'s')}
428
- data={preorderTypeList}
429
- onSelect={(selectedItem, index) => {
430
- onFiltered && onFiltered({ ...search, timeStatus: selectedItem?.key })
431
- }}
432
- buttonTextAfterSelection={(selectedItem, index) => {
433
- return selectedItem.name
434
- }}
435
- rowTextForSelection={(item, index) => {
436
- return item.key
437
- }}
438
- buttonStyle={styles.selectOption}
439
- buttonTextStyle={styles.buttonTextStyle}
440
- renderDropdownIcon={isOpened => {
441
- return <FeatherIcon name={isOpened ? 'chevron-up' : 'chevron-down'} color={'#444'} size={18} />;
442
- }}
443
- dropdownStyle={styles.dropdownStyle}
444
- dropdownOverlayColor='transparent'
445
- rowStyle={styles.rowStyle}
446
- renderCustomizedRowChild={(item, index) => {
447
- return (
448
- <SlaOption>
449
- {index !== 0 && <OrderStatus timeState={item?.key} />}
450
- <View><OText size={14} color={'#748194'} >{item?.name}</OText></View>
451
- </SlaOption>
452
- );
453
- }}
454
- />
455
- </View>
456
- </View>
457
- )}
458
485
  <FiltersTab>
459
486
  <ScrollView
460
487
  ref={scrollRefTab}
@@ -464,7 +491,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
464
491
  nestedScrollEnabled={true}
465
492
  >
466
493
  <TabsContainer>
467
- {(isLogisticActivated && !isBusinessApp) && (
494
+ {(isLogisticActivated && !isBusinessApp && !combineTabs) && (
468
495
  <Pressable
469
496
  style={styles.pressable}
470
497
  onPress={() => setCurrentTabSelected('logisticOrders')}>
@@ -509,7 +536,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
509
536
  </ScrollView>
510
537
  </FiltersTab>
511
538
  <View style={{ flex: 1, minHeight: HEIGHT_SCREEN - 450 }}>
512
- {currentTabSelected !== 'logisticOrders' && !isAlsea && (
539
+ {showTagsList && (
513
540
  <View
514
541
  style={{
515
542
  display: 'flex',
@@ -576,6 +603,22 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
576
603
  </ScrollView>
577
604
  </View>
578
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
+ )}
579
622
  <ScrollView
580
623
  ref={scrollListRef}
581
624
  showsVerticalScrollIndicator={false}
@@ -584,7 +627,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
584
627
  refreshControl={
585
628
  <RefreshControl
586
629
  refreshing={refreshing}
587
- onRefresh={() => { currentTabSelected === 'logisticOrders' ? loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true }) }}
630
+ onRefresh={() => { isNetConnected && (currentTabSelected === 'logisticOrders' ? loadLogisticOrders && loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true })) }}
588
631
  />
589
632
  }
590
633
  >
@@ -621,42 +664,48 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
621
664
  />
622
665
  )
623
666
  }
624
- {((currentOrdersGroup?.loading ||
625
- currentOrdersGroup?.pagination?.total === null) ||
626
- (logisticOrders?.loading)) &&
667
+ {(
627
668
  (
628
- <>
629
- <View>
630
- {[...Array(5)].map((_, i) => (
631
- <Placeholder key={i} Animation={Fade}>
632
- <View
633
- style={{
634
- width: '100%',
635
- flexDirection: 'row',
636
- marginBottom: 10,
637
- }}>
638
- <PlaceholderLine
639
- width={IS_PORTRAIT ? 22 : 11}
640
- height={74}
641
- style={{
642
- marginRight: 20,
643
- marginBottom: 20,
644
- borderRadius: 7.6,
645
- }}
646
- />
647
- <Placeholder>
648
- <PlaceholderLine width={30} style={{ marginTop: 5 }} />
649
- <PlaceholderLine width={50} />
650
- <PlaceholderLine width={20} />
651
- </Placeholder>
652
- </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} />
653
700
  </Placeholder>
654
- ))}
655
- </View>
656
- </>
657
- )}
701
+ </View>
702
+ </Placeholder>
703
+ ))}
704
+ </View>
705
+ )}
658
706
 
659
- {!currentOrdersGroup?.error?.length &&
707
+ {isNetConnected &&
708
+ !currentOrdersGroup?.error?.length &&
660
709
  !currentOrdersGroup?.loading &&
661
710
  currentOrdersGroup?.pagination?.totalPages &&
662
711
  currentOrdersGroup?.pagination?.currentPage < currentOrdersGroup?.pagination?.totalPages &&
@@ -673,7 +722,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
673
722
  />
674
723
  )}
675
724
 
676
- {((!currentOrdersGroup?.loading &&
725
+ {!internetLoading &&
726
+ ((!currentOrdersGroup?.loading &&
677
727
  (currentOrdersGroup?.error?.length ||
678
728
  currentOrdersGroup?.orders?.length === 0)) ||
679
729
  (currentTabSelected === 'logisticOrders' &&
@@ -682,6 +732,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
682
732
  (
683
733
  <NotFoundSource
684
734
  content={
735
+ !isNetConnected ? t('NETWORK_ERROR', 'Network Error') :
685
736
  ((currentTabSelected !== 'logisticOrders' && !currentOrdersGroup?.error?.length) ||
686
737
  (currentTabSelected === 'logisticOrders' && (!logisticOrders?.error?.length || (logisticOrders?.orders?.length > 0 && !logisticOrders?.orders?.some(order => !order?.expired)))))
687
738
  ? t('NO_RESULTS_FOUND', 'Sorry, no results found')
@@ -692,6 +743,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
692
743
  }
693
744
  image={theme.images.general.notFound}
694
745
  conditioned={false}
746
+ btnTitle={!isNetConnected && t('REFRESH', 'Refresh')}
747
+ onClickButton={!isNetConnected && (() => RNRestart.Restart())}
695
748
  />
696
749
  )}
697
750
  </ScrollView>
@@ -712,6 +765,41 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
712
765
  {openSearchModal && (
713
766
  <SearchModalContent>
714
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
+ )}
715
803
  <InputContainer>
716
804
  <OInput
717
805
  value={search.id}
@@ -727,6 +815,21 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
727
815
  onPress={() => setSearch({ ...search, id: '' })}
728
816
  />
729
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>
730
833
  <OrdersOptionDate
731
834
  {...props}
732
835
  search={search}
@@ -923,12 +1026,18 @@ export const Timer = () => {
923
1026
 
924
1027
  export const OrdersOption = (props: OrdersOptionParams) => {
925
1028
  const [, t] = useLanguage();
1029
+ const [configState] = useConfig()
926
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
+
927
1035
  const ordersProps = {
928
1036
  ...props,
929
1037
  UIComponent: OrdersOptionUI,
930
1038
  useDefualtSessionManager: true,
931
1039
  asDashboard: true,
1040
+ combineTabs,
932
1041
  isIos: Platform.OS === 'ios',
933
1042
  orderStatus: [
934
1043
  { key: 0, text: t('PENDING', 'Pending') },
@@ -1010,32 +1119,52 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1010
1119
  text: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
1011
1120
  }
1012
1121
  ],
1013
- tabs: [
1122
+ tabs: combineTabs ? [
1014
1123
  {
1015
1124
  key: 0,
1016
- text: t('PENDING', 'Pending'),
1017
- tags: props?.orderGroupStatusCustom?.pending ?? [0, 13],
1018
- 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',
1019
1128
  },
1020
1129
  {
1021
1130
  key: 1,
1022
- text: t('IN_PROGRESS', 'In Progress'),
1023
- tags: props?.orderGroupStatusCustom?.inProgress ?? [3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23],
1024
- title: 'inProgress',
1025
- },
1026
- {
1027
- key: 2,
1028
1131
  text: t('COMPLETED', 'Completed'),
1029
1132
  tags: props?.orderGroupStatusCustom?.completed ?? [1, 11, 15],
1030
1133
  title: 'completed',
1031
1134
  },
1032
1135
  {
1033
- key: 3,
1136
+ key: 2,
1034
1137
  text: t('CANCELLED', 'Cancelled'),
1035
1138
  tags: props?.orderGroupStatusCustom?.cancelled ?? [2, 5, 6, 10, 12, 16, 17],
1036
1139
  title: 'cancelled',
1037
1140
  },
1038
- ]
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
+ ]
1039
1168
  };
1040
1169
 
1041
1170
  return (<>
@@ -1046,3 +1175,7 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1046
1175
  )}
1047
1176
  </>);
1048
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={{