@ukhomeoffice/cop-react-form-renderer 5.14.0 → 5.14.2

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.
@@ -42,11 +42,9 @@ exports.STATUS_FETCHED = STATUS_FETCHED;
42
42
  var STATUS_ERROR = 'error';
43
43
  exports.STATUS_ERROR = STATUS_ERROR;
44
44
  var useGetRequest = function useGetRequest(url) {
45
+ var caching = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
45
46
  var axiosInstance = (0, _useAxios.default)();
46
- var cancelToken = _axios.default.CancelToken.source();
47
- var cancelRequests = function cancelRequests() {
48
- if (cancelToken) cancelToken.cancel();
49
- };
47
+ var cancelTokenRef = (0, _react.useRef)(_axios.default.CancelToken.source());
50
48
  var _useState = (0, _react.useState)(STATUS_IDLE),
51
49
  _useState2 = _slicedToArray(_useState, 2),
52
50
  status = _useState2[0],
@@ -59,6 +57,11 @@ var useGetRequest = function useGetRequest(url) {
59
57
  _useState6 = _slicedToArray(_useState5, 2),
60
58
  data = _useState6[0],
61
59
  setData = _useState6[1];
60
+ var cancelRequests = function cancelRequests() {
61
+ if (cancelTokenRef.current) {
62
+ cancelTokenRef.current.cancel();
63
+ }
64
+ };
62
65
  (0, _react.useEffect)(function () {
63
66
  if (!url || !axiosInstance) return;
64
67
  var fetchData = /*#__PURE__*/function () {
@@ -70,7 +73,7 @@ var useGetRequest = function useGetRequest(url) {
70
73
  _context.prev = 0;
71
74
  setError(null);
72
75
  setStatus(STATUS_FETCHING);
73
- if (!cache[url]) {
76
+ if (!(caching && cache[url])) {
74
77
  _context.next = 7;
75
78
  break;
76
79
  }
@@ -78,7 +81,7 @@ var useGetRequest = function useGetRequest(url) {
78
81
  _context.next = 16;
79
82
  break;
80
83
  case 7:
81
- if (!errorCache[url]) {
84
+ if (!(caching && errorCache[url])) {
82
85
  _context.next = 11;
83
86
  break;
84
87
  }
@@ -86,14 +89,15 @@ var useGetRequest = function useGetRequest(url) {
86
89
  case 11:
87
90
  _context.next = 13;
88
91
  return axiosInstance.get(url, {
89
- cancelToken: cancelToken.token
92
+ cancelToken: cancelTokenRef.current.token
90
93
  }).catch(function (e) {
94
+ setError(e);
91
95
  throw e;
92
96
  });
93
97
  case 13:
94
98
  response = _context.sent;
95
99
  fetchedData = response.data;
96
- cache[url] = fetchedData;
100
+ if (caching) cache[url] = fetchedData;
97
101
  case 16:
98
102
  setData(fetchedData);
99
103
  setStatus(STATUS_FETCHED);
@@ -102,7 +106,7 @@ var useGetRequest = function useGetRequest(url) {
102
106
  case 20:
103
107
  _context.prev = 20;
104
108
  _context.t0 = _context["catch"](0);
105
- errorCache[url] = _context.t0;
109
+ if (caching) errorCache[url] = _context.t0;
106
110
  setError(_context.t0);
107
111
  setData(null);
108
112
  setStatus(STATUS_ERROR);
@@ -117,7 +121,7 @@ var useGetRequest = function useGetRequest(url) {
117
121
  };
118
122
  }();
119
123
  fetchData();
120
- }, [axiosInstance, url, cancelToken.token]);
124
+ }, [axiosInstance, url, caching]);
121
125
  return {
122
126
  status: status,
123
127
  error: error,
@@ -36,10 +36,11 @@ var getRefDataUrl = function getRefDataUrl(component) {
36
36
  return undefined;
37
37
  };
38
38
  var useRefData = function useRefData(component, formData) {
39
+ var _component$data;
39
40
  var url = getRefDataUrl(_objectSpread(_objectSpread({}, component), {}, {
40
41
  formData: formData
41
42
  }));
42
- var _useGetRequest = (0, _useGetRequest2.default)(url),
43
+ var _useGetRequest = (0, _useGetRequest2.default)(url, component === null || component === void 0 ? void 0 : (_component$data = component.data) === null || _component$data === void 0 ? void 0 : _component$data.useCache),
43
44
  _status = _useGetRequest.status,
44
45
  _data = _useGetRequest.data;
45
46
  var _useState = (0, _react.useState)([]),
@@ -65,7 +66,7 @@ var useRefData = function useRefData(component, formData) {
65
66
  setData([]);
66
67
  setStatus(STATUS_COMPLETE);
67
68
  }
68
- }, [component, _status, _data, url, setData, setStatus]);
69
+ }, [component.id, _status, _data, url]);
69
70
  return {
70
71
  data: data,
71
72
  status: status
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "5.14.0",
3
+ "version": "5.14.2",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",