ordering-ui-admin-external 1.43.18 → 1.43.20

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 (35) hide show
  1. package/_bundles/{ordering-ui-admin.f259950aaf0e426c1af6.js → ordering-ui-admin.93ac710b95858715130d.js} +2 -2
  2. package/_modules/components/Orders/AdminsSelector/index.js +115 -0
  3. package/_modules/components/Orders/AdminsSelector/styles.js +67 -0
  4. package/_modules/components/Orders/AllInOne/index.js +19 -14
  5. package/_modules/components/Orders/DeliveryDashboard/index.js +1 -8
  6. package/_modules/components/Orders/OrderDashboardSLASetting/index.js +7 -3
  7. package/_modules/components/Orders/OrdersCards/index.js +4 -13
  8. package/_modules/components/Orders/OrdersCards/styles.js +12 -38
  9. package/_modules/components/Orders/OrdersContentHeader/index.js +17 -8
  10. package/_modules/components/Orders/OrdersContentHeader/styles.js +18 -11
  11. package/_modules/components/Orders/OrdersDashboardSLAControls/index.js +22 -2
  12. package/_modules/components/Orders/OrdersDashboardSLAControls/styles.js +1 -1
  13. package/_modules/components/Orders/OrdersFilterGroup/index.js +8 -1
  14. package/_modules/components/Orders/OrdersHeaderFilterGroup/styles.js +3 -4
  15. package/_modules/components/Orders/OrdersManager/index.js +2 -7
  16. package/_modules/components/Orders/WebsocketStatus/index.js +1 -1
  17. package/_modules/contexts/FilterValuesContext/index.js +1 -0
  18. package/package.json +2 -2
  19. package/src/components/Orders/AdminsSelector/index.js +97 -0
  20. package/src/components/Orders/AdminsSelector/styles.js +142 -0
  21. package/src/components/Orders/AllInOne/index.js +14 -14
  22. package/src/components/Orders/DeliveryDashboard/index.js +0 -8
  23. package/src/components/Orders/OrderDashboardSLASetting/index.js +14 -8
  24. package/src/components/Orders/OrdersCards/index.js +4 -9
  25. package/src/components/Orders/OrdersCards/styles.js +2 -22
  26. package/src/components/Orders/OrdersContentHeader/index.js +21 -10
  27. package/src/components/Orders/OrdersContentHeader/styles.js +11 -5
  28. package/src/components/Orders/OrdersDashboardSLAControls/index.js +23 -1
  29. package/src/components/Orders/OrdersDashboardSLAControls/styles.js +1 -1
  30. package/src/components/Orders/OrdersFilterGroup/index.js +8 -0
  31. package/src/components/Orders/OrdersHeaderFilterGroup/styles.js +15 -12
  32. package/src/components/Orders/OrdersManager/index.js +2 -8
  33. package/src/components/Orders/WebsocketStatus/index.js +1 -1
  34. package/src/contexts/FilterValuesContext/index.js +1 -0
  35. /package/_bundles/{ordering-ui-admin.f259950aaf0e426c1af6.js.LICENSE.txt → ordering-ui-admin.93ac710b95858715130d.js.LICENSE.txt} +0 -0
@@ -8,6 +8,7 @@ exports.OrdersDashboardSLAControls = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _orderingComponentsAdminExternal = require("ordering-components-admin-external");
10
10
  var _FirstSelect = require("../../../styles/Select/FirstSelect");
11
+ var _OrderDashboardSLASetting = require("../OrderDashboardSLASetting");
11
12
  var _styles = require("./styles");
12
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -22,7 +23,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
22
23
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
23
24
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
24
25
  var OrdersDashboardSLAControls = exports.OrdersDashboardSLAControls = function OrdersDashboardSLAControls(props) {
25
- var setTimeStatus = props.setTimeStatus;
26
+ var setTimeStatus = props.setTimeStatus,
27
+ setSlaSettingTime = props.setSlaSettingTime;
26
28
  var _useState = (0, _react.useState)('default'),
27
29
  _useState2 = _slicedToArray(_useState, 2),
28
30
  defaultOptionValue = _useState2[0],
@@ -31,6 +33,10 @@ var OrdersDashboardSLAControls = exports.OrdersDashboardSLAControls = function O
31
33
  _useState4 = _slicedToArray(_useState3, 2),
32
34
  filteredTimeStatus = _useState4[0],
33
35
  setFilteredTimeStatus = _useState4[1];
36
+ var _useState5 = (0, _react.useState)(false),
37
+ _useState6 = _slicedToArray(_useState5, 2),
38
+ settingOptionOpen = _useState6[0],
39
+ setSettingOptionOpen = _useState6[1];
34
40
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
35
41
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
36
42
  t = _useLanguage2[1];
@@ -66,8 +72,18 @@ var OrdersDashboardSLAControls = exports.OrdersDashboardSLAControls = function O
66
72
  }, /*#__PURE__*/_react.default.createElement(_styles.Timestatus, {
67
73
  timeState: "delayed"
68
74
  }), /*#__PURE__*/_react.default.createElement("p", null, t('DELAYED', 'Delayed')))
