ordering-ui-react-native 0.21.32-test → 0.21.33-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 (215) hide show
  1. package/package.json +7 -6
  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 +4 -0
  10. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -2
  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/Chat/index.tsx +23 -14
  18. package/themes/business/src/components/DriverMap/index.tsx +36 -23
  19. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  20. package/themes/business/src/components/GoogleMap/index.tsx +15 -8
  21. package/themes/business/src/components/Home/index.tsx +5 -1
  22. package/themes/business/src/components/LanguageSelector/index.tsx +1 -2
  23. package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
  24. package/themes/business/src/components/MapView/index.tsx +16 -9
  25. package/themes/business/src/components/MessagesOption/index.tsx +2 -1
  26. package/themes/business/src/components/NewOrderNotification/index.tsx +143 -96
  27. package/themes/business/src/components/OrderDetails/Business.tsx +50 -2
  28. package/themes/business/src/components/OrderDetails/Delivery.tsx +23 -11
  29. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +61 -54
  30. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +52 -20
  31. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +220 -0
  32. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +6 -1
  33. package/themes/business/src/components/OrderSummary/index.tsx +240 -76
  34. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  35. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  36. package/themes/business/src/components/OrdersOption/index.tsx +124 -48
  37. package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
  38. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +36 -38
  39. package/themes/business/src/components/PreviousOrders/OrderList.tsx +18 -13
  40. package/themes/business/src/components/PreviousOrders/index.tsx +80 -66
  41. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  42. package/themes/business/src/components/PrinterSettings/index.tsx +279 -0
  43. package/themes/business/src/components/PrinterSettings/styles.tsx +17 -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 +107 -53
  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/hooks/useLocation.tsx +5 -4
  56. package/themes/business/src/types/index.tsx +15 -2
  57. package/themes/business/src/utils/index.tsx +5 -0
  58. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  59. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  60. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  61. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  62. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -4
  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 +9 -4
  68. package/themes/original/src/components/AddressDetails/index.tsx +20 -10
  69. package/themes/original/src/components/AddressForm/index.tsx +27 -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 +2 -3
  87. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  88. package/themes/original/src/components/BusinessProductsList/index.tsx +3 -3
  89. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  90. package/themes/original/src/components/BusinessProductsListing/index.tsx +35 -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 +69 -0
  96. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  97. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  98. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +24 -404
  99. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  100. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  101. package/themes/original/src/components/Cart/index.tsx +32 -9
  102. package/themes/original/src/components/CartContent/index.tsx +96 -58
  103. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  104. package/themes/original/src/components/Checkout/index.tsx +160 -63
  105. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  106. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  107. package/themes/original/src/components/DatePicker/index.tsx +33 -0
  108. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  109. package/themes/original/src/components/Favorite/index.tsx +9 -9
  110. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  111. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  112. package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -0
  113. package/themes/original/src/components/GPSButton/index.tsx +1 -1
  114. package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
  115. package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
  116. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  117. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +36 -3
  118. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
  119. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +67 -4
  120. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  121. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +2 -2
  122. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  123. package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
  124. package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
  125. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +83 -0
  126. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
  127. package/themes/original/src/components/GoogleMap/index.tsx +6 -5
  128. package/themes/original/src/components/Help/index.tsx +7 -0
  129. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +5 -0
  130. package/themes/original/src/components/HelpGuide/index.tsx +5 -0
  131. package/themes/original/src/components/HelpOrder/index.tsx +5 -0
  132. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
  133. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  134. package/themes/original/src/components/Home/index.tsx +2 -1
  135. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  136. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  137. package/themes/original/src/components/LoginForm/Otp/index.tsx +4 -16
  138. package/themes/original/src/components/LoginForm/index.tsx +8 -3
  139. package/themes/original/src/components/MessageListing/index.tsx +6 -0
  140. package/themes/original/src/components/Messages/index.tsx +9 -7
  141. package/themes/original/src/components/Messages/styles.tsx +1 -1
  142. package/themes/original/src/components/MomentOption/index.tsx +19 -4
  143. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  144. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +1 -0
  145. package/themes/original/src/components/MultiCheckout/index.tsx +208 -21
  146. package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
  147. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -15
  148. package/themes/original/src/components/MyOrders/index.tsx +28 -28
  149. package/themes/original/src/components/NavBar/index.tsx +5 -1
  150. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  151. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  152. package/themes/original/src/components/Notifications/index.tsx +9 -8
  153. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  154. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +1 -1
  155. package/themes/original/src/components/OrderDetails/index.tsx +709 -665
  156. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  157. package/themes/original/src/components/OrderProgress/index.tsx +24 -4
  158. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  159. package/themes/original/src/components/OrderSummary/index.tsx +3 -1
  160. package/themes/original/src/components/OrderTypeSelector/index.tsx +10 -6
  161. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  162. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  163. package/themes/original/src/components/OrdersOption/index.tsx +3 -5
  164. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  165. package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
  166. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  167. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  168. package/themes/original/src/components/PaymentOptions/index.tsx +53 -6
  169. package/themes/original/src/components/PreviousOrders/index.tsx +2 -0
  170. package/themes/original/src/components/ProductForm/ActionButton.tsx +122 -0
  171. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  172. package/themes/original/src/components/ProductForm/index.tsx +67 -155
  173. package/themes/original/src/components/ProductItemAccordion/index.tsx +54 -44
  174. package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
  175. package/themes/original/src/components/ProductOptionSubOption/index.tsx +105 -91
  176. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  177. package/themes/original/src/components/Promotions/index.tsx +13 -11
  178. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  179. package/themes/original/src/components/ReviewDriver/index.tsx +5 -0
  180. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  181. package/themes/original/src/components/ReviewOrder/index.tsx +5 -0
  182. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  183. package/themes/original/src/components/ReviewProducts/index.tsx +5 -0
  184. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  185. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  186. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  187. package/themes/original/src/components/Sessions/index.tsx +5 -0
  188. package/themes/original/src/components/SignupForm/index.tsx +66 -59
  189. package/themes/original/src/components/SingleOrderCard/index.tsx +3 -2
  190. package/themes/original/src/components/SingleProductCard/index.tsx +2 -2
  191. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  192. package/themes/original/src/components/StripeCardsList/index.tsx +17 -36
  193. package/themes/original/src/components/StripeElementsForm/index.tsx +74 -59
  194. package/themes/original/src/components/StripeElementsForm/naked.tsx +47 -0
  195. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  196. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  197. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  198. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  199. package/themes/original/src/components/UserFormDetails/index.tsx +123 -75
  200. package/themes/original/src/components/UserFormDetails/styles.tsx +7 -0
  201. package/themes/original/src/components/UserProfile/index.tsx +3 -2
  202. package/themes/original/src/components/UserProfileForm/index.tsx +5 -0
  203. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  204. package/themes/original/src/components/Wallets/index.tsx +8 -4
  205. package/themes/original/src/components/Wallets/styles.tsx +1 -1
  206. package/themes/original/src/components/WebsocketStatus/index.tsx +172 -0
  207. package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
  208. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  209. package/themes/original/src/components/shared/OButton.tsx +5 -5
  210. package/themes/original/src/components/shared/OInput.tsx +1 -4
  211. package/themes/original/src/components/shared/OModal.tsx +12 -14
  212. package/themes/original/src/layouts/Container.tsx +5 -3
  213. package/themes/original/src/types/index.tsx +1 -0
  214. package/themes/original/src/utils/index.tsx +12 -1
  215. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -11,8 +11,9 @@ 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
