ordering-ui-react-native 0.21.68 → 0.21.69-release

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/package.json +6 -7
  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 +9 -6
  10. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
  11. package/themes/business/src/components/BusinessProductList/index.tsx +2 -1
  12. package/themes/business/src/components/Chat/index.tsx +3 -1
  13. package/themes/business/src/components/DriverMap/index.tsx +34 -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 +2 -3
  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 +36 -17
  20. package/themes/business/src/components/NewOrderNotification/index.tsx +74 -24
  21. package/themes/business/src/components/OrderDetails/Business.tsx +63 -7
  22. package/themes/business/src/components/OrderDetails/Delivery.tsx +35 -20
  23. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +110 -40
  24. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +61 -35
  25. package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
  26. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +220 -0
  27. package/themes/business/src/components/OrderSummary/index.tsx +240 -76
  28. package/themes/business/src/components/OrdersListManager/index.tsx +9 -1
  29. package/themes/business/src/components/OrdersOption/index.tsx +250 -127
  30. package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
  31. package/themes/business/src/components/PreviousMessages/index.tsx +12 -0
  32. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +28 -18
  33. package/themes/business/src/components/PreviousOrders/index.tsx +5 -3
  34. package/themes/business/src/components/PrinterEdition/index.tsx +363 -0
  35. package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
  36. package/themes/business/src/components/PrinterSettings/index.tsx +267 -0
  37. package/themes/business/src/components/PrinterSettings/styles.tsx +30 -0
  38. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  39. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  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 +2 -2
  43. package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
  44. package/themes/business/src/components/UserProfileForm/index.tsx +105 -53
  45. package/themes/business/src/components/WebsocketStatus/index.tsx +4 -4
  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 +21 -4
  50. package/themes/business/src/utils/index.tsx +19 -1
  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 +13 -1
  60. package/themes/original/src/components/AddressDetails/index.tsx +20 -10
  61. package/themes/original/src/components/AddressForm/index.tsx +32 -17
  62. package/themes/original/src/components/AddressList/index.tsx +8 -7
  63. package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
  64. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  65. package/themes/original/src/components/BusinessBasicInformation/index.tsx +6 -9
  66. package/themes/original/src/components/BusinessController/index.tsx +12 -7
  67. package/themes/original/src/components/BusinessItemAccordion/index.tsx +13 -5
  68. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +2 -3
  69. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +1 -3
  70. package/themes/original/src/components/BusinessListingSearch/index.tsx +1 -2
  71. package/themes/original/src/components/BusinessPreorder/index.tsx +20 -15
  72. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +5 -5
  73. package/themes/original/src/components/BusinessProductsList/index.tsx +3 -3
  74. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  75. package/themes/original/src/components/BusinessProductsListing/index.tsx +28 -13
  76. package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
  77. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  78. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +1 -1
  79. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  80. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  81. package/themes/original/src/components/Cart/index.tsx +39 -12
  82. package/themes/original/src/components/CartContent/index.tsx +59 -44
  83. package/themes/original/src/components/Checkout/index.tsx +59 -29
  84. package/themes/original/src/components/CitiesControl/index.tsx +0 -3
  85. package/themes/original/src/components/CouponControl/index.tsx +1 -3
  86. package/themes/original/src/components/DriverTips/index.tsx +1 -3
  87. package/themes/original/src/components/Favorite/index.tsx +1 -5
  88. package/themes/original/src/components/FavoriteList/index.tsx +0 -1
  89. package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -7
  90. package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
  91. package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
  92. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
  93. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
  94. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
  95. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +7 -9
  96. package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
  97. package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
  98. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +82 -0
  99. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
  100. package/themes/original/src/components/GoogleMap/index.tsx +39 -18
  101. package/themes/original/src/components/Help/index.tsx +2 -0
  102. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  103. package/themes/original/src/components/Home/index.tsx +2 -10
  104. package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
  105. package/themes/original/src/components/LoginForm/index.tsx +4 -7
  106. package/themes/original/src/components/MessageListing/index.tsx +1 -0
  107. package/themes/original/src/components/Messages/index.tsx +8 -7
  108. package/themes/original/src/components/MomentOption/index.tsx +13 -2
  109. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
  110. package/themes/original/src/components/MultiCheckout/index.tsx +123 -62
  111. package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
  112. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -14
  113. package/themes/original/src/components/MyOrders/index.tsx +21 -26
  114. package/themes/original/src/components/NavBar/index.tsx +4 -2
  115. package/themes/original/src/components/NetworkError/index.tsx +0 -5
  116. package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
  117. package/themes/original/src/components/OrderDetails/OrderEta.tsx +1 -1
  118. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +5 -7
  119. package/themes/original/src/components/OrderDetails/index.tsx +28 -12
  120. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  121. package/themes/original/src/components/OrderProgress/index.tsx +22 -3
  122. package/themes/original/src/components/OrderSummary/index.tsx +23 -5
  123. package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -6
  124. package/themes/original/src/components/OrdersOption/index.tsx +2 -4
  125. package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
  126. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  127. package/themes/original/src/components/PaymentOptions/index.tsx +47 -6
  128. package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
  129. package/themes/original/src/components/PreviousOrders/index.tsx +1 -2
  130. package/themes/original/src/components/ProductForm/ActionButton.tsx +16 -19
  131. package/themes/original/src/components/ProductForm/index.tsx +120 -109
  132. package/themes/original/src/components/ProductItemAccordion/index.tsx +55 -49
  133. package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
  134. package/themes/original/src/components/ProductOptionSubOption/index.tsx +112 -91
  135. package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
  136. package/themes/original/src/components/Promotions/index.tsx +6 -9
  137. package/themes/original/src/components/ReviewDriver/index.tsx +1 -1
  138. package/themes/original/src/components/ReviewOrder/index.tsx +2 -2
  139. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  140. package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
  141. package/themes/original/src/components/ServiceForm/index.tsx +52 -54
  142. package/themes/original/src/components/Sessions/index.tsx +3 -3
  143. package/themes/original/src/components/SignupForm/index.tsx +65 -67
  144. package/themes/original/src/components/SingleOrderCard/index.tsx +1 -2
  145. package/themes/original/src/components/SingleProductCard/index.tsx +5 -6
  146. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  147. package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
  148. package/themes/original/src/components/StripeCardsList/index.tsx +10 -35
  149. package/themes/original/src/components/StripeElementsForm/index.tsx +78 -59
  150. package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -1
  151. package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
  152. package/themes/original/src/components/TaxInformation/index.tsx +3 -2
  153. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +10 -7
  154. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +8 -3
  155. package/themes/original/src/components/UserFormDetails/index.tsx +83 -84
  156. package/themes/original/src/components/UserProfile/index.tsx +11 -2
  157. package/themes/original/src/components/Wallets/index.tsx +7 -4
  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/types/index.tsx +5 -1
  164. package/themes/original/src/utils/index.tsx +12 -1
  165. 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,7 +74,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
