ordering-ui-admin-external 1.45.17 → 1.45.19

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.
@@ -34,9 +34,9 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
34
34
  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; } }
35
35
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
36
36
  var DriversGroupsList = exports.DriversGroupsList = function DriversGroupsList(props) {
37
+ var _driversGroupsState$g, _driversGroupsState$g2;
37
38
  var curDriversGroup = props.curDriversGroup,
38
39
  driversGroupsState = props.driversGroupsState,
39
- searchValue = props.searchValue,
40
40
  handleOpenDetails = props.handleOpenDetails,
41
41
  handleUpdateDriversGroup = props.handleUpdateDriversGroup,
42
42
  selectedGroupList = props.selectedGroupList,
@@ -50,16 +50,6 @@ var DriversGroupsList = exports.DriversGroupsList = function DriversGroupsList(p
50
50
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
51
51
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
52
52
  t = _useLanguage2[1];
53
-
54
- // Get current groups
55
- var _useState = (0, _react.useState)([]),
56
- _useState2 = _slicedToArray(_useState, 2),
57
- currentGroups = _useState2[0],
58
- setCurrentGroups = _useState2[1];
59
- var _useState3 = (0, _react.useState)(null),
60
- _useState4 = _slicedToArray(_useState3, 2),
61
- totalPages = _useState4[0],
62
- setTotalPages = _useState4[1];
63
53
  var handleChangePage = function handleChangePage(page) {
64
54
  setPagination(_objectSpread(_objectSpread({}, pagination), {}, {
65
55
  currentPage: page
@@ -70,20 +60,6 @@ var DriversGroupsList = exports.DriversGroupsList = function DriversGroupsList(p
70
60
  pageSize: pageSize
71
61
  }));
72
62
  };
73
- (0, _react.useEffect)(function () {
74
- if (driversGroupsState.loading) return;
75
- var groups = [];
76
- if (searchValue) {
77
- groups = driversGroupsState.groups.filter(function (plugin) {
78
- var _plugin$name;
79
- return (_plugin$name = plugin.name) === null || _plugin$name === void 0 ? void 0 : _plugin$name.toLowerCase().includes(searchValue === null || searchValue === void 0 ? void 0 : searchValue.toLowerCase());
80
- });
81
- } else {
82
- groups = _toConsumableArray(driversGroupsState.groups);
83
- }
84
- setTotalPages(pagination.totalPages);
85
- setCurrentGroups(groups);
86
- }, [driversGroupsState, searchValue]);
87
63
  var handleClickDriverGroup = function handleClickDriverGroup(e, group) {
88
64
  var isInvalid = e.target.closest('.group-checkbox') || e.target.closest('.group-enabled');
89
65
  if (isInvalid) return;
@@ -98,12 +74,12 @@ var DriversGroupsList = exports.DriversGroupsList = function DriversGroupsList(p
98
74
  }
99
75
  };
100
76
  (0, _react.useEffect)(function () {
101
- if (!isUseQuery || !totalPages) return;
77
+ if (!isUseQuery || !pagination.totalPages) return;
102
78
  (0, _utils.addQueryToUrl)({
103
79
  page: pagination.currentPage,
104
80
  pageSize: pagination.pageSize
105
81
  });
106
- }, [pagination, totalPages]);
82
+ }, [pagination, pagination.totalPages]);
107
83
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_styles2.DriversGroupsContainer, null, /*#__PURE__*/_react.default.createElement(_styles2.TableWrapper, null, /*#__PURE__*/_react.default.createElement(_styles2.GroupsTable, {
108
84
  "data-tour": "tour_delivery_completed",
109
85
  disabled: isFromStore
@@ -145,7 +121,7 @@ var DriversGroupsList = exports.DriversGroupsList = function DriversGroupsList(p
145
121
  }))), !isFromStore && /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement(_styles2.ActionsContainer, null, /*#__PURE__*/_react.default.createElement(_styles2.EnableWrapper, null, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, {
146
122
  width: 50
147
123
  }))))));