75
+ }, {
76
+ value: 'sla_settings',
77
+ name: t('SLA_SETTING', 'SLA’s settings'),
78
+ content: /*#__PURE__*/_react.default.createElement(_styles.Option, {
79
+ noPadding: true
80
+ }, /*#__PURE__*/_react.default.createElement("p", null, t('SLA_SETTING', 'SLA’s settings')))
69
81
  }];
70
82
  var changeOrderTimeStatus = function changeOrderTimeStatus(val) {
83
+ if (val === 'sla_settings') {
84
+ setSettingOptionOpen(true);
85
+ return;
86
+ }
71
87
  setDefaultOptionValue(val);
72
88
  if (val === 'default') {
73
89
  setTimeStatus(null);
@@ -98,5 +114,9 @@ var OrdersDashboardSLAControls = exports.OrdersDashboardSLAControls = function O
98
114
  isShowSearchBar: true,
99
115
  searchBarPlaceholder: t('SEARCH', 'Search'),
100
116
  handleChangeSearch: handleChangeSearch
101
- })));
117
+ })), settingOptionOpen && /*#__PURE__*/_react.default.createElement(_OrderDashboardSLASetting.OrderDashboardSLASetting, {
118
+ setSlaSettingTime: setSlaSettingTime,
119
+ settingOptionOpen: settingOptionOpen,
120
+ setSettingOptionOpen: setSettingOptionOpen
121
+ }));
102
122
  };
@@ -17,7 +17,7 @@ var OrdersDashboardSLAControlsContainer = exports.OrdersDashboardSLAControlsCont
17
17
  var _props$theme2;
18
18
  return (_props$theme2 = props.theme) !== null && _props$theme2 !== void 0 && _props$theme2.rtl ? (0, _styledComponents.css)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n margin-right: 5px;\n "]))) : (0, _styledComponents.css)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin-left: 5px;\n "])));
19
19
  });
