ordering-ui-react-native 0.21.45 → 0.21.46-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 (208) hide show
  1. package/package.json +8 -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/src/utils/index.tsx +2 -2
  9. package/themes/business/index.tsx +6 -0
  10. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +7 -3
  11. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  12. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  13. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  14. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  15. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  16. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  17. package/themes/business/src/components/DriverMap/index.tsx +36 -23
  18. package/themes/business/src/components/GoogleMap/index.tsx +15 -8
  19. package/themes/business/src/components/Home/index.tsx +5 -1
  20. package/themes/business/src/components/LanguageSelector/index.tsx +1 -2
  21. package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
  22. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  23. package/themes/business/src/components/MapView/index.tsx +30 -15
  24. package/themes/business/src/components/MessagesOption/index.tsx +2 -1
  25. package/themes/business/src/components/NewOrderNotification/index.tsx +66 -26
  26. package/themes/business/src/components/OrderDetails/Business.tsx +52 -2
  27. package/themes/business/src/components/OrderDetails/Delivery.tsx +30 -11
  28. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +68 -61
  29. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +40 -20
  30. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +220 -0
  31. package/themes/business/src/components/OrderSummary/index.tsx +240 -76
  32. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  33. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  34. package/themes/business/src/components/OrdersOption/index.tsx +125 -46
  35. package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
  36. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +37 -40
  37. package/themes/business/src/components/PreviousOrders/OrderList.tsx +1 -1
  38. package/themes/business/src/components/PreviousOrders/index.tsx +5 -3
  39. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  40. package/themes/business/src/components/PrinterEdition/index.tsx +363 -0
  41. package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
  42. package/themes/business/src/components/PrinterSettings/index.tsx +267 -0
  43. package/themes/business/src/components/PrinterSettings/styles.tsx +30 -0
  44. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  45. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  46. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  47. package/themes/business/src/components/Sessions/index.tsx +187 -0
  48. package/themes/business/src/components/Sessions/styles.tsx +20 -0
  49. package/themes/business/src/components/StoresList/index.tsx +5 -3
  50. package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
  51. package/themes/business/src/components/UserProfileForm/index.tsx +106 -54
  52. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  53. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  54. package/themes/business/src/components/shared/OInput.tsx +2 -0
  55. package/themes/business/src/components/shared/OTextarea.tsx +8 -9
  56. package/themes/business/src/hooks/useLocation.tsx +5 -4
  57. package/themes/business/src/types/index.tsx +16 -2
  58. package/themes/business/src/utils/index.tsx +5 -0
  59. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  60. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  61. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  62. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  63. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  64. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  65. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  66. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  67. package/themes/original/index.tsx +12 -4
  68. package/themes/original/src/components/AddressDetails/index.tsx +20 -10
  69. package/themes/original/src/components/AddressForm/index.tsx +41 -12
  70. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  71. package/themes/original/src/components/AddressList/index.tsx +18 -4
  72. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  73. package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
  74. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  75. package/themes/original/src/components/BusinessBasicInformation/index.tsx +7 -10
  76. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +1 -1
  77. package/themes/original/src/components/BusinessController/index.tsx +18 -10
  78. package/themes/original/src/components/BusinessController/styles.tsx +8 -7
  79. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  80. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -7
  81. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  82. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  83. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  84. package/themes/original/src/components/BusinessListingSearch/index.tsx +47 -358
  85. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -1
  86. package/themes/original/src/components/BusinessPreorder/index.tsx +4 -3
  87. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  88. package/themes/original/src/components/BusinessProductsList/index.tsx +1 -1
  89. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  90. package/themes/original/src/components/BusinessProductsListing/index.tsx +34 -19
  91. package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
  92. package/themes/original/src/components/BusinessReviews/index.tsx +1 -1
  93. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  94. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  95. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +1 -1
  96. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +7 -7
  97. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +2 -2
  98. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  99. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  100. package/themes/original/src/components/Cart/index.tsx +32 -9
  101. package/themes/original/src/components/CartContent/index.tsx +96 -58
  102. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  103. package/themes/original/src/components/Checkout/index.tsx +144 -62
  104. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  105. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  106. package/themes/original/src/components/DatePicker/index.tsx +33 -0
  107. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  108. package/themes/original/src/components/Favorite/index.tsx +9 -9
  109. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  110. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  111. package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -0
  112. package/themes/original/src/components/GPSButton/index.tsx +1 -1
  113. package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
  114. package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
  115. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
  116. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  117. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +2 -2
  118. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  119. package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
  120. package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
  121. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +83 -0
  122. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
  123. package/themes/original/src/components/GoogleMap/index.tsx +39 -18
  124. package/themes/original/src/components/Help/index.tsx +7 -0
  125. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +5 -0
  126. package/themes/original/src/components/HelpGuide/index.tsx +5 -0
  127. package/themes/original/src/components/HelpOrder/index.tsx +5 -0
  128. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
  129. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  130. package/themes/original/src/components/Home/index.tsx +3 -8
  131. package/themes/original/src/components/LoginForm/Otp/index.tsx +4 -16
  132. package/themes/original/src/components/LoginForm/index.tsx +9 -3
  133. package/themes/original/src/components/MessageListing/index.tsx +6 -0
  134. package/themes/original/src/components/Messages/index.tsx +8 -7
  135. package/themes/original/src/components/Messages/styles.tsx +1 -1
  136. package/themes/original/src/components/MomentOption/index.tsx +19 -4
  137. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  138. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
  139. package/themes/original/src/components/MultiCheckout/index.tsx +126 -61
  140. package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
  141. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -15
  142. package/themes/original/src/components/MyOrders/index.tsx +28 -28
  143. package/themes/original/src/components/NavBar/index.tsx +5 -0
  144. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  145. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  146. package/themes/original/src/components/Notifications/index.tsx +9 -8
  147. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  148. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +1 -1
  149. package/themes/original/src/components/OrderDetails/index.tsx +708 -663
  150. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  151. package/themes/original/src/components/OrderProgress/index.tsx +22 -3
  152. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  153. package/themes/original/src/components/OrderSummary/index.tsx +3 -1
  154. package/themes/original/src/components/OrderTypeSelector/index.tsx +10 -6
  155. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  156. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  157. package/themes/original/src/components/OrdersOption/index.tsx +3 -5
  158. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  159. package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
  160. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  161. package/themes/original/src/components/PaymentOptions/index.tsx +47 -4
  162. package/themes/original/src/components/PreviousOrders/index.tsx +2 -0
  163. package/themes/original/src/components/ProductForm/ActionButton.tsx +122 -0
  164. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  165. package/themes/original/src/components/ProductForm/index.tsx +170 -252
  166. package/themes/original/src/components/ProductItemAccordion/index.tsx +55 -44
  167. package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
  168. package/themes/original/src/components/ProductOptionSubOption/index.tsx +112 -91
  169. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  170. package/themes/original/src/components/Promotions/index.tsx +13 -11
  171. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  172. package/themes/original/src/components/ReviewDriver/index.tsx +5 -0
  173. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  174. package/themes/original/src/components/ReviewOrder/index.tsx +5 -0
  175. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  176. package/themes/original/src/components/ReviewProducts/index.tsx +5 -0
  177. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  178. package/themes/original/src/components/ServiceForm/index.tsx +1 -1
  179. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  180. package/themes/original/src/components/Sessions/index.tsx +5 -0
  181. package/themes/original/src/components/SignupForm/index.tsx +67 -59
  182. package/themes/original/src/components/SingleOrderCard/index.tsx +3 -2
  183. package/themes/original/src/components/SingleProductCard/index.tsx +4 -3
  184. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  185. package/themes/original/src/components/StripeCardsList/index.tsx +12 -35
  186. package/themes/original/src/components/StripeElementsForm/index.tsx +79 -59
  187. package/themes/original/src/components/StripeElementsForm/naked.tsx +47 -0
  188. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  189. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +91 -0
  190. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  191. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  192. package/themes/original/src/components/UserFormDetails/index.tsx +123 -75
  193. package/themes/original/src/components/UserFormDetails/styles.tsx +7 -0
  194. package/themes/original/src/components/UserProfile/index.tsx +3 -2
  195. package/themes/original/src/components/UserProfileForm/index.tsx +5 -0
  196. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  197. package/themes/original/src/components/Wallets/index.tsx +7 -4
  198. package/themes/original/src/components/Wallets/styles.tsx +2 -1
  199. package/themes/original/src/components/WebsocketStatus/index.tsx +172 -0
  200. package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
  201. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  202. package/themes/original/src/components/shared/OButton.tsx +5 -5
  203. package/themes/original/src/components/shared/OInput.tsx +1 -4
  204. package/themes/original/src/components/shared/OModal.tsx +12 -14
  205. package/themes/original/src/layouts/Container.tsx +5 -3
  206. package/themes/original/src/types/index.tsx +4 -1
  207. package/themes/original/src/utils/index.tsx +12 -1
  208. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -11,6 +11,7 @@ import { useTheme } from 'styled-components/native';
