@unbxd-ui/unbxd-react-components 0.2.120 → 0.2.121

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.
@@ -11,7 +11,7 @@ var _reactWindow = require("react-window");
11
11
  var _reactWindowInfiniteLoader = _interopRequireDefault(require("react-window-infinite-loader"));
12
12
  var _dataLoader = _interopRequireDefault(require("../../core/dataLoader"));
13
13
  var _utils = _interopRequireDefault(require("../../core/utils"));
14
- var _excluded = ["selectedItems", "selectItem", "idAttribute", "nameAttribute", "DropdownItem", "requestId", "requestParams", "responseFormatter", "pageNoKey", "perPageKey", "pageSize", "maxHeight", "searchAttribute", "searchQuery", "getUrlParams", "serverListClassName", "ddItemHeight", "minPageNo", "delay", "loadImmediately", "showClippedContentTitle", "abortPrevious", "LoaderComponent"];
14
+ var _excluded = ["selectedItems", "selectItem", "idAttribute", "nameAttribute", "DropdownItem", "requestId", "requestParams", "responseFormatter", "pageNoKey", "perPageKey", "pageSize", "maxHeight", "searchAttribute", "searchQuery", "getUrlParams", "serverListClassName", "ddItemHeight", "minPageNo", "delay", "loadImmediately", "showClippedContentTitle", "LoaderComponent"];
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
16
  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); }
17
17
  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; }