148
- }) : currentGroups.map(function (group) {
124
+ }) : driversGroupsState === null || driversGroupsState === void 0 || (_driversGroupsState$g = driversGroupsState.groups) === null || _driversGroupsState$g === void 0 ? void 0 : _driversGroupsState$g.map(function (group) {
149
125
  var _group$administrator, _group$administrator2, _group$administrator3, _group$administrator4, _group$administrator5;
150
126
  return /*#__PURE__*/_react.default.createElement("tbody", {
151
127
  key: group.id,
@@ -179,7 +155,7 @@ var DriversGroupsList = exports.DriversGroupsList = function DriversGroupsList(p
179
155
  return handleOpenDetails(null);
180
156
  },
181
157
  disabled: actionDisabled
182
- }, t('ADD_NEW_DRIVER_GROUP', 'Add new driver group')), (currentGroups === null || currentGroups === void 0 ? void 0 : currentGroups.length) > 0 && /*#__PURE__*/_react.default.createElement(_Shared.Pagination, {
158
+ }, t('ADD_NEW_DRIVER_GROUP', 'Add new driver group')), (driversGroupsState === null || driversGroupsState === void 0 || (_driversGroupsState$g2 = driversGroupsState.groups) === null || _driversGroupsState$g2 === void 0 ? void 0 : _driversGroupsState$g2.length) > 0 && /*#__PURE__*/_react.default.createElement(_Shared.Pagination, {
183
159
  currentPage: pagination.currentPage,
184
160
  totalPages: pagination.totalPages,
185
161
  handleChangePage: handleChangePage,
@@ -54,7 +54,9 @@ var DriversGroupsListingUI = function DriversGroupsListingUI(props) {
54
54
  actionDisabled = props.actionDisabled,
55
55
  isUseQuery = props.isUseQuery,
56
56
  pagination = props.pagination,
57
- setPagination = props.setPagination;
57
+ setPagination = props.setPagination,
58
+ searchValue = props.searchValue,
59
+ onSearch = props.onSearch;
58
60
  var history = (0, _reactRouterDom.useHistory)();
59
61
  var query = new URLSearchParams((0, _reactRouterDom.useLocation)().search);
60
62
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
@@ -64,57 +66,53 @@ var DriversGroupsListingUI = function DriversGroupsListingUI(props) {
64
66
  _useInfoShare2 = _slicedToArray(_useInfoShare, 2),
65
67
  isCollapse = _useInfoShare2[0].isCollapse,
66
68
  handleMenuCollapse = _useInfoShare2[1].handleMenuCollapse;
67
- var _useState = (0, _react.useState)(null),
68
- _useState2 = _slicedToArray(_useState, 2),
69
- searchValue = _useState2[0],
70
- setSearchValue = _useState2[1];
71
- var _useState3 = (0, _react.useState)({
69
+ var _useState = (0, _react.useState)({
72
70
  open: false,
73
71
  content: []
74
72
  }),
75
- _useState4 = _slicedToArray(_useState3, 2),
76
- alertState = _useState4[0],
77
- setAlertState = _useState4[1];
78
- var _useState5 = (0, _react.useState)({
73
+ _useState2 = _slicedToArray(_useState, 2),
74
+ alertState = _useState2[0],
75
+ setAlertState = _useState2[1];
76
+ var _useState3 = (0, _react.useState)({
79
77
  open: false,
80
78
  content: null,
81
79
  handleOnAccept: null
82
80
  }),
81
+ _useState4 = _slicedToArray(_useState3, 2),
82
+ confirm = _useState4[0],
83
+ setConfirm = _useState4[1];
84
+ var _useState5 = (0, _react.useState)(0),
83
85
  _useState6 = _slicedToArray(_useState5, 2),
84
- confirm = _useState6[0],
85
- setConfirm = _useState6[1];
86
- var _useState7 = (0, _react.useState)(0),
86
+ moveDistance = _useState6[0],
87
+ setMoveDistance = _useState6[1];
88
+ var _useState7 = (0, _react.useState)(false),
87
89
  _useState8 = _slicedToArray(_useState7, 2),
88
- moveDistance = _useState8[0],
89
- setMoveDistance = _useState8[1];
90
- var _useState9 = (0, _react.useState)(false),
90
+ openDetails = _useState8[0],
91
+ setOpenDetails = _useState8[1];
92
+ var _useState9 = (0, _react.useState)(null),
91
93
  _useState10 = _slicedToArray(_useState9, 2),
92
- openDetails = _useState10[0],
93
- setOpenDetails = _useState10[1];
94
+ curDriversGroup = _useState10[0],
95
+ setCurDriversGroup = _useState10[1];
94
96
  var _useState11 = (0, _react.useState)(null),
95
97
  _useState12 = _slicedToArray(_useState11, 2),
96
- curDriversGroup = _useState12[0],
97
- setCurDriversGroup = _useState12[1];
98
- var _useState13 = (0, _react.useState)(null),
98
+ curDriversGroupId = _useState12[0],
99
+ setCurDriversGroupId = _useState12[1];
100
+ var _useState13 = (0, _react.useState)(false),
99
101
  _useState14 = _slicedToArray(_useState13, 2),
100
- curDriversGroupId = _useState14[0],
101
- setCurDriversGroupId = _useState14[1];
102
+ isExtendExtraOpen = _useState14[0],
103
+ setIsExtendExtraOpen = _useState14[1];
102
104
  var _useState15 = (0, _react.useState)(false),
103
105
  _useState16 = _slicedToArray(_useState15, 2),
104
- isExtendExtraOpen = _useState16[0],
105
- setIsExtendExtraOpen = _useState16[1];
106
+ isAddMode = _useState16[0],
107
+ setIsAddMode = _useState16[1];
106
108
  var _useState17 = (0, _react.useState)(false),
107
109
  _useState18 = _slicedToArray(_useState17, 2),
108
- isAddMode = _useState18[0],
109
- setIsAddMode = _useState18[1];
110
- var _useState19 = (0, _react.useState)(false),
110
+ isTourOpen = _useState18[0],
111
+ setIsTourOpen = _useState18[1];
112
+ var _useState19 = (0, _react.useState)(4),
111
113
  _useState20 = _slicedToArray(_useState19, 2),
112
- isTourOpen = _useState20[0],
113
- setIsTourOpen = _useState20[1];
114
- var _useState21 = (0, _react.useState)(4),
115
- _useState22 = _slicedToArray(_useState21, 2),
116
- currentTourStep = _useState22[0],
117
- setCurrentTourStep = _useState22[1];
114
+ currentTourStep = _useState20[0],
115
+ setCurrentTourStep = _useState20[1];
118
116
  var handleOpenDetails = function handleOpenDetails(driverGroup) {
119
117
  setMoveDistance(0);
120
118
  setCurDriversGroup(driverGroup);
@@ -241,9 +239,7 @@ var DriversGroupsListingUI = function DriversGroupsListingUI(props) {
241
239
  }
242
240
  }, t('DELETE', 'Delete')), /*#__PURE__*/_react.default.createElement(_Shared.SearchBar, {
243
241
  lazyLoad: true,
244
- onSearch: function onSearch(val) {
245
- return setSearchValue(val);
246
- },
242
+ onSearch: onSearch,
247
243
  search: searchValue,
248
244
  placeholder: t('SEARCH', 'Search')
249
245
  }))), !isAddMode ? /*#__PURE__*/_react.default.createElement(_DriversGroupsList.DriversGroupsList, {
@@ -15,6 +15,7 @@ var _OrdersDashboardControls = require("../OrdersDashboardControls");
15
15
  var _Shared = require("../../Shared");
16
16
  var _DriversManager = require("./DriversManager");
17
17
  var _DriversLocation = require("../DriversLocation");
18
+ var _utils = require("../../../utils");
18
19
  var _styles = require("./styles");
19
20
  var _OrdersDashboard = require("../OrdersDashboard");
20
21
  var _OrderStatusSubFilter = require("../OrderStatusSubFilter");
@@ -33,6 +34,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
33
34
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
34
35
  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; } }
35
36
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
37
+ var DEBOUNCE_DELAY = 300;
36
38
  var OrdersManagerUI = function OrdersManagerUI(props) {
37
39
  var _configs$filter_order;
38
40
  var isSelectedOrders = props.isSelectedOrders,
@@ -101,49 +103,54 @@ var OrdersManagerUI = function OrdersManagerUI(props) {
101
103
  _useState8 = _slicedToArray(_useState7, 2),
102
104
  assignedOrders = _useState8[0],
103
105
  setAssignedOrders = _useState8[1];
104
- var _useState9 = (0, _react.useState)(false),
106
+ var _useState9 = (0, _react.useState)(detailsOrder),
105
107
  _useState10 = _slicedToArray(_useState9, 2),
106
- isTourOpen = _useState10[0],
107
- setIsTourOpen = _useState10[1];
108
- var _useState11 = (0, _react.useState)(0),
108
+ orderForMap = _useState10[0],
109
+ setOrderForMap = _useState10[1];
110
+ var _useState11 = (0, _react.useState)(false),
109
111
  _useState12 = _slicedToArray(_useState11, 2),
110
- currentTourStep = _useState12[0],
111
- setCurrentTourStep = _useState12[1];
112
- var _useState13 = (0, _react.useState)(false),
112
+ isTourOpen = _useState12[0],
113
+ setIsTourOpen = _useState12[1];
114
+ var _useState13 = (0, _react.useState)(0),
113
115
  _useState14 = _slicedToArray(_useState13, 2),
114
- isTourFlag = _useState14[0],
115
- setIsTourFlag = _useState14[1];
116
- var _useState15 = (0, _react.useState)({
116
+ currentTourStep = _useState14[0],
117
+ setCurrentTourStep = _useState14[1];
118
+ var _useState15 = (0, _react.useState)(false),
119
+ _useState16 = _slicedToArray(_useState15, 2),
120
+ isTourFlag = _useState16[0],
121
+ setIsTourFlag = _useState16[1];
122
+ var _useState17 = (0, _react.useState)({
117
123
  open: false,
118
124
  content: []
119
125
  }),
120
- _useState16 = _slicedToArray(_useState15, 2),
121
- alertState = _useState16[0],
122
- setAlertState = _useState16[1];
123
- var _useState17 = (0, _react.useState)(null),
124
126
  _useState18 = _slicedToArray(_useState17, 2),
125
- timeStatus = _useState18[0],
126
- setTimeStatus = _useState18[1];
127
- var _useState19 = (0, _react.useState)(60000),
127
+ alertState = _useState18[0],
128
+ setAlertState = _useState18[1];
129
+ var _useState19 = (0, _react.useState)(null),
128
130
  _useState20 = _slicedToArray(_useState19, 2),
129
- slaSettingTime = _useState20[0],
130
- setSlaSettingTime = _useState20[1];
131
- var _useState21 = (0, _react.useState)(0),
131
+ timeStatus = _useState20[0],
132
+ setTimeStatus = _useState20[1];
133
+ var _useState21 = (0, _react.useState)(60000),
132
134
  _useState22 = _slicedToArray(_useState21, 2),
133
- totalSelectedOrder = _useState22[0],
134
- setTotalSelectedOrder = _useState22[1];
135
- var _useState23 = (0, _react.useState)({
135
+ slaSettingTime = _useState22[0],
136
+ setSlaSettingTime = _useState22[1];
137
+ var _useState23 = (0, _react.useState)(0),
138
+ _useState24 = _slicedToArray(_useState23, 2),
139
+ totalSelectedOrder = _useState24[0],
140
+ setTotalSelectedOrder = _useState24[1];
141
+ var _useState25 = (0, _react.useState)({
136
142
  pending: null,
137
143
  inProgress: null,
138
144
  completed: null,
139
145
  cancelled: null
140
146
  }),
141
- _useState24 = _slicedToArray(_useState23, 2),
142
- ordersAmountByStatus = _useState24[0],
143
- setOrdersAmountByStatus = _useState24[1];
147
+ _useState26 = _slicedToArray(_useState25, 2),
148
+ ordersAmountByStatus = _useState26[0],
149
+ setOrdersAmountByStatus = _useState26[1];
144
150
  var handleBackRedirect = function handleBackRedirect() {
145
151
  setIsOpenOrderDetail(false);
146
152
  setDetailsOrder(null);
153
+ setOrderForMap(null);
147
154
  setOrderDetailId(null);
148
155
  if (!isSelectedOrders) {
149
156
  onOrderRedirect();
@@ -157,7 +164,7 @@ var OrdersManagerUI = function OrdersManagerUI(props) {
157
164
  content: []
158
165
  });
159
166
  };
160
- var handleOpenOrderDetail = function handleOpenOrderDetail(order) {
167
+ var handleOpenOrderDetailBase = function handleOpenOrderDetailBase(order) {
161
168
  var _configs$optimize_ord;
162
169
  var isKeydown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
163
170
  if (isTourOpen && currentTourStep === 4 && !isKeydown) {
@@ -166,6 +173,9 @@ var OrdersManagerUI = function OrdersManagerUI(props) {
166
173
  }
167
174
  (!(configs !== null && configs !== void 0 && configs.optimize_order_data) || (configs === null || configs === void 0 || (_configs$optimize_ord = configs.optimize_order_data) === null || _configs$optimize_ord === void 0 ? void 0 : _configs$optimize_ord.value) === '0') && setDetailsOrder(order);
168
175
  setOrderDetailId(order.id);
176
+ setOrderForMap(function (prev) {
177
+ return (prev === null || prev === void 0 ? void 0 : prev.id) === (order === null || order === void 0 ? void 0 : order.id) ? null : order;
178
+ });
169
179
  // setIsOpenOrderDetail(true)
170
180
  if (!isSelectedOrders) {
171
181
  onOrderRedirect(order.id);
@@ -181,6 +191,7 @@ var OrdersManagerUI = function OrdersManagerUI(props) {
181
191
  }, 1);
182
192
  }
183
193
  };
194
+ var handleOpenOrderDetail = (0, _utils.usePreventDoubleClick)(handleOpenOrderDetailBase, DEBOUNCE_DELAY);
184
195
  var handleSetOpenOrderDetail = function handleSetOpenOrderDetail(state) {
185
196
  setIsOpenOrderDetail(state);
186
197
  };
@@ -325,7 +336,7 @@ var OrdersManagerUI = function OrdersManagerUI(props) {
325
336
  selectedDriver: mapsData.selectedDriver,
326
337
  onlineDrivers: mapsData.onlineDrivers,
327
338
  offlineDrivers: mapsData.offlineDrivers,
328
- selectedOrder: detailsOrder,
339
+ selectedOrder: orderForMap,
329
340
  assignedOrders: assignedOrders
330
341
  })))), isOpenOrderDetail && /*#__PURE__*/_react.default.createElement(_OrderDetails.OrderDetails, {
331
342
  isSelectedOrders: isSelectedOrders,
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.widgetURL = exports.verifyDecimals = exports.stringToSlug = exports.sortInputFields = exports.shape = exports.setStorageItem = exports.scrollTo = exports.ribbonValues = exports.reviewCommentList = exports.removeStorageItem = exports.removeQueryToUrl = exports.queryStringToObject = exports.orderStatus = exports.orderRejectCommentList = exports.optimizeImage = exports.getUniqueId = exports.getStorageItem = exports.getStarWidth = exports.getSeconds = exports.getOrderStatusPrefix = exports.getOrderStatus = exports.getOrderStatuPickUp = exports.getMinutes = exports.getLocale = exports.getIconCard = exports.getHours = exports.getCurrenySymbol = exports.getCurrentDiffDays = exports.getAttributeName = exports.getAgoMinutes = exports.formatUrlVideo = exports.formatSeconds = exports.firstLetterCapital = exports.findExitingCountryPhoneCode = exports.findExitingCode = exports.fieldsToSort = exports.disableReasons = exports.convertHoursToMinutes = exports.convertHMS = exports.checkValidUrlFormat = exports.checkSiteUrl = exports.checkPreSiteUrl = exports.capitalize = exports.bytesConverter = exports.addQueryToUrl = exports.TwentyFourHours = exports.TwelveHours = exports.DriverTipsOptions = void 0;
7
- var _react = _interopRequireDefault(require("react"));
6
+ exports.widgetURL = exports.verifyDecimals = exports.usePreventDoubleClick = exports.stringToSlug = exports.sortInputFields = exports.shape = exports.setStorageItem = exports.scrollTo = exports.ribbonValues = exports.reviewCommentList = exports.removeStorageItem = exports.removeQueryToUrl = exports.queryStringToObject = exports.orderStatus = exports.orderRejectCommentList = exports.optimizeImage = exports.getUniqueId = exports.getStorageItem = exports.getStarWidth = exports.getSeconds = exports.getOrderStatusPrefix = exports.getOrderStatus = exports.getOrderStatuPickUp = exports.getMinutes = exports.getLocale = exports.getIconCard = exports.getHours = exports.getCurrenySymbol = exports.getCurrentDiffDays = exports.getAttributeName = exports.getAgoMinutes = exports.formatUrlVideo = exports.formatSeconds = exports.firstLetterCapital = exports.findExitingCountryPhoneCode = exports.findExitingCode = exports.fieldsToSort = exports.disableReasons = exports.convertHoursToMinutes = exports.convertHMS = exports.checkValidUrlFormat = exports.checkSiteUrl = exports.checkPreSiteUrl = exports.capitalize = exports.bytesConverter = exports.addQueryToUrl = exports.TwentyFourHours = exports.TwelveHours = exports.DriverTipsOptions = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _FaCcMastercard = _interopRequireDefault(require("@meronex/icons/fa/FaCcMastercard"));
9
9
  var _FaCcVisa = _interopRequireDefault(require("@meronex/icons/fa/FaCcVisa"));
10
10
  var _FaCreditCard = _interopRequireDefault(require("@meronex/icons/fa/FaCreditCard"));
@@ -12,6 +12,8 @@ var _moment = _interopRequireDefault(require("moment"));
12
12
  var _orderingComponentsAdminExternal = require("ordering-components-admin-external");
13
13
  var _currency = require("../config/currency.js");
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ 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); }
16
+ 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 && {}.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; }
15
17
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
16
18
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
17
19
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
@@ -896,6 +898,8 @@ var removeQueryToUrl = exports.removeQueryToUrl = function removeQueryToUrl(remo
896
898
  history.replaceState(null, '', "".concat(location.pathname));
897
899
  }
898
900
  };
901
+ var TwelveHours = exports.TwelveHours = ['12:00 AM', '01:00 AM', '02:00 AM', '03:00 AM', '04:00 AM', '05:00 AM', '06:00 AM', '07:00 AM', '08:00 AM', '09:00 AM', '10:00 AM', '11:00 AM', '12:00 PM', '01:00 PM', '02:00 PM', '03:00 PM', '04:00 PM', '05:00 PM', '06:00 PM', '07:00 PM', '08:00 PM', '09:00 PM', '10:00 PM', '11:00 PM'];
902
+ var TwentyFourHours = exports.TwentyFourHours = ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00', '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'];
899
903
  var disableReasons = exports.disableReasons = function disableReasons() {
900
904
  var _useLanguage3 = (0, _orderingComponentsAdminExternal.useLanguage)(),
901
905
  _useLanguage4 = _slicedToArray(_useLanguage3, 2),
@@ -933,8 +937,6 @@ var disableReasons = exports.disableReasons = function disableReasons() {
933
937
  };
934
938
  return disableReasonDictionary;
935
939
  };
936
- var TwelveHours = exports.TwelveHours = ['12:00 AM', '01:00 AM', '02:00 AM', '03:00 AM', '04:00 AM', '05:00 AM', '06:00 AM', '07:00 AM', '08:00 AM', '09:00 AM', '10:00 AM', '11:00 AM', '12:00 PM', '01:00 PM', '02:00 PM', '03:00 PM', '04:00 PM', '05:00 PM', '06:00 PM', '07:00 PM', '08:00 PM', '09:00 PM', '10:00 PM', '11:00 PM'];
937
- var TwentyFourHours = exports.TwentyFourHours = ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00', '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'];
938
940
  var getAttributeName = exports.getAttributeName = function getAttributeName(key) {
939
941
  var _useLanguage5 = (0, _orderingComponentsAdminExternal.useLanguage)(),
940
942
  _useLanguage6 = _slicedToArray(_useLanguage5, 2),
@@ -1011,4 +1013,17 @@ var getAttributeName = exports.getAttributeName = function getAttributeName(key)
1011
1013
  } else {
1012
1014
  return key;
1013
1015
  }
1016
+ };
1017
+ var usePreventDoubleClick = exports.usePreventDoubleClick = function usePreventDoubleClick(_callback) {
1018
+ var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;
1019
+ var clickTimeRef = (0, _react.useRef)(0);
1020
+ var handleClick = (0, _react.useCallback)(function () {
1021
+ var currentTime = new Date().getTime();
1022
+ if (currentTime - clickTimeRef.current < delay) {
1023
+ return;
1024
+ }
1025
+ clickTimeRef.current = currentTime;
1026
+ _callback.apply(void 0, arguments);
1027
+ }, [_callback, delay]);
1028
+ return handleClick;
1014
1029
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ordering-ui-admin-external",
3
- "version": "1.45.17",
3
+ "version": "1.45.19",
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.71",
86
+ "ordering-components-admin-external": "1.43.72",
87
87
  "polished": "^3.6.7",
88
88
  "prop-types": "^15.7.2",
89
89
  "react-big-calendar": "^1.4.2",
@@ -1,4 +1,4 @@
1
- import React, { useState, useEffect } from 'react'
1
+ import React, { useEffect } from 'react'
2
2
  import { useLanguage } from 'ordering-components-admin-external'
3
3
  import Skeleton from 'react-loading-skeleton'
4
4
  import MdCheckBoxOutlineBlank from '@meronex/icons/md/MdCheckBoxOutlineBlank'
@@ -29,7 +29,6 @@ export const DriversGroupsList = (props) => {
29
29
  const {
30
30
  curDriversGroup,
31
31
  driversGroupsState,
32
- searchValue,
33
32
  handleOpenDetails,
34
33
  handleUpdateDriversGroup,
35
34
  selectedGroupList,
@@ -44,10 +43,6 @@ export const DriversGroupsList = (props) => {
44
43
 
45
44
  const [, t] = useLanguage()
46
45
 
47
- // Get current groups
48
- const [currentGroups, setCurrentGroups] = useState([])
49
- const [totalPages, setTotalPages] = useState(null)
50
-
51
46
  const handleChangePage = (page) => {
52
47
  setPagination({
53
48
  ...pagination,
@@ -62,18 +57,6 @@ export const DriversGroupsList = (props) => {
62
57
  })
63
58
  }
64
59
 
65
- useEffect(() => {
66
- if (driversGroupsState.loading) return
67
- let groups = []
68
- if (searchValue) {
69
- groups = driversGroupsState.groups.filter(plugin => plugin.name?.toLowerCase().includes(searchValue?.toLowerCase()))
70
- } else {
71
- groups = [...driversGroupsState.groups]
72
- }
73
- setTotalPages(pagination.totalPages)
74
- setCurrentGroups(groups)
75
- }, [driversGroupsState, searchValue])
76
-
77
60
  const handleClickDriverGroup = (e, group) => {
78
61
  const isInvalid = e.target.closest('.group-checkbox') || e.target.closest('.group-enabled')
79
62
  if (isInvalid) return
@@ -90,12 +73,12 @@ export const DriversGroupsList = (props) => {
90
73
  }
91
74
 
92
75
  useEffect(() => {
93
- if (!isUseQuery || !totalPages) return
76
+ if (!isUseQuery || !pagination.totalPages) return
94
77
  addQueryToUrl({
95
78
  page: pagination.currentPage,
96
79
  pageSize: pagination.pageSize
97
80
  })
98
- }, [pagination, totalPages])
81
+ }, [pagination, pagination.totalPages])
99
82
 
100
83
  return (
101
84
  <>
@@ -191,7 +174,7 @@ export const DriversGroupsList = (props) => {
191
174
  </tbody>
192
175
  ))
193
176
  ) : (
194
- currentGroups.map(group => (
177
+ driversGroupsState?.groups?.map(group => (
195
178
  <tbody
196
179
  key={group.id}
197
180
  className={group.id === parseInt(curDriversGroup?.id) ? 'active' : null}
@@ -275,7 +258,7 @@ export const DriversGroupsList = (props) => {
275
258
  {t('ADD_NEW_DRIVER_GROUP', 'Add new driver group')}
276
259
  </LinkButton>
277
260
  )}
278
- {currentGroups?.length > 0 && (
261
+ {driversGroupsState?.groups?.length > 0 && (
279
262
  <Pagination
280
263
  currentPage={pagination.currentPage}
281
264
  totalPages={pagination.totalPages}
@@ -38,14 +38,15 @@ const DriversGroupsListingUI = (props) => {
38
38
  actionDisabled,
39
39
  isUseQuery,
40
40
  pagination,
41
- setPagination
41
+ setPagination,
42
+ searchValue,
43
+ onSearch
42
44
  } = props
43
45
 
44
46
  const history = useHistory()
45
47
  const query = new URLSearchParams(useLocation().search)
46
48
  const [, t] = useLanguage()
47
49
  const [{ isCollapse }, { handleMenuCollapse }] = useInfoShare()
48
- const [searchValue, setSearchValue] = useState(null)
49
50
  const [alertState, setAlertState] = useState({ open: false, content: [] })
50
51
  const [confirm, setConfirm] = useState({ open: false, content: null, handleOnAccept: null })
51
52
  const [moveDistance, setMoveDistance] = useState(0)
@@ -193,7 +194,7 @@ const DriversGroupsListingUI = (props) => {
193
194
  </Button>
194
195
  <SearchBar
195
196
  lazyLoad
196
- onSearch={val => setSearchValue(val)}
197
+ onSearch={onSearch}
197
198
  search={searchValue}
198
199
  placeholder={t('SEARCH', 'Search')}
199
200
  />
@@ -8,7 +8,7 @@ import { OrdersDashboardControls } from '../OrdersDashboardControls'
8
8
  import { Alert } from '../../Shared'
9
9
  import { DriversManager } from './DriversManager'
10
10
  import { DriversLocation } from '../DriversLocation'
11
-
11
+ import { usePreventDoubleClick } from '../../../utils'
12
12
  import {
13
13
  MainContentContainer,
14
14
  TopContent,
@@ -28,6 +28,8 @@ import { OrderStatusSubFilter } from '../OrderStatusSubFilter'
28
28
  import { OrderNotification } from '../OrderNotification'
29
29
  import { WizardOrders } from '../WizardOrders'
30
30
 
31
+ const DEBOUNCE_DELAY = 300
32
+
31
33
  const OrdersManagerUI = (props) => {
32
34
  const {
33
35
  isSelectedOrders,
@@ -76,7 +78,7 @@ const OrdersManagerUI = (props) => {
76
78
  const [orderDetailId, setOrderDetailId] = useState(null)
77
79
  const [filterModalOpen, setFilterModalOpen] = useState(false)
78
80
  const [assignedOrders, setAssignedOrders] = useState({ loading: false, error: null, orders: [] })
79
-
81
+ const [orderForMap, setOrderForMap] = useState(detailsOrder)
80
82
  const [isTourOpen, setIsTourOpen] = useState(false)
81
83
  const [currentTourStep, setCurrentTourStep] = useState(0)
82
84
  const [isTourFlag, setIsTourFlag] = useState(false)
@@ -94,6 +96,7 @@ const OrdersManagerUI = (props) => {
94
96
  const handleBackRedirect = () => {
95
97
  setIsOpenOrderDetail(false)
96
98
  setDetailsOrder(null)
99
+ setOrderForMap(null)
97
100
  setOrderDetailId(null)
98
101
  if (!isSelectedOrders) {
99
102
  onOrderRedirect()
@@ -109,13 +112,14 @@ const OrdersManagerUI = (props) => {
109
112
  })
110
113
  }
111
114
 
112
- const handleOpenOrderDetail = (order, isKeydown = false) => {
115
+ const handleOpenOrderDetailBase = (order, isKeydown = false) => {
113
116
  if (isTourOpen && currentTourStep === 4 && !isKeydown) {
114
117
  setIsTourOpen(false)
115
118
  return
116
119
  }
117
120
  (!configs?.optimize_order_data || (configs?.optimize_order_data?.value === '0')) && setDetailsOrder(order)
118
121
  setOrderDetailId(order.id)
122
+ setOrderForMap((prev) => (prev?.id === order?.id ? null : order))
119
123
  // setIsOpenOrderDetail(true)
120
124
  if (!isSelectedOrders) {
121
125
  onOrderRedirect(order.id)
@@ -132,6 +136,8 @@ const OrdersManagerUI = (props) => {
132
136
  }
133
137
  }
134
138
 
139
+ const handleOpenOrderDetail = usePreventDoubleClick(handleOpenOrderDetailBase, DEBOUNCE_DELAY)
140
+
135
141
  const handleSetOpenOrderDetail = (state) => {
136
142
  setIsOpenOrderDetail(state)
137
143
  }
@@ -305,7 +311,7 @@ const OrdersManagerUI = (props) => {
305
311
  selectedDriver={mapsData.selectedDriver}
306
312
  onlineDrivers={mapsData.onlineDrivers}
307
313
  offlineDrivers={mapsData.offlineDrivers}
308
- selectedOrder={detailsOrder}
314
+ selectedOrder={orderForMap}
309
315
  assignedOrders={assignedOrders}
310
316
  />
311
317
  </WrapperDriversLocation>