11
11
  import { DeviceOrientationMethods } from '../../../../../src/hooks/DeviceOrientation'
12
12
  import { NotificationSetting } from '../../../../../src/components/NotificationSetting'
13
13
  import { NewOrderNotification } from '../NewOrderNotification';
14
+ import { WebsocketStatus } from '../WebsocketStatus'
14
15
 
15
16
  import { OText, OButton, OModal, OInput, OIcon } from '../shared';
16
17
  import { NotFoundSource } from '../NotFoundSource';
@@ -49,6 +50,7 @@ const { useDeviceOrientation, PORTRAIT } = DeviceOrientationMethods
49
50
 
50
51
  const OrdersOptionUI = (props: OrdersOptionParams) => {
51
52
  const {
53
+ navigation,
52
54
  setCurrentFilters,
53
55
  tabs,
54
56
  currentTabSelected,
@@ -74,6 +76,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
74
76
 
75
77
  const defaultSearchList = {
76
78
  id: '',
79
+ external_id: '',
77
80
  state: '',
78
81
  city: '',
79
82
  business: '',
@@ -98,27 +101,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
98
101
  const [slaSettingTime, setSlaSettingTime] = useState(6000)
99
102
  const [currentDeliveryType, setCurrentDeliveryType] = useState('Delivery')
100
103
  const [search, setSearch] = useState(defaultSearchList)
101
- const [selectedTabStatus, setSelectedTabStatus] = useState<any>([])
102
- const [openedSelect, setOpenedSelect] = useState('')
103
-
104
- const HEIGHT_SCREEN = orientationState?.dimensions?.height
105
- const IS_PORTRAIT = orientationState.orientation === PORTRAIT
106
-
107
- const preorderTypeList = [
108
- { key: null, name: t('SLA', 'SLA\'s') },
109
- { key: 'in_time', name: t('OK', 'Ok') },
110
- { key: 'at_risk', name: t('AT_RISK', 'At Risk') },
111
- { key: 'delayed', name: t('DELAYED', 'Delayed') }
112
- ]
113
-
114
- const defaultOrderTypes = [
115
- { key: 1, name: t('DELIVERY', 'Delivery') },
116
- { key: 2, name: t('PICKUP', 'Pickup') },
117
- { key: 3, name: t('EAT_IN', 'Eat in') },
118
- { key: 4, name: t('CURBSIDE', 'Curbside') },
119
- { key: 5, name: t('DRIVE_THRU', 'Drive thru') }
120
- ]
121
-
122
104
  const deliveryStatus = [
123
105
  {
124
106
  key: t('OK', 'Ok'),
@@ -142,6 +124,27 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
142
124
  backColor: '#E63757'
143
125
  }
144
126
  ]
127
+ const combineTabs = configState?.configs?.combine_pending_and_progress_orders?.value === '1'
128
+ const [selectedTabStatus, setSelectedTabStatus] = useState<any>(deliveryStatus)
129
+ const [openedSelect, setOpenedSelect] = useState('')
130
+
131
+ const HEIGHT_SCREEN = orientationState?.dimensions?.height
132
+ const IS_PORTRAIT = orientationState.orientation === PORTRAIT
133
+
134
+ const preorderTypeList = [
135
+ { key: null, name: t('SLA', 'SLA\'s') },
136
+ { key: 'in_time', name: t('OK', 'Ok') },
137
+ { key: 'at_risk', name: t('AT_RISK', 'At Risk') },
138
+ { key: 'delayed', name: t('DELAYED', 'Delayed') }
139
+ ]
140
+
141
+ const defaultOrderTypes = [
142
+ { key: 1, name: t('DELIVERY', 'Delivery') },
143
+ { key: 2, name: t('PICKUP', 'Pickup') },
144
+ { key: 3, name: t('EAT_IN', 'Eat in') },
145
+ { key: 4, name: t('CURBSIDE', 'Curbside') },
146
+ { key: 5, name: t('DRIVE_THRU', 'Drive thru') }
147
+ ]
145
148
 
146
149
  const styles = StyleSheet.create({
147
150
  header: {
@@ -377,21 +380,27 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
377
380
  }
378
381
 
379
382
  useEffect(() => {
380
- scrollRefTab.current?.scrollTo({ animated: true });
381
- scrollListRef.current?.scrollTo({ animated: true });
382
- scrollRef.current?.scrollTo({ y: 0, animated: true });
383
+ scrollRefTab.current?.scrollTo();
384
+ scrollListRef.current?.scrollTo();
385
+ scrollRef.current?.scrollTo();
383
386
  setTags({ values: [] })
384
387
  }, [currentTabSelected])
385
388
 
386
- useEffect(() => {
387
- setSelectedTabStatus(deliveryStatus)
388
- }, [])
389
+ useEffect(() => {
390
+ const unsubcribe = navigation.addListener('focus', () => {
391
+ currentTabSelected === 'logisticOrders' && loadLogisticOrders()
392
+ })
393
+ return unsubcribe
394
+ }, [navigation, loadLogisticOrders])
389
395
 
390
396
  return (
391
397
  <>
392
398
  <View style={styles.header}>
393
399
  <OText style={styles.title}>{t('MY_ORDERS', 'My orders')}</OText>
394
400
  <IconWrapper>
401
+ <View style={{ marginRight: 10 }}>
402
+ <WebsocketStatus />
403
+ </View>
395
404
  <FeatherIcon
396
405
  name='refresh-cw'
397
406
  color={theme.colors.backgroundDark}
@@ -409,7 +418,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
409
418
  </View>
410
419
  {configState?.configs?.order_deadlines_enabled?.value === '1' && (
411
420
  <View style={styles.SLAwrapper}>
412
- <View style={{ flex: 0.5 }}>
421
+ {/* <View style={{ flex: 0.5 }}>
413
422
  <OButton
414
423
  text={t('SLA_SETTING', 'SLA’s Settings')}
415
424
  textStyle={{ color: theme.colors.backArrow }}
@@ -423,9 +432,9 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
423
432
  }}
424
433
  onClick={onClickSetting}
425
434
  />
426
- </View>
427
- <View style={{ width: 10, height: '100%' }} />
428
- <View style={{ flex: 0.5, justifyContent: 'center' }}>
435
+ </View> */}
436
+ {/* <View style={{ width: 10, height: '100%' }} /> */}
437
+ {/* <View style={{ flex: 0.5, justifyContent: 'center' }}>
429
438
  <SelectDropdown
430
439
  defaultButtonText={t('SLA', 'SLA\'s')}
431
440
  data={preorderTypeList}
@@ -455,7 +464,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
455
464
  );
456
465
  }}
457
466
  />
458
- </View>
467
+ </View> */}
459
468
  </View>
460
469
  )}
461
470
  <FiltersTab>
@@ -467,7 +476,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
467
476
  nestedScrollEnabled={true}
468
477
  >
469
478
  <TabsContainer>
470
- {(isLogisticActivated && !isBusinessApp) && (
479
+ {(isLogisticActivated && !isBusinessApp && !combineTabs) && (
471
480
  <Pressable
472
481
  style={styles.pressable}
473
482
  onPress={() => setCurrentTabSelected('logisticOrders')}>
@@ -715,6 +724,39 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
715
724
  {openSearchModal && (
716
725
  <SearchModalContent>
717
726
  <ModalTitle>{t('SEARCH_ORDERS', 'Search orders')}</ModalTitle>
727
+ <InputContainer style={{ marginBottom: 24 }}>
728
+ <SelectDropdown
729
+ defaultButtonText={search?.timeStatus
730
+ ? preorderTypeList.find(type => type.key === search?.timeStatus)?.name
731
+ : t('SLA', 'SLA\'s')}
732
+ data={preorderTypeList}
733
+ onSelect={(selectedItem, index) => {
734
+ setSearch({ ...search, timeStatus: selectedItem?.key })
735
+ }}
736
+ buttonTextAfterSelection={(selectedItem, index) => {
737
+ return selectedItem.name
738
+ }}
739
+ rowTextForSelection={(item, index) => {
740
+ return item.key
741
+ }}
742
+ buttonStyle={styles.selectOption}
743
+ buttonTextStyle={styles.buttonTextStyle}
744
+ renderDropdownIcon={isOpened => {
745
+ return <FeatherIcon name={isOpened ? 'chevron-up' : 'chevron-down'} color={'#444'} size={18} />;
746
+ }}
747
+ dropdownStyle={styles.dropdownStyle}
748
+ dropdownOverlayColor='transparent'
749
+ rowStyle={styles.rowStyle}
750
+ renderCustomizedRowChild={(item, index) => {
751
+ return (
752
+ <SlaOption>
753
+ {index !== 0 && <OrderStatus timeState={item?.key} />}
754
+ <View><OText size={14} color={'#748194'} >{item?.name}</OText></View>
755
+ </SlaOption>
756
+ );
757
+ }}
758
+ />
759
+ </InputContainer>
718
760
  <InputContainer>
719
761
  <OInput
720
762
  value={search.id}
@@ -730,6 +772,21 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
730
772
  onPress={() => setSearch({ ...search, id: '' })}
731
773
  />
732
774
  </InputContainer>
775
+ <InputContainer>
776
+ <OInput
777
+ value={search.external_id}
778
+ onChange={(value: any) => setSearch({ ...search, external_id: value })}
779
+ style={styles.inputStyle}
780
+ placeholder={t('EXTERNAL_ID', 'External id')}
781
+ autoCorrect={false}
782
+ />
783
+ <AntDesignIcon
784
+ name='close'
785
+ size={20}
786
+ style={{ position: 'absolute', right: 12, top: 13 }}
787
+ onPress={() => setSearch({ ...search, external_id: '' })}
788
+ />
789
+ </InputContainer>
733
790
  <OrdersOptionDate
734
791
  {...props}
735
792
  search={search}
@@ -919,14 +976,16 @@ export const Timer = () => {
919
976
  return (
920
977
  <TimerInputWrapper>
921
978
  <OText style={styles.settingTime} color={theme.colors.disabled}>{configs?.order_deadlines_delayed_time?.value}</OText>
922
- <OText>{t('MIN', 'min')}</OText>
979
+ <OText>{t('TIME_MIN', 'min')}</OText>
923
980
  </TimerInputWrapper>
924
981
  )
925
982
  }
926
983
 
927
984
  export const OrdersOption = (props: OrdersOptionParams) => {
928
985
  const [, t] = useLanguage();
986
+ const [configState] = useConfig()
929
987
  const [checkNotificationStatus, setCheckNotificationStatus] = useState({ open: false, checked: false })
988
+ const combineTabs = configState?.configs?.combine_pending_and_progress_orders?.value === '1'
930
989
  const ordersProps = {
931
990
  ...props,
932
991
  UIComponent: OrdersOptionUI,
@@ -1013,32 +1072,52 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1013
1072
  text: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
1014
1073
  }
1015
1074
  ],
1016
- tabs: [
1075
+ tabs: combineTabs ? [
1017
1076
  {
1018
1077
  key: 0,
1019
- text: t('PENDING', 'Pending'),
1020
- tags: props?.orderGroupStatusCustom?.pending ?? [0, 13],
1021
- title: 'pending'
1078
+ text: t('ACTIVE', 'Active'),
1079
+ tags: props?.orderGroupStatusCustom?.active ?? [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23],
1080
+ title: 'active',
1022
1081
  },
1023
1082
  {
1024
1083
  key: 1,
1025
- text: t('IN_PROGRESS', 'In Progress'),
1026
- tags: props?.orderGroupStatusCustom?.inProgress ?? [3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23],
1027
- title: 'inProgress',
1028
- },
1029
- {
1030
- key: 2,
1031
1084
  text: t('COMPLETED', 'Completed'),
1032
1085
  tags: props?.orderGroupStatusCustom?.completed ?? [1, 11, 15],
1033
1086
  title: 'completed',
1034
1087
  },
1035
1088
  {
1036
- key: 3,
1089
+ key: 2,
1037
1090
  text: t('CANCELLED', 'Cancelled'),
1038
1091
  tags: props?.orderGroupStatusCustom?.cancelled ?? [2, 5, 6, 10, 12, 16, 17],
1039
1092
  title: 'cancelled',
1040
1093
  },
1041
- ]
1094
+ ] :
1095
+ [
1096
+ {
1097
+ key: 0,
1098
+ text: t('PENDING', 'Pending'),
1099
+ tags: props?.orderGroupStatusCustom?.pending ?? [0, 13],
1100
+ title: 'pending'
1101
+ },
1102
+ {
1103
+ key: 1,
1104
+ text: t('IN_PROGRESS', 'In Progress'),
1105
+ tags: props?.orderGroupStatusCustom?.inProgress ?? [3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23],
1106
+ title: 'inProgress',
1107
+ },
1108
+ {
1109
+ key: 2,
1110
+ text: t('COMPLETED', 'Completed'),
1111
+ tags: props?.orderGroupStatusCustom?.completed ?? [1, 11, 15],
1112
+ title: 'completed',
1113
+ },
1114
+ {
1115
+ key: 3,
1116
+ text: t('CANCELLED', 'Cancelled'),
1117
+ tags: props?.orderGroupStatusCustom?.cancelled ?? [2, 5, 6, 10, 12, 16, 17],
1118
+ title: 'cancelled',
1119
+ },
1120
+ ]
1042
1121
  };
1043
1122
 
1044
1123
  return (<>
@@ -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={{
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useState } from 'react';
2
- import { Platform, PlatformIOSStatic, StyleSheet, TouchableOpacity, View } from 'react-native';
2
+ import { Platform, PlatformIOSStatic, Pressable, StyleSheet, View } from 'react-native';
3
3
  import DeviceInfo from 'react-native-device-info';
4
4
  import { useTheme } from 'styled-components/native';
5
5
  import { useLanguage, useUtils, useConfig } from 'ordering-components/native';
@@ -47,6 +47,7 @@ export const OrderItem = React.memo((props: any) => {
47
47
  timer: configState?.configs?.order_deadlines_enabled?.value === '1',
48
48
  slaBar: configState?.configs?.order_deadlines_enabled?.value === '1',
49
49
  })
50
+ const showExternalId = configState?.configs?.change_order_id?.value === '1'
50
51
 
51
52
  const IS_PORTRAIT = orientationState.orientation === PORTRAIT
52
53
  const platformIOS = Platform as PlatformIOSStatic
@@ -76,7 +77,6 @@ export const OrderItem = React.memo((props: any) => {
76
77
  marginLeft: 3,
77
78
  },
78
79
  title: {
79
- marginBottom: 6,
80
80
  fontFamily: 'Poppins',
81
81
  fontStyle: 'normal',
82
82
  fontWeight: '600',
@@ -84,7 +84,6 @@ export const OrderItem = React.memo((props: any) => {
84
84
  color: theme.colors.textGray,
85
85
  },
86
86
  date: {
87
- marginBottom: 6,
88
87
  fontFamily: 'Poppins',
89
88
  fontStyle: 'normal',
90
89
  fontWeight: 'normal',
@@ -100,12 +99,13 @@ export const OrderItem = React.memo((props: any) => {
100
99
  });
101
100
 
102
101
  const getDelayMinutes = (order: any) => {
103
- const cdtToutc = moment(order?.delivery_datetime).utc().format('YYYY-MM-DD HH:mm:ss')
102
+ const offset = 300
103
+ const cdtToutc = moment(order?.delivery_datetime).add(offset, 'minutes').format('YYYY-MM-DD HH:mm:ss')
104
104
  const _delivery = order?.delivery_datetime_utc
105
- ? parseDate(order?.delivery_datetime_utc)
106
- : parseDate(cdtToutc)
105
+ ? parseDate(order?.delivery_datetime_utc, { outputFormat: 'YYYY-MM-DD HH:mm:ss' })
106
+ : parseDate(cdtToutc, { outputFormat: 'YYYY-MM-DD HH:mm:ss' })
107
107
  const _eta = order?.eta_time
108
- const diffTimeAsSeconds = moment(_delivery, 'YYYY-MM-DD hh:mm A').add(_eta, 'minutes').diff(moment().utc(), 'seconds')
108
+ const diffTimeAsSeconds = moment(_delivery).add(_eta, 'minutes').diff(moment().utc(), 'seconds')
109
109
  return Math.ceil(diffTimeAsSeconds / 60)
110
110
  }
111
111
 
@@ -119,7 +119,7 @@ export const OrderItem = React.memo((props: any) => {
119
119
  let restHours: string | number = Math.floor(restMinOfTargetedMin / 60)
120
120
  let restMins: string | number = restMinOfTargetedMin - 60 * restHours
121
121
  // make standard time format
122
- day = day === 0 ? '' : day + 'day '
122
+ day = day === 0 ? '' : `${day + ' ' + t('DAY', 'day') + ' '}`
123
123
  restHours = restHours < 10 ? '0' + restHours : restHours
124
124
  restMins = restMins < 10 ? '0' + restMins : restMins
125
125
 
@@ -127,12 +127,6 @@ export const OrderItem = React.memo((props: any) => {
127
127
  return finalTaget
128
128
  }
129
129
 
130
- const getStatusClassName = (minutes: number) => {
131
- if (isNaN(Number(minutes))) return 'in_time'
132
- const delayTime = configState?.configs?.order_deadlines_delayed_time?.value
133
- return minutes > 0 ? 'in_time' : Math.abs(minutes) <= delayTime ? 'at_risk' : 'delayed'
134
- }
135
-
136
130
  useEffect(() => {
137
131
  const slaSettings = configState?.configs?.order_deadlines_enabled?.value === '1'
138
132
  setAllowColumns({
@@ -143,8 +137,7 @@ export const OrderItem = React.memo((props: any) => {
143
137
  }, [configState.loading])
144
138
 
145
139
  return (
146
- <TouchableOpacity
147
- activeOpacity={1}
140
+ <Pressable
148
141
  disabled={order?.locked && isLogisticOrder}
149
142
  style={styles.cardButton}
150
143
  onPress={() => handlePressOrder({ ...order, logistic_order_id: _order?.id })}
@@ -152,24 +145,16 @@ export const OrderItem = React.memo((props: any) => {
152
145
  <Card key={order.id}>
153
146
  {!!allowColumns?.slaBar && (
154
147
  <Timestatus
155
- style={{
156
- backgroundColor: getStatusClassName(getDelayMinutes(order)) === 'in_time'
157
- ? '#00D27A'
158
- : getStatusClassName(getDelayMinutes(order)) === 'at_risk'
159
- ? '#FFC700'
160
- : getStatusClassName(getDelayMinutes(order)) === 'delayed'
161
- ? '#E63757'
162
- : ''
163
- }}
148
+ timeState={order?.time_status}
164
149
  />
165
150
  )}
166
151
  <Logo style={styles.logo}>
167
152
  <FastImage
168
153
  style={styles.icon}
169
- source={order.business?.logo ? {
170
- uri: optimizeImage(order.business?.logo, 'h_100,c_limit'),
154
+ source={order.business?.logo?.includes('https') ? {
155
+ uri: order.business?.logo,
171
156
  priority: FastImage.priority.normal,
172
- } : theme?.images?.dummies?.businessLogo}
157
+ } : order.business?.logo ?? theme?.images?.dummies?.businessLogo}
173
158
  resizeMode={FastImage.resizeMode.cover}
174
159
  />
175
160
  </Logo>
@@ -193,32 +178,44 @@ export const OrderItem = React.memo((props: any) => {
193
178
  />
194
179
  </NotificationIcon>
195
180
  )}
196
- <View style={{ flexDirection: 'row', flexWrap: 'wrap' }}>
197
- <OText
181
+ <View>
182
+ {!order?.order_group_id && showExternalId && !order?.order_group && (
183
+ <OText
184
+ style={styles.date}
185
+ color={theme.colors.unselectText}
186
+ numberOfLines={1}
187
+ adjustsFontSizeToFit
188
+ >
189
+ {`${order?.external_id ?? t('NO_EXTERNAL_ID', 'No external Id ') + t('NO', 'Order No.') + order?.id}` + ' · ' + `${order?.delivery_datetime_utc
190
+ ? parseDate(order?.delivery_datetime_utc)
191
+ : parseDate(order?.delivery_datetime, { utc: false })
192
+ }`}
193
+ </OText>
194
+ )}
195
+ {!showExternalId && (<OText
198
196
  style={styles.date}
199
197
  color={theme.colors.unselectText}
200
198
  numberOfLines={1}
201
199
  adjustsFontSizeToFit
202
200
  >
203
- {(!!order?.order_group_id && order?.order_group && isLogisticOrder
201
+ {((!!order?.order_group_id && order?.order_group && isLogisticOrder
204
202
  ? `${order?.order_group?.orders?.length} ${t('ORDERS', 'Orders')}`
205
- : (t('NO', 'Order No.') + order.id)
206
- ) + ' · '}
207
- {order?.delivery_datetime_utc
203
+ : (t('NO', 'Order No.') + order?.id)
204
+ ) + ' · ' + `${order?.delivery_datetime_utc
208
205
  ? parseDate(order?.delivery_datetime_utc)
209
- : parseDate(order?.delivery_datetime, { utc: false })}
206
+ : parseDate(order?.delivery_datetime, { utc: false })}`)}
210
207
  </OText>
208
+ )}
211
209
  {((currentTabSelected === 'pending' || currentTabSelected === 'inProgress') && allowColumns?.timer) && (
212
210
  <>
213
- <OText> · </OText>
214
211
  <OText
215
212
  style={styles.date}
216
213
  color={
217
- getStatusClassName(getDelayMinutes(order)) === 'in_time'
214
+ order?.time_status === 'in_time'
218
215
  ? '#00D27A'
219
- : getStatusClassName(getDelayMinutes(order)) === 'at_risk'
216
+ : order?.time_status === 'at_risk'
220
217
  ? '#FFC700'
221
- : getStatusClassName(getDelayMinutes(order)) === 'delayed'
218
+ : order?.time_status === 'delayed'
222
219
  ? '#E63757'
223
220
  : ''}
224
221
  >
@@ -250,6 +247,6 @@ export const OrderItem = React.memo((props: any) => {
250
247
  )}
251
248
  </Information>
252
249
  </Card>
253
- </TouchableOpacity>
250
+ </Pressable>
254
251
  )
255
252
  }, OrderItemPropsAreEqual)
@@ -8,7 +8,7 @@ import { AcceptOrRejectOrder as AcceptOrRejectOrderStyle } from './styles';
8
8
 
9
9
  function OrderListPropsAreEqual(prevProps: any, nextProps: any) {
10
10
  return JSON.stringify(prevProps.order) === JSON.stringify(nextProps.order) &&
11
- JSON.stringify(prevProps._order) === JSON.stringify(nextProps._order) &&
11
+ JSON.stringify(prevProps._order) === JSON.stringify(nextProps._order) &&
12
12
  JSON.stringify(prevProps.currentOrdenSelected) === JSON.stringify(nextProps.currentOrdenSelected) &&
13
13
  prevProps.currentTabSelected === nextProps.currentTabSelected
14
14
  }
@@ -45,6 +45,8 @@ export const PreviousOrders = (props: any) => {
45
45
  const deliveryPickupBtn = props.appTitle?.text?.includes('Delivery') && [3, 8, 18]
46
46
  const deliveryStatusCompleteBtn = props.appTitle?.text?.includes('Delivery') && [9, 19, 23]
47
47
  const isHideRejectButtons = configs?.reject_orders_enabled && configs?.reject_orders_enabled?.value !== '1' && !isBusinessApp
48
+ const isEnabledOrderNotReady = configs?.order_not_ready_enabled?.value === '1'
49
+ const isEnabledFailedPickupDriver = configs?.failed_pickup_by_driver_enabled?.value === '1'
48
50
 
49
51
  const handlePressOrder = (order: any) => {
50
52
  if (order?.locked && isLogisticOrder) return
@@ -242,7 +244,7 @@ export const PreviousOrders = (props: any) => {
242
244
  />
243
245
  </AcceptOrRejectOrderStyle>
244
246
  )}
245
- {_ordersGrouped[k][0]?.status === 3 && _ordersGrouped[k][0]?.delivery_type === 1 && !isHideRejectButtons &&
247
+ {_ordersGrouped[k][0]?.status === 3 && _ordersGrouped[k][0]?.delivery_type === 1 && !isHideRejectButtons && isEnabledOrderNotReady &&
246
248
  (
247
249
  <AcceptOrRejectOrderStyle>
248
250
  <OButton
@@ -330,9 +332,9 @@ export const PreviousOrders = (props: any) => {
330
332
  })}
331
333
  />
332
334
  )}
333
- {!!deliveryPickupBtn && deliveryPickupBtn?.includes(_ordersGrouped[k][0]?.status) && (
335
+ {!!deliveryPickupBtn && deliveryPickupBtn?.includes(_ordersGrouped[k][0]?.status) && isEnabledFailedPickupDriver && (
334
336
  <AcceptOrRejectOrderStyle>
335
- {!isHideRejectButtons && (
337
+ {!isHideRejectButtons && isEnabledOrderNotReady && (
336
338
  <OButton
337
339
  text={t('PICKUP_FAILED', 'Pickup failed')}
338
340
  bgColor={theme.colors.danger100}
@@ -41,6 +41,16 @@ export const Timestatus = styled.View`
41
41
  height: 55px;
42
42
  border-radius: 20px;
43
43
  top: 5px;
44
+
45
+ ${({ timeState }: any) => timeState === 'in_time' && css`
46
+ background-color: #00D27A;
47
+ `}
48
+ ${({ timeState }: any) => timeState === 'at_risk' && css`
49
+ background-color: #FFC700;
50
+ `}
51
+ ${({ timeState }: any) => timeState === 'delayed' && css`
52
+ background-color: #E63757;
53
+ `}
44
54
  `
45
55
 
46
56
  export const AccordionSection = styled.View`