20
- var OrderTimeStatusSelectWrapper = exports.OrderTimeStatusSelectWrapper = _styledComponents.default.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n .timeStatusSelect {\n width: 168px;\n height: 43px;\n line-height: 43px;\n border: none;\n background: #F8F9FA;\n margin: 0 10px;\n >div:first-child {\n height: 100%;\n }\n }\n\n .list-wrapper {\n min-width: 168px;\n }\n\n .search-bar-container {\n padding: 7px 11px;\n width: 100%;\n input {\n border-radius: 7.6px;\n width: 100%;\n }\n }\n\n .search-bar-container {\n svg {\n top: 13px;\n }\n input {\n height: 40px;\n }\n }\n"])));
20
+ var OrderTimeStatusSelectWrapper = exports.OrderTimeStatusSelectWrapper = _styledComponents.default.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n .timeStatusSelect {\n width: fit-content;\n height: 43px;\n line-height: 43px;\n border: none;\n background: #F8F9FA;\n margin: 0 10px;\n >div:first-child {\n height: 100%;\n }\n }\n\n .list-wrapper {\n min-width: 168px;\n }\n\n .search-bar-container {\n padding: 7px 11px;\n width: 100%;\n input {\n border-radius: 7.6px;\n width: 100%;\n }\n }\n\n .search-bar-container {\n svg {\n top: 13px;\n }\n input {\n height: 40px;\n }\n }\n"])));
21
21
  var Option = exports.Option = _styledComponents.default.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 5px 10px;\n column-gap: 5px;\n\n p {\n margin: 0px;\n white-space: nowrap;\n font-size: 14px;\n line-height: 26px;\n color: ", ";\n }\n\n ", "\n"])), function (props) {
22
22
  return props.theme.colors.secundaryContrast;
23
23
  }, function (_ref) {
@@ -20,6 +20,7 @@ var _PaymethodTypeSelector = require("../PaymethodTypeSelector");
20
20
  var _CountryFilter = require("../CountryFilter");
21
21
  var _styles = require("../../../styles");
22
22
  var _CurrencyFilter = require("../CurrencyFilter");
23
+ var _AdminsSelector = require("../AdminsSelector");
23
24
  var _utils = require("../../../utils");
24
25
  var _FirstSelect = require("../../../styles/Select/FirstSelect");
25
26
  var _FilterValuesContext = require("../../../contexts/FilterValuesContext");
@@ -52,6 +53,7 @@ var OrdersFilterGroupUI = function OrdersFilterGroupUI(props) {
52
53
  paymethodsList = props.paymethodsList,
53
54
  businessesList = props.businessesList,
54
55
  citiesList = props.citiesList,
56
+ adminsList = props.adminsList,
55
57
  handleChangeGroup = props.handleChangeGroup,
56
58
  handleChangeDateType = props.handleChangeDateType,
57
59
  handleChangeFromDate = props.handleChangeFromDate,
@@ -68,6 +70,7 @@ var OrdersFilterGroupUI = function OrdersFilterGroupUI(props) {
68
70
  handleChangeCurrency = props.handleChangeCurrency,
69
71
  handleChangeMetaFieldValue = props.handleChangeMetaFieldValue,
70
72
  handleAddMetaField = props.handleAddMetaField,
73
+ handleChangeAdmin = props.handleChangeAdmin,
71
74
  handleDeleteMetafield = props.handleDeleteMetafield,
72
75
  handleChangeExternalId = props.handleChangeExternalId,
73
76
  handleChangeChildFilterValue = props.handleChangeChildFilterValue,
@@ -335,7 +338,11 @@ var OrdersFilterGroupUI = function OrdersFilterGroupUI(props) {
335
338
  assigned: value
336
339
  });
337
340
  }
338
- }))), filterValues === null || filterValues === void 0 ? void 0 : filterValues.metafield.map(function (item) {
341
+ })), /*#__PURE__*/_react.default.createElement(_AdminsSelector.AdminsSelector, {
342
+ filterValues: filterValues,
343
+ adminsList: adminsList,
344
+ handleChangeAdmin: handleChangeAdmin
345
+ })), filterValues === null || filterValues === void 0 ? void 0 : filterValues.metafield.map(function (item) {
339
346
  return /*#__PURE__*/_react.default.createElement(_styles2.WrapperRow, {
340
347
  key: item.id
341
348
  }, /*#__PURE__*/_react.default.createElement(_styles.Input, {
@@ -10,14 +10,13 @@ var _templateObject, _templateObject2, _templateObject3;
10
10
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
11
11
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
12
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
13
- var WrapperRow = exports.WrapperRow = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n width: 100% !important;\n flex-direction: column;\n justify-content: flex-start;\n padding-top: 10px;\n padding-bottom: 0px;\n\n & > div {\n width: 100%;\n height: 47px;\n max-width: 1000px;\n margin-right: 10px;\n margin-bottom: 20px;\n background-color: ", ";\n border: none;\n font-size: 14px;\n border-radius: 8px;\n > div:first-child {\n height: 100%;\n }\n }\n\n .order-status-multi-select {\n p {\n padding: 0;\n color: ", " !important;\n }\n }\n\n .date-filter-container {\n z-index: 100;\n }\n\n input {\n width: 100%;\n height: 47px;\n padding: 10px 25px;\n box-sizing: border-box;\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n -moz-appearance: textfield;\n }\n\n .close {\n right: 8px;\n }\n\n .external_id {\n @media (max-width: 1200px) {\n flex: auto;\n }\n\n }\n\n @media (min-width: 992px) {\n flex-direction: row;\n }\n\n ", "\n"])), function (props) {
13
+ var WrapperRow = exports.WrapperRow = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n width: 100%;\n align-items: center;\n padding-bottom: 0px;\n\n & > div {\n width: 100%;\n height: 47px;\n max-width: 1000px;\n margin-right: 10px;\n background-color: ", ";\n border: none;\n font-size: 14px;\n border-radius: 8px;\n > div:first-child {\n height: 100%;\n }\n }\n\n .order-status-multi-select {\n p {\n padding: 0;\n color: ", " !important;\n }\n }\n\n .date-filter-container {\n z-index: 100;\n }\n\n input {\n width: 100%;\n height: 47px;\n padding: 10px 25px;\n box-sizing: border-box;\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n -moz-appearance: textfield;\n }\n\n .close {\n right: 8px;\n }\n\n .external_id {\n @media (max-width: 1200px) {\n flex: auto;\n }\n }\n\n @media (max-width: 798px) {\n flex-direction: column !important;\n padding: 10px 15px 0 0px;\n & > div {\n margin-top: 15px;\n }\n }\n\n ", "\n"])), function (props) {
14
14
  return props.theme.colors.secundary;
15
15
  }, function (props) {
16
16
  return props.theme.colors.headingColor;
17
17
  }, function (_ref) {
18
- var wrapperWidth = _ref.wrapperWidth,
19
- isSelectedOrders = _ref.isSelectedOrders;
20
- return wrapperWidth < 992 && (0, _styledComponents.css)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex-direction: column !important;\n padding: ", ";\n "])), !isSelectedOrders && '15px 10px 0 10px');
18
+ var isSelectedOrders = _ref.isSelectedOrders;
19
+ return isSelectedOrders && (0, _styledComponents.css)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex-direction: column !important;\n padding: ", ";\n & > div {\n margin-top: 15px;\n }\n "])), !isSelectedOrders && '10px 15px 0 0px');
21
20
  });
22
21
  var Option = exports.Option = _styledComponents.default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 14px;\n line-height: 24px;\n color: ", ";\n display: flex;\n align-items: center;\n padding: 5px;\n"])), function (props) {
23
22
  return props.theme.colors.secundaryContrast;
@@ -41,6 +41,7 @@ var OrdersManagerUI = function OrdersManagerUI(props) {
41
41
  paymethodsList = props.paymethodsList,
42
42
  businessesList = props.businessesList,
43
43
  citiesList = props.citiesList,
44
+ adminsList = props.adminsList,
44
45
  ordersStatusGroup = props.ordersStatusGroup,
45
46
  filterValues = props.filterValues,
46
47
  deletedOrderIds = props.deletedOrderIds,
@@ -219,6 +220,7 @@ var OrdersManagerUI = function OrdersManagerUI(props) {
219
220
  citiesList: citiesList,
220
221
  paymethodsList: paymethodsList,
221
222
  businessesList: businessesList,
223
+ adminsList: adminsList,
222
224
  handleChangeSearch: handleChangeSearch,
223
225
  handleChangeFilterValues: handleChangeFilterValues,
224
226
  selectedOrderIds: selectedOrderIds,
@@ -232,13 +234,6 @@ var OrdersManagerUI = function OrdersManagerUI(props) {
232
234
  setTimeStatus: setTimeStatus,
233
235
  setSlaSettingTime: setSlaSettingTime,
234
236
  isLateralBar: isLateralBar
235
- }), /*#__PURE__*/_react.default.createElement(_OrdersHeaderFilterGroup.OrdersHeaderFilterGroup, {
236
- isSelectedOrders: isSelectedOrders,
237
- driverGroupList: driverGroupList,
238
- driversList: driversList,
239
- searchValue: searchValue,
240
- handleChangeFilterValues: handleChangeFilterValues,
241
- handleChangeSearch: handleChangeSearch
242
237
  }), /*#__PURE__*/_react.default.createElement(_OrderStatusFilterBar.OrderStatusFilterBar, {
243
238
  isUseQuery: isUseQuery,
244
239
  selectedOrderStatus: ordersStatusGroup,
@@ -79,7 +79,7 @@ var SocketStatusUI = function SocketStatusUI(props) {
79
79
  onClick: function onClick() {
80
80
  return setOpenModal(true);
81
81
  }
82
- }, /*#__PURE__*/_react.default.createElement(_styles2.StatusContainer, null, /*#__PURE__*/_react.default.createElement("span", null, t('CONNECTION_STATUS', 'Connection status')), /*#__PURE__*/_react.default.createElement(_styles2.WebsocketStatusDot, {
82
+ }, /*#__PURE__*/_react.default.createElement(_styles2.StatusContainer, null, /*#__PURE__*/_react.default.createElement("span", null, t('CONNECTION', 'Connection')), /*#__PURE__*/_react.default.createElement(_styles2.WebsocketStatusDot, {
83
83
  status: socketStatus
84
84
  }))), /*#__PURE__*/_react.default.createElement(_Shared.Modal, {
85
85
  open: openModal,
@@ -52,6 +52,7 @@ var FilterValuesProvider = exports.FilterValuesProvider = function FilterValuesP
52
52
  customerEmail: null,
53
53
  customerCellphone: null,
54
54
  customerLastname: null,
55
+ administratorIds: [],
55
56
  coupon: null,
56
57
  offerId: null
57
58
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ordering-ui-admin-external",
3
- "version": "1.43.18",
3
+ "version": "1.43.20",
4
4
  "description": "Ordering UI Admin Components",
5
5
  "main": "./_modules/index.js",
6
6
  "exports": {
@@ -83,7 +83,7 @@
83
83
  "lodash": "^4.17.20",
84
84
  "moment": "^2.29.1",
85
85
  "moment-range": "^4.0.2",
86
- "ordering-components-admin-external": "1.43.9",
86
+ "ordering-components-admin-external": "1.43.11",
87
87
  "polished": "^3.6.7",
88
88
  "prop-types": "^15.7.2",
89
89
  "react-big-calendar": "^1.4.2",
@@ -0,0 +1,97 @@
1
+ import React, { useEffect, useState } from 'react'
2
+ import { useLanguage } from 'ordering-components-admin-external'
3
+ import { useTheme } from 'styled-components'
4
+ import { MultiSelect } from '../../../styles/MultiSelect'
5
+
6
+ import {
7
+ Option,
8
+ OptionContent,
9
+ DriverNameContainer,
10
+ WrapperDriverImage,
11
+ DriverImage,
12
+ DriverName,
13
+ PlaceholderTitle
14
+ } from './styles'
15
+
16
+ export const AdminsSelector = (props) => {
17
+ const {
18
+ adminsList,
19
+ defaultValue,
20
+ small,
21
+ padding,
22
+ handleChangeAdmin,
23
+ filterValues
24
+ } = props
25
+
26
+ const [, t] = useLanguage()
27
+ const theme = useTheme()
28
+ const [adminsMultiOptionList, setAdminsMultiOptionList] = useState([])
29
+ const [searchValue, setSearchValue] = useState(null)
30
+ const adminsLoading = [{ value: 'default', content: <Option small={small}>{t('LOADING', 'loading')}...</Option> }]
31
+ const Placeholder = <PlaceholderTitle>{t('SELECT_ADMINISTRATOR', 'Select the administrator')}</PlaceholderTitle>
32
+
33
+ useEffect(() => {
34
+ if (!adminsList?.loading && adminsList?.admins?.length > 0) {
35
+ let _adminList
36
+ if (searchValue) {
37
+ _adminList = adminsList?.admins?.filter(admin => (admin.name + admin.lastname).toLocaleLowerCase().includes(searchValue.toLocaleLowerCase()))
38
+ } else {
39
+ _adminList = adminsList?.admins
40
+ }
41
+ const _adminsOptionListTemp = _adminList?.map((admin, i) => {
42
+ return {
43
+ value: admin.id,
44
+ showDisable: true,
45
+ content: (
46
+ <Option small={small} padding={padding}>
47
+ <WrapperDriverImage small={small} className='driver-photo'>
48
+ <DriverImage bgimage={admin.photo || theme.images.icons?.noDriver} small={small} />
49
+ </WrapperDriverImage>
50
+ <OptionContent>
51
+ <DriverNameContainer className='driver-info'>
52
+ <DriverName small={small}>{admin?.name} {admin?.lastname}</DriverName>
53
+ </DriverNameContainer>
54
+ </OptionContent>
55
+ </Option>
56
+ )
57
+ }
58
+ })
59
+
60
+ setAdminsMultiOptionList(_adminsOptionListTemp)
61
+ }
62
+ }, [adminsList, defaultValue, searchValue])
63
+
64
+ return (
65
+ <>
66
+ {!adminsList?.loading && adminsList?.admins?.length > 0 ? (
67
+ <MultiSelect
68
+ defaultValue={filterValues.administratorIds}
69
+ placeholder={Placeholder}
70
+ options={adminsMultiOptionList}
71
+ optionInnerMargin='10px'
72
+ optionInnerMaxHeight='150px'
73
+ onChange={(admin) => handleChangeAdmin(admin)}
74
+ isShowSearchBar
75
+ searchBarIsCustomLayout
76
+ searchBarIsNotLazyLoad
77
+ searchValue={searchValue}
78
+ handleChangeSearch={(val) => setSearchValue(val)}
79
+ />
80
+ ) : (
81
+ <MultiSelect
82
+ defaultValue='default'
83
+ options={adminsLoading}
84
+ optionInnerMargin='10px'
85
+ optionInnerMaxHeight='150px'
86
+ className='driver-select'
87
+ isShowSearchBar
88
+ searchBarIsCustomLayout
89
+ searchBarIsNotLazyLoad
90
+ searchValue={searchValue}
91
+ handleChangeSearch={(val) => setSearchValue(val)}
92
+ />
93
+ )}
94
+ </>
95
+ )
96
+ }
97
+
@@ -0,0 +1,142 @@
1
+ import React from 'react'
2
+ import styled, { css } from 'styled-components'
3
+
4
+ export const Option = styled.div`
5
+ display: flex;
6
+ align-items: center;
7
+ color: ${props => props.theme.colors?.headingColor};
8
+ padding: ${({ padding }) => padding || '5px'};
9
+ white-space: nowrap;
10
+
11
+ img {
12
+ width: 45px;
13
+ border-radius: 8px;
14
+ }
15
+
16
+ ${({ small }) => small && css`
17
+ padding: ${({ padding }) => padding || '5px 0px'};
18
+ img {
19
+ width: 25px;
20
+ }
21
+ `}
22
+
23
+ span {
24
+ overflow: hidden;
25
+ white-space: nowrap;
26
+ text-overflow: ellipsis;
27
+ max-width: 350px;
28
+ }
29
+
30
+ @media (max-width: 576px) {
31
+ padding: ${({ padding }) => padding || '5px 0px'};
32
+ ${props => props.theme?.rtl ? css`
33
+ margin-right: 10px;
34
+ ` : css`
35
+ margin-left: 10px;
36
+ `}
37
+ span {
38
+ max-width: 280px;
39
+ }
40
+ }
41
+ `
42
+
43
+ export const OptionContent = styled.div`
44
+ flex: 1;
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: space-between;
48
+ `
49
+
50
+ export const DriverNameContainer = styled.div`
51
+ line-height: 1.3;
52
+ color: #263238;
53
+ `
54
+
55
+ export const DriverName = styled.p`
56
+ font-size: 14px;
57
+ font-weight: 600;
58
+ line-height: 1.3;
59
+ color: ${props => props.theme.colors.headingColor};
60
+ overflow: hidden;
61
+ white-space: nowrap;
62
+ text-overflow: ellipsis;
63
+ max-width: 150px;
64
+ margin: 0px;
65
+
66
+ ${({ small }) => small && css`
67
+ font-weight: 400;
68
+ `}
69
+
70
+ @media (max-width: 576px) {
71
+ max-width: 90px;
72
+ }
73
+ `
74
+ export const DriverText = styled.span`
75
+ font-size: 12px;
76
+ color: ${props => props.theme.colors.lightGray};
77
+ ${({ small }) => small && css`
78
+ display: none;
79
+ `}
80
+ `
81
+
82
+ export const WrapperDriverImage = styled.div`
83
+ width: 45px;
84
+ height: 45px;
85
+ box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.1);
86
+ border-radius: 8px;
87
+ display: flex;
88
+
89
+ svg {
90
+ width: 100%;
91
+ height: 100%;
92
+ padding: 7px;
93
+ box-sizing: border-box;
94
+ border-radius: 50%;
95
+ }
96
+
97
+ ${({ small }) => small && css`
98
+ width: 24px;
99
+ height: 24px;
100
+ border-radius: 8px;
101
+ svg {
102
+ padding: 3px;
103
+ }
104
+ `}
105
+
106
+ ${props => props.theme?.rtl ? css`
107
+ margin-left: 8px;
108
+ ` : css`
109
+ margin-right: 8px;
110
+ `}
111
+ `
112
+ const DriverImageStyled = styled.div`
113
+ display: flex;
114
+ width: 100%;
115
+ height: 100%;
116
+ box-sizing: border-box;
117
+ position: relative;
118
+ background-repeat: no-repeat, repeat;
119
+ background-size: cover;
120
+ object-fit: cover;
121
+ background-position: center;
122
+ border-radius: 8px;
123
+ `
124
+ export const DriverImage = (props) => {
125
+ return (
126
+ <DriverImageStyled
127
+ {...props}
128
+ style={{ backgroundImage: `url(${props.bgimage})` }}
129
+ >
130
+ {props.children}
131
+ </DriverImageStyled>
132
+ )
133
+ }
134
+
135
+ export const PlaceholderTitle = styled(Option)`
136
+ padding: 10px;
137
+
138
+ ${({ isSingle }) => isSingle && css`
139
+ padding: 0px;
140
+ font-size: 14px;
141
+ `}
142
+ `
@@ -1,7 +1,6 @@
1
1
  import React, { useState, useEffect } from 'react'
2
2
  import { useLocation } from 'react-router-dom'
3
- import { useLanguage, useSession, OrdersManage as OrdersManageController } from 'ordering-components-admin-external'
4
- import { OrdersHeaderFilterGroup } from '../OrdersHeaderFilterGroup'
3
+ import { useLanguage, useConfig, useSession, OrdersManage as OrdersManageController } from 'ordering-components-admin-external'
5
4
  import { OrderStatusFilterBar } from '../OrderStatusFilterBar'
6
5
  import { OrdersContentHeader } from '../OrdersContentHeader'
7
6
  import { OrderDetails } from '../OrderDetails'
@@ -57,11 +56,15 @@ const OrdersManagerUI = (props) => {
57
56
  setSelectedOrderIds,
58
57
  allowColumns,
59
58
  setAllowColumns,
60
- isUseQuery
59
+ isUseQuery,
60
+ adminsList
61
61
  } = props
62
62
 
63
63
  const [, t] = useLanguage()
64
64
  const [{ user }] = useSession()
65
+ const [configState] = useConfig()
66
+
67
+ const isSearchFilterValue = (configState?.configs?.filter_order_options?.value.split('|').map(value => (value)) || []).includes('driver_group_general')
65
68
 
66
69
  const query = new URLSearchParams(useLocation().search)
67
70
  const [isOpenOrderDetail, setIsOpenOrderDetail] = useState(false)
@@ -212,6 +215,7 @@ const OrdersManagerUI = (props) => {
212
215
  handleChangeMultiOrdersStatus={handleChangeMultiOrdersStatus}
213
216
  handleOpenTour={() => handleOpenTour()}
214
217
  filterModalOpen={filterModalOpen}
218
+ adminsList={adminsList}
215
219
  setFilterModalOpen={setFilterModalOpen}
216
220
  setTimeStatus={setTimeStatus}
217
221
  setSlaSettingTime={setSlaSettingTime}
@@ -221,23 +225,19 @@ const OrdersManagerUI = (props) => {
221
225
  <TopContent>
222
226
  <DriversContainer>
223
227
  <DriversManager
224
- filterValues={filterValues}
225
- setMapsData={setMapsData}
226
- handleUpdateAssignedOrders={handleUpdateAssignedOrders}
227
228
  disableSocketRoomDriver
228
- drivers={driversList.drivers}
229
229
  showCompressedInfo
230
+ filterValues={filterValues}
231
+ searchFilterValue={searchValue}
232
+ driverGroupList={driverGroupList}
233
+ isSearchFilterValue={isSearchFilterValue}
234
+ drivers={driversList.drivers}
235
+ setMapsData={setMapsData}
230
236
  handleEmtpyOrderSelected={handleBackRedirect}
237
+ handleUpdateAssignedOrders={handleUpdateAssignedOrders}
231
238
  />
232
239
  </DriversContainer>
233
240
  <OrdersContainer showCompressedInfo>
234
- <OrdersHeaderFilterGroup
235
- driverGroupList={driverGroupList}
236
- searchValue={searchValue}
237
- driversList={driversList}
238
- handleChangeFilterValues={handleChangeFilterValues}
239
- handleChangeSearch={handleChangeSearch}
240
- />
241
241
  <OrderStatusFilterBar
242
242
  isUseQuery={isUseQuery}
243
243
  selectedOrderStatus={ordersStatusGroup}
@@ -2,7 +2,6 @@ import React, { useState } from 'react'
2
2
  import { useConfig } from 'ordering-components-admin-external'
3
3
  import { DeliveriesLocation } from '../DeliveriesLocation'
4
4
  import { OrdersDashboardList } from '../OrdersDashboardList'
5
- import { OrdersHeaderFilterGroup } from '../OrdersHeaderFilterGroup'
6
5
  import { OrderStatusFilterBar } from '../OrderStatusFilterBar'
7
6
  import { OrderStatusSubFilter } from '../OrderStatusSubFilter'
8
7
 
@@ -57,13 +56,6 @@ export const DeliveryDashboard = (props) => {
57
56
  return (
58
57
  <DeliveryDashboardContainer>
59
58
  <OrdersContainer>
60
- <OrdersHeaderFilterGroup
61
- driverGroupList={driverGroupList}
62
- searchValue={searchValue}
63
- driversList={driversList}
64
- handleChangeFilterValues={handleChangeFilterValues}
65
- handleChangeSearch={handleChangeSearch}
66
- />
67
59
  <FilterContainer>
68
60
  <OrderStatusFilterBar
69
61
  isUseQuery={isUseQuery}
@@ -26,10 +26,12 @@ export const OrderDashboardSLASettingUI = (props) => {
26
26
  const {
27
27
  settingsState,
28
28
  handleInputChange,
29
- handleClickUpdate
29
+ handleClickUpdate,
30
+ settingOptionOpen,
31
+ setSettingOptionOpen
30
32
  } = props
31
33
  const [, t] = useLanguage()
32
- const [settingOpen, setSettingOpen] = useState(false)
34
+ const [settingOpen, setSettingOpen] = useState(settingOptionOpen)
33
35
  const [currentTabItem, setCurrentTabItem] = useState(1)
34
36
  const [selectedTabStatus, setSelectedTabStatus] = useState(null)
35
37
  const theme = useTheme()
@@ -70,12 +72,14 @@ export const OrderDashboardSLASettingUI = (props) => {
70
72
 
71
73
  const handleCloseSettings = () => {
72
74
  setSettingOpen(false)
75
+ setSettingOptionOpen && setSettingOptionOpen(false)
73
76
  }
74
77
 
75
78
  const onSubmit = (data) => {
76
79
  if (data && Object.keys(data).length > 0) {
77
80
  handleClickUpdate()
78
81
  setSettingOpen(false)
82
+ setSettingOptionOpen && setSettingOptionOpen(false)
79
83
  }
80
84
  }
81
85
 
@@ -110,12 +114,14 @@ export const OrderDashboardSLASettingUI = (props) => {
110
114
 
111
115
  return (
112
116
  <SettingContainer>
113
- <Button
114
- color='secundary'
115
- onClick={() => setSettingOpen(true)}
116
- >
117
- {t('SLA_SETTING', 'SLA’s settings')}
118
- </Button>
117
+ {!settingOptionOpen && (
118
+ <Button
119
+ color='secundary'
120
+ onClick={() => setSettingOpen(true)}
121
+ >
122
+ {t('SLA_SETTING', 'SLA’s settings')}
123
+ </Button>
124
+ )}
119
125
  <Modal
120
126
  open={settingOpen}
121
127
  onClose={() => handleCloseSettings()}
@@ -56,11 +56,6 @@ export const OrdersCards = (props) => {
56
56
  return imageKeys
57
57
  }, {})
58
58
 
59
- const filterOptions = (configState?.configs?.filter_order_options?.value.split('|').map(value => value) || [])
60
- const optionsToCheck = ['external_id', 'driver', 'driver_group_general']
61
-
62
- const matchingFilterOptions = filterOptions.filter(option => optionsToCheck.includes(option)).length
63
-
64
59
  const handleChangePage = (page) => {
65
60
  getPageOrders(pagination.pageSize, page)
66
61
  }
@@ -185,7 +180,7 @@ export const OrdersCards = (props) => {
185
180
 
186
181
  return (
187
182
  <>
188
- <OrdersListContainer matchingFilterOptions={matchingFilterOptions}>
183
+ <OrdersListContainer>
189
184
  {orderList.loading ? (
190
185
  [...Array(10).keys()].map(i => (
191
186
  <OrderCard key={i}>
@@ -261,15 +256,15 @@ export const OrdersCards = (props) => {
261
256
  <p className={order?.time_status}>{displayDelayedTime(order)}</p>
262
257
  </Timer>
263
258
  )}
264
- { order?.codigoPod && (
265
- <div style={{paddingTop: 50}}>
259
+ {order?.codigoPod && (
260
+ <div style={{ paddingTop: 50 }}>
266
261
  <p>
267
262
  {
268
263
  `${t('PODS', 'Pod')}: ${order?.codigoPod}`
269
264
  }
270
265
  </p>
271
266
  </div>
272
- )}
267
+ )}
273
268
  </CardHeading>
274
269
  {isMessagesView && order?.unread_count > 0 && (
275
270
  <UnreadMessageCounter>
@@ -1,33 +1,13 @@
1
1
  import styled, { css } from 'styled-components'
2
2
 
3
- const calculateHeight = (matchingFilterOptions, customMappings) => {
4
- const defaultMapping = {
5
- 3: 'calc(100% - 410px)',
6
- 2: 'calc(100% - 350px)',
7
- 1: 'calc(100% - 280px)',
8
- default: 'calc(100% - 200px)'
9
- }
10
-
11
- const mappings = { ...defaultMapping, ...customMappings }
12
-
13
- return mappings[matchingFilterOptions] || mappings.default
14
- }
15
-
16
3
  export const OrdersListContainer = styled.div`
17
- height: ${({ matchingFilterOptions }) => calculateHeight(matchingFilterOptions)};
4
+ height: calc(100% - 200px);
18
5
  padding: 0 12px 15px 12px;
19
6
  box-sizing: border-box;
20
7
  overflow-x: hidden;
21
8
 
22
9
  @media (min-width: 1024px) and (max-width: 1300px) {
23
- height: ${({ matchingFilterOptions }) =>
24
- calculateHeight(matchingFilterOptions, {
25
- 3: 'calc(100% - 400px)',
26
- 2: 'calc(100% - 340px)',
27
- 1: 'calc(100% - 270px)',
28
- default: 'calc(100% - 230px)'
29
- }
30
- )};
10
+ height: calc(100% - 230px);
31
11
  }
32
12
  `
33
13
  export const OrderNunberContainer = styled.div`