68
74
  logisticOrders,
69
75
  loadLogisticOrders,
70
76
  isLogisticActivated,
71
- isAlsea,
72
77
  handleChangeOrderStatus,
73
78
  handleSendCustomerReview
74
79
  } = props;
@@ -94,6 +99,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
94
99
  const [, t] = useLanguage();
95
100
  const [{ parseDate }] = useUtils()
96
101
  const [configState] = useConfig()
102
+
97
103
  const [orientationState] = useDeviceOrientation();
98
104
  const [openSearchModal, setOpenSearchModal] = useState(false)
99
105
  const [openSLASettingModal, setOpenSLASettingModal] = useState(false)
@@ -125,9 +131,12 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
125
131
  ]
126
132
  const [selectedTabStatus, setSelectedTabStatus] = useState<any>(deliveryStatus)
127
133
  const [openedSelect, setOpenedSelect] = useState('')
134
+ const [lastDateConnection, setLastDateConnection] = useState(null)
135
+ const [internetLoading, setInternetLoading] = useState(!isNetConnected && isNetConnected !== null)
128
136
 
129
137
  const HEIGHT_SCREEN = orientationState?.dimensions?.height
130
138
  const IS_PORTRAIT = orientationState.orientation === PORTRAIT
139
+ const showTagsList = !props.isAlsea && !props.isDriverApp && currentTabSelected !== 'logisticOrders'
131
140
 
132
141
  const preorderTypeList = [
133
142
  { key: null, name: t('SLA', 'SLA\'s') },
@@ -249,7 +258,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
249
258
  paddingLeft: 0,
250
259
  paddingRight: 0,
251
260
  marginBottom: 30,
252
- marginTop: 30
261
+ marginTop: Platform.OS === 'ios' ? 60 : 30
253
262
  },