- import { OText, OButton, OModal, OIconButton, OInput, OIcon } from '../shared';
16
+ import { OText, OButton, OModal, OInput, OIcon } from '../shared';
16
17
  import { NotFoundSource } from '../NotFoundSource';
17
18
  import {
18
19
  FiltersTab,
@@ -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: '',
@@ -93,35 +96,11 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
93
96
  const [{ parseDate }] = useUtils()
94
97
  const [configState] = useConfig()
95
98
  const [orientationState] = useDeviceOrientation();
96
- const [, { showToast }] = useToast();
97
99
  const [openSearchModal, setOpenSearchModal] = useState(false)
98
100
  const [openSLASettingModal, setOpenSLASettingModal] = useState(false)
99
101
  const [slaSettingTime, setSlaSettingTime] = useState(6000)
100
102
  const [currentDeliveryType, setCurrentDeliveryType] = useState('Delivery')
101
103
  const [search, setSearch] = useState(defaultSearchList)
102
- const [selectedTabStatus, setSelectedTabStatus] = useState<any>([])
103
- const [hour, setHour] = useState(0)
104
- const [minute, setMinute] = useState(0)
105
- const [openedSelect, setOpenedSelect] = useState('')
106
- const WIDTH_SCREEN = orientationState?.dimensions?.width
107
- const HEIGHT_SCREEN = orientationState?.dimensions?.height
108
- const IS_PORTRAIT = orientationState.orientation === PORTRAIT
109
-
110
- const preorderTypeList = [
111
- { key: null, name: t('SLA', 'SLA\'s') },
112
- { key: 'in_time', name: t('OK', 'Ok') },
113
- { key: 'at_risk', name: t('AT_RISK', 'At Risk') },
114
- { key: 'delayed', name: t('DELAYED', 'Delayed') }
115
- ]
116
-
117
- const defaultOrderTypes = [
118
- { key: 1, name: t('DELIVERY', 'Delivery') },
119
- { key: 2, name: t('PICKUP', 'Pickup') },
120
- { key: 3, name: t('EAT_IN', 'Eat in') },
121
- { key: 4, name: t('CURBSIDE', 'Curbside') },
122
- { key: 5, name: t('DRIVE_THRU', 'Drive thru') }
123
- ]
124
-
125
104
  const deliveryStatus = [
126
105
  {
127
106
  key: t('OK', 'Ok'),
@@ -145,6 +124,27 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
145
124
  backColor: '#E63757'
146
125
  }
147
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
+ ]
148
148
 
149
149
  const styles = StyleSheet.create({
150
150
  header: {
@@ -386,15 +386,21 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
386
386
  setTags({ values: [] })
387
387
  }, [currentTabSelected])
388
388
 
389
- useEffect(() => {
390
- setSelectedTabStatus(deliveryStatus)
391
- }, [])
389
+ useEffect(() => {
390
+ const unsubcribe = navigation.addListener('focus', () => {
391
+ currentTabSelected === 'logisticOrders' ? loadLogisticOrders() : loadOrders && loadOrders({ newFetch: true })
392
+ })
393
+ return unsubcribe
394
+ }, [navigation, loadOrders, loadLogisticOrders])
392
395
 
393
396
  return (
394
397
  <>
395
398
  <View style={styles.header}>
396
399
  <OText style={styles.title}>{t('MY_ORDERS', 'My orders')}</OText>
397
400
  <IconWrapper>
401
+ <View style={{ marginRight: 10 }}>
402
+ <WebsocketStatus />
403
+ </View>
398
404
  <FeatherIcon
399
405
  name='refresh-cw'
400
406
  color={theme.colors.backgroundDark}
@@ -412,7 +418,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
412
418
  </View>
413
419
  {configState?.configs?.order_deadlines_enabled?.value === '1' && (
414
420
  <View style={styles.SLAwrapper}>
415
- <View style={{ flex: 0.5 }}>
421
+ {/* <View style={{ flex: 0.5 }}>
416
422
  <OButton
417
423
  text={t('SLA_SETTING', 'SLA’s Settings')}
418
424
  textStyle={{ color: theme.colors.backArrow }}
@@ -426,9 +432,9 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
426
432
  }}
427
433
  onClick={onClickSetting}
428
434
  />
429
- </View>
430
- <View style={{ width: 10, height: '100%' }} />
431
- <View style={{ flex: 0.5, justifyContent: 'center' }}>
435
+ </View> */}
436
+ {/* <View style={{ width: 10, height: '100%' }} /> */}
437
+ {/* <View style={{ flex: 0.5, justifyContent: 'center' }}>
432
438
  <SelectDropdown
433
439
  defaultButtonText={t('SLA', 'SLA\'s')}
434
440
  data={preorderTypeList}
@@ -458,7 +464,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
458
464
  );
459
465
  }}
460
466
  />
461
- </View>
467
+ </View> */}
462
468
  </View>
463
469
  )}
464
470
  <FiltersTab>
@@ -470,7 +476,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
470
476
  nestedScrollEnabled={true}
471
477
  >
472
478
  <TabsContainer>
473
- {(isLogisticActivated && !isBusinessApp) && (
479
+ {(isLogisticActivated && !isBusinessApp && !combineTabs) && (
474
480
  <Pressable
475
481
  style={styles.pressable}
476
482
  onPress={() => setCurrentTabSelected('logisticOrders')}>
@@ -611,6 +617,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
611
617
  orderTitle={props.orderDetailsProps?.orderTitle}
612
618
  handleChangeOrderStatus={handleChangeOrderStatus}
613
619
  handleSendCustomerReview={handleSendCustomerReview}
620
+ isBusinessApp={isBusinessApp}
614
621
  />
615
622
  )}
616
623
  {!logisticOrders?.error?.length &&
@@ -621,6 +628,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
621
628
  onNavigationRedirect={onNavigationRedirect}
622
629
  getOrderStatus={getOrderStatus}
623
630
  handleClickLogisticOrder={handleClickLogisticOrder}
631
+ isBusinessApp={isBusinessApp}
624
632
  isLogisticOrder
625
633
  />
626
634
  )
@@ -716,6 +724,39 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
716
724
  {openSearchModal && (
717
725
  <SearchModalContent>
718
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>
719
760
  <InputContainer>
720
761
  <OInput
721
762
  value={search.id}
@@ -731,6 +772,21 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
731
772
  onPress={() => setSearch({ ...search, id: '' })}
732
773
  />
733
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>
734
790
  <OrdersOptionDate
735
791
  {...props}
736
792
  search={search}
@@ -920,7 +976,7 @@ export const Timer = () => {
920
976
  return (
921
977
  <TimerInputWrapper>
922
978
  <OText style={styles.settingTime} color={theme.colors.disabled}>{configs?.order_deadlines_delayed_time?.value}</OText>
923
- <OText>{t('MIN', 'min')}</OText>
979
+ <OText>{t('TIME_MIN', 'min')}</OText>
924
980
  </TimerInputWrapper>
925
981
  )
926
982
  }
@@ -928,8 +984,8 @@ export const Timer = () => {
928
984
  export const OrdersOption = (props: OrdersOptionParams) => {
929
985
  const [, t] = useLanguage();
930
986
  const [configState] = useConfig()
931
- const theme = useTheme()
932
987
  const [checkNotificationStatus, setCheckNotificationStatus] = useState({ open: false, checked: false })
988
+ const combineTabs = configState?.configs?.combine_pending_and_progress_orders?.value === '1'
933
989
  const ordersProps = {
934
990
  ...props,
935
991
  UIComponent: OrdersOptionUI,
@@ -1016,32 +1072,52 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1016
1072
  text: t('ORDER_DRIVER_ON_WAY', 'Driver on way')
1017
1073
  }
1018
1074
  ],
1019
- tabs: [
1075
+ tabs: combineTabs ? [
1020
1076
  {
1021
1077
  key: 0,
1022
- text: t('PENDING', 'Pending'),
1023
- tags: props?.orderGroupStatusCustom?.pending ?? [0, 13],
1024
- 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',
1025
1081
  },
1026
1082
  {
1027
1083
  key: 1,
1028
- text: t('IN_PROGRESS', 'In Progress'),
1029
- tags: props?.orderGroupStatusCustom?.inProgress ?? [3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23],
1030
- title: 'inProgress',
1031
- },
1032
- {
1033
- key: 2,
1034
1084
  text: t('COMPLETED', 'Completed'),
1035
1085
  tags: props?.orderGroupStatusCustom?.completed ?? [1, 11, 15],
1036
1086
  title: 'completed',
1037
1087
  },
1038
1088
  {
1039
- key: 3,
1089
+ key: 2,
1040
1090
  text: t('CANCELLED', 'Cancelled'),
1041
1091
  tags: props?.orderGroupStatusCustom?.cancelled ?? [2, 5, 6, 10, 12, 16, 17],
1042
1092
  title: 'cancelled',
1043
1093
  },
1044
- ]
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
+ ]
1045
1121
  };
1046
1122
 
1047
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,7 @@ export const OrderItem = React.memo((props: any) => {
76
77
  marginLeft: 3,
77
78
  },
78
79
  title: {
79
- marginBottom: 6,
80
+ marginBottom: showExternalId ? 0 : 6,
80
81
  fontFamily: 'Poppins',
81
82
  fontStyle: 'normal',
82
83
  fontWeight: '600',
@@ -84,7 +85,7 @@ export const OrderItem = React.memo((props: any) => {
84
85
  color: theme.colors.textGray,
85
86
  },
86
87
  date: {
87
- marginBottom: 6,
88
+ marginBottom: showExternalId ? 0 : 6,
88
89
  fontFamily: 'Poppins',
89
90
  fontStyle: 'normal',
90
91
  fontWeight: 'normal',
@@ -100,12 +101,13 @@ export const OrderItem = React.memo((props: any) => {
100
101
  });
101
102
 
102
103
  const getDelayMinutes = (order: any) => {
103
- const cdtToutc = moment(order?.delivery_datetime).utc().format('YYYY-MM-DD HH:mm:ss')
104
+ const offset = 300
105
+ const cdtToutc = moment(order?.delivery_datetime).add(offset, 'minutes').format('YYYY-MM-DD HH:mm:ss')
104
106
  const _delivery = order?.delivery_datetime_utc
105
- ? parseDate(order?.delivery_datetime_utc)
106
- : parseDate(cdtToutc)
107
+ ? parseDate(order?.delivery_datetime_utc, { outputFormat: 'YYYY-MM-DD HH:mm:ss' })
108
+ : parseDate(cdtToutc, { outputFormat: 'YYYY-MM-DD HH:mm:ss' })
107
109
  const _eta = order?.eta_time
108
- const diffTimeAsSeconds = moment(_delivery, 'YYYY-MM-DD hh:mm A').add(_eta, 'minutes').diff(moment().utc(), 'seconds')
110
+ const diffTimeAsSeconds = moment(_delivery).add(_eta, 'minutes').diff(moment().utc(), 'seconds')
109
111
  return Math.ceil(diffTimeAsSeconds / 60)
110
112
  }
111
113
 
@@ -119,7 +121,7 @@ export const OrderItem = React.memo((props: any) => {
119
121
  let restHours: string | number = Math.floor(restMinOfTargetedMin / 60)
120
122
  let restMins: string | number = restMinOfTargetedMin - 60 * restHours
121
123
  // make standard time format
122
- day = day === 0 ? '' : day + 'day '
124
+ day = day === 0 ? '' : `${day + ' ' + t('DAY', 'day') + ' '}`
123
125
  restHours = restHours < 10 ? '0' + restHours : restHours
124
126
  restMins = restMins < 10 ? '0' + restMins : restMins
125
127
 
@@ -127,12 +129,6 @@ export const OrderItem = React.memo((props: any) => {
127
129
  return finalTaget
128
130
  }
129
131
 
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
132
  useEffect(() => {
137
133
  const slaSettings = configState?.configs?.order_deadlines_enabled?.value === '1'
138
134
  setAllowColumns({
@@ -143,8 +139,7 @@ export const OrderItem = React.memo((props: any) => {
143
139
  }, [configState.loading])
144
140
 
145
141
  return (
146
- <TouchableOpacity
147
- activeOpacity={1}
142
+ <Pressable
148
143
  disabled={order?.locked && isLogisticOrder}
149
144
  style={styles.cardButton}
150
145
  onPress={() => handlePressOrder({ ...order, logistic_order_id: _order?.id })}
@@ -152,24 +147,16 @@ export const OrderItem = React.memo((props: any) => {
152
147
  <Card key={order.id}>
153
148
  {!!allowColumns?.slaBar && (
154
149
  <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
- }}
150
+ timeState={order?.time_status}
164
151
  />
165
152
  )}
166
153
  <Logo style={styles.logo}>
167
154
  <FastImage
168
155
  style={styles.icon}
169
- source={order.business?.logo ? {
170
- uri: optimizeImage(order.business?.logo, 'h_100,c_limit'),
156
+ source={order.business?.logo?.includes('https') ? {
157
+ uri: order.business?.logo,
171
158
  priority: FastImage.priority.normal,
172
- } : theme?.images?.dummies?.businessLogo}
159
+ } : order.business?.logo ?? theme?.images?.dummies?.businessLogo}
173
160
  resizeMode={FastImage.resizeMode.cover}
174
161
  />
175
162
  </Logo>
@@ -193,32 +180,43 @@ export const OrderItem = React.memo((props: any) => {
193
180
  />
194
181
  </NotificationIcon>
195
182
  )}
196
- <View style={{ flexDirection: 'row', flexWrap: 'wrap' }}>
197
- <OText
183
+ <View style={{ flexDirection: `${showExternalId ? 'column' : 'row'}`, flexWrap: 'wrap' }}>
184
+ {!order?.order_group_id && showExternalId && !order?.order_group && (
185
+ <OText
186
+ style={styles.date}
187
+ color={theme.colors.unselectText}
188
+ numberOfLines={1}
189
+ adjustsFontSizeToFit
190
+ >
191
+ {order?.external_id ?? t('NO_EXTERNAL_ID', 'No external Id ') + t('NO', 'Order No.') + order?.id}
192
+ </OText>
193
+ )}
194
+ {!showExternalId && <OText
198
195
  style={styles.date}
199
196
  color={theme.colors.unselectText}
200
197
  numberOfLines={1}
201
198
  adjustsFontSizeToFit
202
199
  >
203
- {(!!order?.order_group_id && order?.order_group && isLogisticOrder
200
+ {((!!order?.order_group_id && order?.order_group && isLogisticOrder
204
201
  ? `${order?.order_group?.orders?.length} ${t('ORDERS', 'Orders')}`
205
- : (t('NO', 'Order No.') + order.id)
206
- ) + ' · '}
202
+ : (t('NO', 'Order No.') + order?.id)
203
+ ) + ' · ')}
207
204
  {order?.delivery_datetime_utc
208
205
  ? parseDate(order?.delivery_datetime_utc)
209
206
  : parseDate(order?.delivery_datetime, { utc: false })}
210
207
  </OText>
208
+ }
211
209
  {((currentTabSelected === 'pending' || currentTabSelected === 'inProgress') && allowColumns?.timer) && (
212
210
  <>
213
- <OText> · </OText>
211
+ {!showExternalId && <OText> · </OText>}
214
212
  <OText
215
213
  style={styles.date}
216
214
  color={
217
- getStatusClassName(getDelayMinutes(order)) === 'in_time'
215
+ order?.time_status === 'in_time'
218
216
  ? '#00D27A'
219
- : getStatusClassName(getDelayMinutes(order)) === 'at_risk'
217
+ : order?.time_status === 'at_risk'
220
218
  ? '#FFC700'
221
- : getStatusClassName(getDelayMinutes(order)) === 'delayed'
219
+ : order?.time_status === 'delayed'
222
220
  ? '#E63757'
223
221
  : ''}
224
222
  >
@@ -250,6 +248,6 @@ export const OrderItem = React.memo((props: any) => {
250
248
  )}
251
249
  </Information>
252
250
  </Card>
253
- </TouchableOpacity>
251
+ </Pressable>
254
252
  )
255
253
  }, OrderItemPropsAreEqual)
@@ -2,13 +2,13 @@ import React from 'react'
2
2
  import { View } from 'react-native'
3
3
  import { useTheme } from 'styled-components/native'
4
4
  import { OButton } from '../shared';
5
- import { useLanguage } from 'ordering-components/native'
5
+ import { useLanguage, useConfig } from 'ordering-components/native'
6
6
  import { OrderItem } from './OrderItem';
7
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
  }
@@ -28,6 +28,9 @@ export const OrdersList = React.memo((props: any) => {
28
28
 
29
29
  const theme = useTheme()
30
30
  const [, t] = useLanguage()
31
+ const [{ configs }] = useConfig();
32
+
33
+ const isHideRejectButtons = configs?.reject_orders_enabled && configs?.reject_orders_enabled?.value !== '1'
31
34
 
32
35
  return (
33
36
  <View
@@ -59,16 +62,18 @@ export const OrdersList = React.memo((props: any) => {
59
62
  />
60
63
  ) : (
61
64
  <>
62
- <OButton
63
- text={t('REJECT', 'Reject')}
64
- onClick={() => handleClickLogisticOrder(2, _order?.id)}
65
- bgColor={theme.colors.red}
66
- borderColor={theme.colors.red}
67
- imgRightSrc={null}
68
- style={{ borderRadius: 7, height: 40 }}
69
- parentStyle={{ width: '45%' }}
70
- textStyle={{ color: theme.colors.white }}
71
- />
65
+ {!isHideRejectButtons && (
66
+ <OButton
67
+ text={t('REJECT', 'Reject')}
68
+ onClick={() => handleClickLogisticOrder(2, _order?.id)}
69
+ bgColor={theme.colors.red}
70
+ borderColor={theme.colors.red}
71
+ imgRightSrc={null}
72
+ style={{ borderRadius: 7, height: 40 }}
73
+ parentStyle={{ width: '45%' }}
74
+ textStyle={{ color: theme.colors.white }}
75
+ />
76
+ )}
72
77
  <OButton
73
78
  text={t('ACCEPT', 'Accept')}
74
79
  onClick={() => handleClickLogisticOrder(1, _order?.id)}
@@ -76,7 +81,7 @@ export const OrdersList = React.memo((props: any) => {
76
81
  borderColor={theme.colors.green}
77
82
  imgRightSrc={null}
78
83
  style={{ borderRadius: 7, height: 40 }}
79
- parentStyle={{ width: '45%' }}
84
+ parentStyle={{ width: isHideRejectButtons ? '100%' : '45%' }}
80
85
  textStyle={{ color: theme.colors.white }}
81
86
  />
82
87
  </>