@@ -93,8 +93,6 @@ var ServerPaginatedDDList = function ServerPaginatedDDList(props) {
93
93
  _props$loadImmediatel = props.loadImmediately,
94
94
  loadImmediately = _props$loadImmediatel === void 0 ? true : _props$loadImmediatel,
95
95
  showClippedContentTitle = props.showClippedContentTitle,
96
- _props$abortPrevious = props.abortPrevious,
97
- abortPrevious = _props$abortPrevious === void 0 ? false : _props$abortPrevious,
98
96
  LoaderComponent = props.LoaderComponent,
99
97
  restProps = _objectWithoutProperties(props, _excluded);
100
98
  var _useState = (0, _react.useState)([]),
@@ -128,7 +126,6 @@ var ServerPaginatedDDList = function ServerPaginatedDDList(props) {
128
126
  var pageNoRef = (0, _react.useRef)(getDefaultPageNo());
129
127
  var searchRef = (0, _react.useRef)(searchQuery);
130
128
  var apiCallRef = (0, _react.useRef)(false);
131
- var abortController = (0, _react.useRef)(null);
132
129
  var onDataLoaded = function onDataLoaded(response) {
133
130
  apiCallRef.current = false;
134
131
  var apiResponse = response;
@@ -158,16 +155,13 @@ var ServerPaginatedDDList = function ServerPaginatedDDList(props) {
158
155
  setTotal(total);
159
156
  };
160
157
  var makeAPICall = function makeAPICall() {
161
- var _objectSpread2;
162
158
  setIsApiLoading(true);
163
159
  apiCallRef.current = true;
164
- abortController.current = new AbortController();
165
160
  setIsNextPageLoading(true);
166
161
  var def = _dataLoader["default"].getRequestDef({
167
162
  requestId: requestId,
168
- params: _objectSpread(_objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, pageNoKey, pageNoRef.current), _defineProperty(_objectSpread2, perPageKey, pageSize), _objectSpread2), searchRef.current && _defineProperty({}, searchAttribute, searchRef.current)), requestParams),
169
- urlParams: getUrlParams(),
170
- signal: abortController.current.signal
163
+ params: _objectSpread(_objectSpread(_defineProperty(_defineProperty({}, pageNoKey, pageNoRef.current), perPageKey, pageSize), searchRef.current && _defineProperty({}, searchAttribute, searchRef.current)), requestParams),
164
+ urlParams: getUrlParams()
171
165
  });
172
166
  def.done(function (response) {
173
167
  onDataLoaded(response);
@@ -181,17 +175,13 @@ var ServerPaginatedDDList = function ServerPaginatedDDList(props) {
181
175
  */
182
176
  var loadNextPage = function loadNextPage() {
183
177
  pageNoRef.current = pageNoRef.current + 1;
184
- if (abortPrevious && apiCallRef.current) {
185
- abortController.current.abort();
186
- }
178
+ _dataLoader["default"].abortPreviousCall(requestId);
187
179
  return makeAPICall();
188
180
  };
189
181
  (0, _react.useEffect)(function () {
190
182
  /* not the first call */
191
183
  if (itemsResetCounter > 0) {
192
- if (abortPrevious && apiCallRef.current) {
193
- abortController.current.abort();
194
- }
184
+ _dataLoader["default"].abortPreviousCall(requestId);
195
185
  makeAPICall();
196
186
  }
197
187
  }, [itemsResetCounter]);
@@ -280,7 +270,6 @@ var ServerPaginatedDDList = function ServerPaginatedDDList(props) {
280
270
  });
281
271
  // }
282
272
  };
283
-
284
273
  ServerPaginatedDDList.propTypes = {
285
274
  ddItemHeight: _propTypes["default"].number,
286
275
  LoaderComponent: _propTypes["default"].any
@@ -137,7 +137,6 @@ var ExpandableTR = function ExpandableTR(props) {
137
137
  ExpandableTR.propTypes = {
138
138
  ExpandedRowComponent: _propTypes["default"].any.isRequired // TODO : check for a React Component
139
139
  };
140
-
141
140
  var TR = function TR(props) {
142
141
  var rowIndex = props.rowIndex,
143
142
  rowData = props.rowData,
@@ -99,7 +99,6 @@ var REQUEST_KEYS = exports.REQUEST_KEYS = {
99
99
  sortDSC: "DSC"
100
100
  };
101
101
  var Table = function Table(props, ref) {
102
- var _objectSpread2;
103
102
  var className = props.className,
104
103
  wrapperClassName = props.wrapperClassName,
105
104
  records = props.records,
@@ -165,7 +164,7 @@ var Table = function Table(props, ref) {
165
164
  ASCEnum = _REQUEST_KEYS$getRequ.sortASC,
166
165
  DSCEnum = _REQUEST_KEYS$getRequ.sortDSC;
167
166
  var extraParams = _utils["default"].omit(restProps, omitParams);
168
- var requestParams = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, getRequestParams()), extraParams), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, pageNoKey, pageNo), _defineProperty(_objectSpread2, perPageKey, perPageCount), _objectSpread2), searchQuery && _defineProperty({}, searchByKey, searchQuery)), sortBy && _defineProperty({}, sortByKey, sortBy)), sortOrder && _defineProperty({}, sortOrderKey, sortOrder === "DSC" ? DSCEnum : ASCEnum));
167
+ var requestParams = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, getRequestParams()), extraParams), {}, _defineProperty(_defineProperty({}, pageNoKey, pageNo), perPageKey, perPageCount), searchQuery && _defineProperty({}, searchByKey, searchQuery)), sortBy && _defineProperty({}, sortByKey, sortBy)), sortOrder && _defineProperty({}, sortOrderKey, sortOrder === "DSC" ? DSCEnum : ASCEnum));
169
168
  var requests = [{
170
169
  requestId: requestId,
171
170
  params: requestParams,
@@ -34,6 +34,9 @@ var DataLoader = /*#__PURE__*/function () {
34
34
  return x;
35
35
  });
36
36
  _defineProperty(this, "_middlewares", {});
37
+ _defineProperty(this, "apiCallRef", false);
38
+ _defineProperty(this, "abortController", null);
39
+ _defineProperty(this, "previousUrlData", {});
37
40
  }