254
263
  rowStyle: {
255
264
  display: 'flex',
@@ -378,24 +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
+
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
+
387
460
  return (
388
461
  <>
389
462
  <View style={styles.header}>
390
463
  <OText style={styles.title}>{t('MY_ORDERS', 'My orders')}</OText>
391
464
  <IconWrapper>
392
- <FeatherIcon
393
- name='refresh-cw'
394
- color={theme.colors.backgroundDark}
395
- size={24}
396
- onPress={() => { currentTabSelected === 'logisticOrders' ? loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true }) }}
397
- style={{ marginRight: 20 }}
398
- />
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
+ )}
399
477
  <FontistoIcon
400
478
  name='search'
401
479
  color={theme.colors.backgroundDark}
@@ -404,58 +482,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
404
482
  />
405
483
  </IconWrapper>
406
484
  </View>
407
- <WebsocketStatus />
408
- {configState?.configs?.order_deadlines_enabled?.value === '1' && (
409
- <View style={styles.SLAwrapper}>
410
- <View style={{ flex: 0.5 }}>
411
- <OButton
412
- text={t('SLA_SETTING', 'SLA’s Settings')}
413
- textStyle={{ color: theme.colors.backArrow }}
414
- imgRightSrc={null}
415
- style={{
416
- backgroundColor: theme.colors.inputChat,
417
- borderRadius: 7.6,
418
- zIndex: 10,
419
- borderWidth: 0,
420
- minHeight: 40
421
- }}
422
- onClick={onClickSetting}
423
- />
424
- </View>
425
- <View style={{ width: 10, height: '100%' }} />
426
- <View style={{ flex: 0.5, justifyContent: 'center' }}>
427
- <SelectDropdown
428
- defaultButtonText={t('SLA', 'SLA\'s')}
429
- data={preorderTypeList}
430
- onSelect={(selectedItem, index) => {
431
- onFiltered && onFiltered({ ...search, timeStatus: selectedItem?.key })
432
- }}
433
- buttonTextAfterSelection={(selectedItem, index) => {
434
- return selectedItem.name
435
- }}
436
- rowTextForSelection={(item, index) => {
437
- return item.key
438
- }}
439
- buttonStyle={styles.selectOption}
440
- buttonTextStyle={styles.buttonTextStyle}
441
- renderDropdownIcon={isOpened => {
442
- return <FeatherIcon name={isOpened ? 'chevron-up' : 'chevron-down'} color={'#444'} size={18} />;
443
- }}
444
- dropdownStyle={styles.dropdownStyle}
445
- dropdownOverlayColor='transparent'
446
- rowStyle={styles.rowStyle}
447
- renderCustomizedRowChild={(item, index) => {
448
- return (
449
- <SlaOption>
450
- {index !== 0 && <OrderStatus timeState={item?.key} />}
451
- <View><OText size={14} color={'#748194'} >{item?.name}</OText></View>
452
- </SlaOption>
453
- );
454
- }}
455
- />
456
- </View>
457
- </View>
458
- )}
459
485
  <FiltersTab>
460
486
  <ScrollView
461
487
  ref={scrollRefTab}
@@ -465,7 +491,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
465
491
  nestedScrollEnabled={true}
466
492
  >
467
493
  <TabsContainer>
468
- {(isLogisticActivated && !isBusinessApp) && (
494
+ {(isLogisticActivated && !isBusinessApp && !combineTabs) && (
469
495
  <Pressable
470
496
  style={styles.pressable}
471
497
  onPress={() => setCurrentTabSelected('logisticOrders')}>
@@ -510,7 +536,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
510
536
  </ScrollView>
511
537
  </FiltersTab>
512
538
  <View style={{ flex: 1, minHeight: HEIGHT_SCREEN - 450 }}>
513
- {currentTabSelected !== 'logisticOrders' && !isAlsea && (
539
+ {showTagsList && (
514
540
  <View
515
541
  style={{
516
542
  display: 'flex',
@@ -577,6 +603,22 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
577
603
  </ScrollView>
578
604
  </View>
579
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
+ )}
580
622
  <ScrollView
581
623
  ref={scrollListRef}
582
624
  showsVerticalScrollIndicator={false}
@@ -585,7 +627,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
585
627
  refreshControl={
586
628
  <RefreshControl
587
629
  refreshing={refreshing}
588
- onRefresh={() => { currentTabSelected === 'logisticOrders' ? loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true }) }}
630
+ onRefresh={() => { isNetConnected && (currentTabSelected === 'logisticOrders' ? loadLogisticOrders && loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true })) }}
589
631
  />
590
632
  }
591
633
  >
@@ -622,42 +664,48 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
622
664
  />
623
665
  )
624
666
  }
625
- {((currentOrdersGroup?.loading ||
626
- currentOrdersGroup?.pagination?.total === null) ||
627
- (logisticOrders?.loading)) &&
667
+ {(
628
668
  (
629
- <>
630
- <View>
631
- {[...Array(5)].map((_, i) => (
632
- <Placeholder key={i} Animation={Fade}>
633
- <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}
634
690
  style={{
635
- width: '100%',
636
- flexDirection: 'row',
637
- marginBottom: 10,
638
- }}>
639
- <PlaceholderLine
640
- width={IS_PORTRAIT ? 22 : 11}
641
- height={74}
642
- style={{
643
- marginRight: 20,
644
- marginBottom: 20,
645
- borderRadius: 7.6,
646
- }}
647
- />
648
- <Placeholder>
649
- <PlaceholderLine width={30} style={{ marginTop: 5 }} />
650
- <PlaceholderLine width={50} />
651
- <PlaceholderLine width={20} />
652
- </Placeholder>
653
- </View>
654
- </Placeholder>
655
- ))}
656
- </View>
657
- </>
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} />
700
+ </Placeholder>
701
+ </View>
702
+ </Placeholder>
703
+ ))}
704
+ </View>
658
705
  )}
659
706
 
660
- {!currentOrdersGroup?.error?.length &&
707
+ {isNetConnected &&
708
+ !currentOrdersGroup?.error?.length &&
661
709
  !currentOrdersGroup?.loading &&
662
710
  currentOrdersGroup?.pagination?.totalPages &&
663
711
  currentOrdersGroup?.pagination?.currentPage < currentOrdersGroup?.pagination?.totalPages &&
@@ -674,33 +722,35 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
674
722
  />
675
723
  )}
676
724
 