38
41
  _createClass(DataLoader, [{
39
42
  key: "setCommonHeaders",
@@ -99,29 +102,53 @@ var DataLoader = /*#__PURE__*/function () {
99
102
  response = typeof commonParser === "function" ? commonParser(response, requestId, headers, status) : response;
100
103
  return responseParser(response, requestId, headers, status);
101
104
  }
105
+ }, {
106
+ key: "setPreviousUrlData",
107
+ value: function setPreviousUrlData(url, method) {
108
+ this.previousUrlData = {
109
+ url: url,
110
+ method: method
111
+ };
112
+ }
113
+ }, {
114
+ key: "abortPreviousCall",
115
+ value: function abortPreviousCall(requestId) {
116
+ var requestConfig = this._requestsMap[requestId];
117
+ var url = requestConfig.url,
118
+ _requestConfig$method = requestConfig.method,
119
+ method = _requestConfig$method === void 0 ? "GET" : _requestConfig$method;
120
+ if (this.apiCallRef && this.abortController) {
121
+ if (this.previousUrlData.url === url && this.previousUrlData.method === method) {
122
+ this.abortController.abort();
123
+ }
124
+ }
125
+ this.apiCallRef = true;
126
+ this.abortController = new AbortController();
127
+ }
102
128
  }, {
103
129
  key: "getRequestDef",
104
130
  value: function getRequestDef(_ref) {
105
- var _this = this;
131
+ var _this$abortController,
132
+ _this = this;
106
133
  var requestId = _ref.requestId,
107
134
  _ref$urlParams = _ref.urlParams,
108
135
  urlParams = _ref$urlParams === void 0 ? {} : _ref$urlParams,
109
136
  _ref$params = _ref.params,
110
137
  params = _ref$params === void 0 ? {} : _ref$params,
111
138
  _ref$headers = _ref.headers,
112
- headers = _ref$headers === void 0 ? {} : _ref$headers,
113
- signal = _ref.signal;
139
+ headers = _ref$headers === void 0 ? {} : _ref$headers;
114
140
  var requestConfig = this._requestsMap[requestId];
115
141
  var url = requestConfig.url,
116
- _requestConfig$method = requestConfig.method,
117
- method = _requestConfig$method === void 0 ? "GET" : _requestConfig$method;
142
+ _requestConfig$method2 = requestConfig.method,
143
+ method = _requestConfig$method2 === void 0 ? "GET" : _requestConfig$method2;
144
+ this.setPreviousUrlData(url, method);
118
145
  var finalRequestParams = this.getRequestParams(requestId, params);
119
146
  var requestUrl = typeof url === "function" ? url(urlParams) : url;
120
147
  var reqMethod = method.toLowerCase();
121
148
  var requestMetadata = {
122
149
  method: reqMethod === "form_post" || reqMethod === "upload" ? "post" : method,
123
150
  headers: _objectSpread(_objectSpread({}, this._commonHeaders), headers),
124
- signal: signal
151
+ signal: (_this$abortController = this.abortController) === null || _this$abortController === void 0 ? void 0 : _this$abortController.signal
125
152
  };
126
153
  var requestHeaders = requestMetadata.headers;
127
154
  for (var header in requestHeaders) {
@@ -144,6 +171,8 @@ var DataLoader = /*#__PURE__*/function () {
144
171
  }
145
172
  return new _bluebird.Promise(function (resolve, reject) {
146
173
  return (0, _whatwgFetch.fetch)(requestUrl, requestMetadata).then(function (response) {
174
+ _this.apiCallRef = false;
175
+ _this.abortController = null;
147
176
  var status = response.status,
148
177
  statusText = response.statusText,
149
178
  headers = response.headers;
@@ -170,9 +199,13 @@ var DataLoader = /*#__PURE__*/function () {
170
199
  var headers = _ref2.headers,
171
200
  json = _ref2.json,
172
201
  status = _ref2.status;
202
+ _this.apiCallRef = false;
203
+ _this.abortController = null;
173
204
  var parsedResponse = _this.parseResponseData(requestId, json, headers, status);
174
205
  resolve(parsedResponse);
175
206
  })["catch"](function (exception) {
207
+ _this.apiCallRef = false;
208
+ _this.abortController = null;
176
209
  _this._exceptionHandler(exception);
177
210
  reject(exception);
178
211
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbxd-ui/unbxd-react-components",
3
- "version": "0.2.120",
3
+ "version": "0.2.121",
4
4
  "description": "React components library",
5
5
  "keywords": [
6
6
  "react components",