677
- {((!currentOrdersGroup?.loading &&
678
- (currentOrdersGroup?.error?.length ||
679
- currentOrdersGroup?.orders?.length === 0)) ||
680
- (currentTabSelected === 'logisticOrders' &&
681
- (logisticOrders?.error?.length > 0 || logisticOrders?.orders?.length === 0 || !logisticOrders?.orders?.some(order => !order?.expired)))
682
- ) &&
725
+ {!internetLoading &&
726
+ ((!currentOrdersGroup?.loading &&
727
+ (currentOrdersGroup?.error?.length ||
728
+ currentOrdersGroup?.orders?.length === 0)) ||
729
+ (currentTabSelected === 'logisticOrders' &&
730
+ (logisticOrders?.error?.length > 0 || logisticOrders?.orders?.length === 0 || !logisticOrders?.orders?.some(order => !order?.expired)))
731
+ ) &&
683
732
  (
684
733
  <NotFoundSource
685
734
  content={
686
- ((currentTabSelected !== 'logisticOrders' && !currentOrdersGroup?.error?.length) ||
687
- (currentTabSelected === 'logisticOrders' && (!logisticOrders?.error?.length || (logisticOrders?.orders?.length > 0 && !logisticOrders?.orders?.some(order => !order?.expired)))))
688
- ? t('NO_RESULTS_FOUND', 'Sorry, no results found')
689
- : currentOrdersGroup?.error?.[0]?.message ||
690
- currentOrdersGroup?.error?.[0] ||
691
- (currentTabSelected === 'logisticOrders' && logisticOrders?.error) ||
692
- t('NETWORK_ERROR', 'Network Error')
735
+ !isNetConnected ? t('NETWORK_ERROR', 'Network Error') :
736
+ ((currentTabSelected !== 'logisticOrders' && !currentOrdersGroup?.error?.length) ||
737
+ (currentTabSelected === 'logisticOrders' && (!logisticOrders?.error?.length || (logisticOrders?.orders?.length > 0 && !logisticOrders?.orders?.some(order => !order?.expired)))))
738
+ ? t('NO_RESULTS_FOUND', 'Sorry, no results found')
739
+ : currentOrdersGroup?.error?.[0]?.message ||
740
+ currentOrdersGroup?.error?.[0] ||
741
+ (currentTabSelected === 'logisticOrders' && logisticOrders?.error) ||
742
+ t('NETWORK_ERROR', 'Network Error')
693
743
  }
694
744
  image={theme.images.general.notFound}
695
745
  conditioned={false}
746
+ btnTitle={!isNetConnected && t('REFRESH', 'Refresh')}
747
+ onClickButton={!isNetConnected && (() => RNRestart.Restart())}
696
748
  />
697
749
  )}
698
750
  </ScrollView>
699
751
  </View>
700
752
 
701
- {isBusinessApp && (
702
- <NewOrderNotification isBusinessApp={isBusinessApp} />
703
- )}
753
+ <NewOrderNotification isBusinessApp={isBusinessApp} />
704
754
 
705
755
  {(openSearchModal || openSLASettingModal) && (
706
756
  <OModal open={openSearchModal || openSLASettingModal} entireModal customClose>
@@ -713,6 +763,41 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
713
763
  {openSearchModal && (
714
764
  <SearchModalContent>
715
765
  <ModalTitle>{t('SEARCH_ORDERS', 'Search orders')}</ModalTitle>
766
+ {configState?.configs?.order_deadlines_enabled?.value === '1' && (
767
+ <InputContainer style={{ marginBottom: 24 }}>
768
+ <SelectDropdown
769
+ defaultButtonText={search?.timeStatus
770
+ ? preorderTypeList.find(type => type.key === search?.timeStatus)?.name
771
+ : t('SLA', 'SLA\'s')}
772
+ data={preorderTypeList}
773
+ onSelect={(selectedItem, index) => {
774
+ setSearch({ ...search, timeStatus: selectedItem?.key })
775
+ }}
776
+ buttonTextAfterSelection={(selectedItem, index) => {
777
+ return selectedItem.name
778
+ }}
779
+ rowTextForSelection={(item, index) => {
780
+ return item.key
781
+ }}
782
+ buttonStyle={styles.selectOption}
783
+ buttonTextStyle={styles.buttonTextStyle}
784
+ renderDropdownIcon={isOpened => {
785
+ return <FeatherIcon name={isOpened ? 'chevron-up' : 'chevron-down'} color={'#444'} size={18} />;
786
+ }}
787
+ dropdownStyle={styles.dropdownStyle}
788
+ dropdownOverlayColor='transparent'
789
+ rowStyle={styles.rowStyle}
790
+ renderCustomizedRowChild={(item, index) => {
791
+ return (
792
+ <SlaOption>
793
+ {index !== 0 && <OrderStatus timeState={item?.key} />}
794
+ <View><OText size={14} color={'#748194'} >{item?.name}</OText></View>
795
+ </SlaOption>
796
+ );
797
+ }}
798
+ />
799
+ </InputContainer>
800
+ )}
716
801
  <InputContainer>
717
802
  <OInput
718
803
  value={search.id}
@@ -939,12 +1024,18 @@ export const Timer = () => {
939
1024
 
940
1025
  export const OrdersOption = (props: OrdersOptionParams) => {
941
1026
  const [, t] = useLanguage();
1027
+ const [configState] = useConfig()
942
1028
  const [checkNotificationStatus, setCheckNotificationStatus] = useState({ open: false, checked: false })
1029
+
1030
+ const getCombineTabsStoraged = async () => await _retrieveStoreData('combine_pending_and_progress_orders')
1031
+ const combineTabs = typeof configState?.configs?.combine_pending_and_progress_orders === 'object' ? configState?.configs?.combine_pending_and_progress_orders?.value === '1' : getCombineTabsStoraged()
1032
+
943
1033
  const ordersProps = {
944
1034
  ...props,
945
1035
  UIComponent: OrdersOptionUI,
946
1036
  useDefualtSessionManager: true,
947
1037
  asDashboard: true,
1038
+ combineTabs,
948
1039
  isIos: Platform.OS === 'ios',
949
1040
  orderStatus: [
950
1041
  { key: 0, text: t('PENDING', 'Pending') },
@@ -1024,34 +1115,62 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1024
1115
  {
1025
1116
  key: 23,
1026
1117
  text: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
1118
+ },
1119
+ {
1120
+ key: 24,
1121
+ text: t('ORDER_DRIVER_WAITING_FOR_ORDER', 'Driver waiting for order')
1122
+ },
1123
+ {
1124
+ key: 25,
1125
+ text: t('ORDER_ACCEPTED_BY_DRIVER_COMPANY', 'Accepted by driver company')
1027
1126
  }
1028
1127
  ],
1029
- tabs: [
1128
+ tabs: combineTabs ? [
1030
1129
  {
1031
1130
  key: 0,
1032
- text: t('PENDING', 'Pending'),
1033
- tags: props?.orderGroupStatusCustom?.pending ?? [0, 13],
1034
- title: 'pending'
1131
+ text: t('ACTIVE', 'Active'),
1132
+ tags: props?.orderGroupStatusCustom?.active ?? [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25],
1133
+ title: 'active',
1035
1134
  },
1036
1135
  {
1037
1136
  key: 1,
1038
- text: t('IN_PROGRESS', 'In Progress'),
1039
- tags: props?.orderGroupStatusCustom?.inProgress ?? [3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23],
1040
- title: 'inProgress',
1041
- },
1042
- {
1043
- key: 2,
1044
1137
  text: t('COMPLETED', 'Completed'),
1045
1138
  tags: props?.orderGroupStatusCustom?.completed ?? [1, 11, 15],
1046
1139
  title: 'completed',
1047
1140
  },
1048
1141
  {
1049
- key: 3,
1142
+ key: 2,
1050
1143
  text: t('CANCELLED', 'Cancelled'),
1051
1144
  tags: props?.orderGroupStatusCustom?.cancelled ?? [2, 5, 6, 10, 12, 16, 17],
1052
1145
  title: 'cancelled',
1053
1146
  },
1054
- ]
1147
+ ] :
1148
+ [
1149
+ {
1150
+ key: 0,
1151
+ text: t('PENDING', 'Pending'),
1152
+ tags: props?.orderGroupStatusCustom?.pending ?? [0, 13],
1153
+ title: 'pending'
1154
+ },
1155
+ {
1156
+ key: 1,
1157
+ text: t('IN_PROGRESS', 'In Progress'),
1158
+ tags: props?.orderGroupStatusCustom?.inProgress ?? [3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23, 24, 25],
1159
+ title: 'inProgress',
1160
+ },
1161
+ {
1162
+ key: 2,
1163
+ text: t('COMPLETED', 'Completed'),
1164
+ tags: props?.orderGroupStatusCustom?.completed ?? [1, 11, 15],
1165
+ title: 'completed',
1166
+ },
1167
+ {
1168
+ key: 3,
1169
+ text: t('CANCELLED', 'Cancelled'),
1170
+ tags: props?.orderGroupStatusCustom?.cancelled ?? [2, 5, 6, 10, 12, 16, 17],
1171
+ title: 'cancelled',
1172
+ },
1173
+ ]
1055
1174
  };
1056
1175
 
1057
1176
  return (<>
@@ -1062,3 +1181,7 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1062
1181
  )}
1063
1182
  </>);
1064
1183
  };
1184
+
1185
+ OrdersOption.defaultProps = {
1186
+ isNetConnected: true
1187
+ }
@@ -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={{
@@ -201,6 +201,18 @@ export const PreviousMessages = (props: PreviousMessagesParams) => {
201
201
  value: t('ORDER_DRIVER_ON_WAY', 'Driver on way'),
202
202
  slug: 'ORDER_DRIVER_ON_WAY',
203
203
  percentage: 45
204
+ },
205
+ {
206
+ key: 24,
207
+ value: t('ORDER_DRIVER_WAITING_FOR_ORDER', 'Driver waiting for order'),
208
+ slug: 'ORDER_DRIVER_WAITING_FOR_ORDER',
209
+ percentage: 25
210
+ },
211
+ {
212
+ key: 25,
213
+ value: t('ORDER_ACCEPTED_BY_DRIVER_COMPANY', 'Accepted by driver company'),
214
+ slug: 'ORDER_ACCEPTED_BY_DRIVER_COMPANY',
215
+ percentage: 25
204
216
  }
205
217
  ];
206
218