@atlaskit/link-datasource 1.12.1 → 1.12.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.
- package/CHANGELOG.md +8 -0
- package/dist/cjs/analytics/constants.js +1 -1
- package/dist/cjs/hooks/useDatasourceTableState.js +18 -4
- package/dist/cjs/ui/assets-modal/modal/index.js +1 -1
- package/dist/cjs/ui/assets-modal/modal/render-assets-content/index.js +3 -0
- package/dist/cjs/ui/common/error-state/access-required.js +2 -0
- package/dist/es2019/analytics/constants.js +1 -1
- package/dist/es2019/hooks/useDatasourceTableState.js +8 -0
- package/dist/es2019/ui/assets-modal/modal/index.js +1 -1
- package/dist/es2019/ui/assets-modal/modal/render-assets-content/index.js +3 -0
- package/dist/es2019/ui/common/error-state/access-required.js +2 -0
- package/dist/esm/analytics/constants.js +1 -1
- package/dist/esm/hooks/useDatasourceTableState.js +18 -4
- package/dist/esm/ui/assets-modal/modal/index.js +1 -1
- package/dist/esm/ui/assets-modal/modal/render-assets-content/index.js +3 -0
- package/dist/esm/ui/common/error-state/access-required.js +2 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @atlaskit/link-datasource
|
|
2
2
|
|
|
3
|
+
## 1.12.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#42675](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42675) [`bce00b9b36f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bce00b9b36f) - [ux] Updated Assets Config Modal to also show unauthorized state
|
|
8
|
+
Updated useDatasourceTableState to return unauthorized state on 401 & 403 responses
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
3
11
|
## 1.12.1
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -102,13 +102,20 @@ var useDatasourceTableState = exports.useDatasourceTableState = function useData
|
|
|
102
102
|
allColumns = schema.properties;
|
|
103
103
|
newColumns = allColumns.filter(isColumnNotPresentInCurrentColumnsList);
|
|
104
104
|
newColumns.length > 0 && setColumns([].concat((0, _toConsumableArray2.default)(columns), (0, _toConsumableArray2.default)(newColumns)));
|
|
105
|
-
_context.next =
|
|
105
|
+
_context.next = 23;
|
|
106
106
|
break;
|
|
107
107
|
case 17:
|
|
108
108
|
_context.prev = 17;
|
|
109
109
|
_context.t0 = _context["catch"](2);
|
|
110
|
+
if (!(_context.t0 instanceof Response && (_context.t0.status === 401 || _context.t0.status === 403))) {
|
|
111
|
+
_context.next = 22;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
setStatus('unauthorized');
|
|
115
|
+
return _context.abrupt("return");
|
|
116
|
+
case 22:
|
|
110
117
|
setStatus('rejected');
|
|
111
|
-
case
|
|
118
|
+
case 23:
|
|
112
119
|
case "end":
|
|
113
120
|
return _context.stop();
|
|
114
121
|
}
|
|
@@ -221,13 +228,20 @@ var useDatasourceTableState = exports.useDatasourceTableState = function useData
|
|
|
221
228
|
});
|
|
222
229
|
}
|
|
223
230
|
setStatus('resolved');
|
|
224
|
-
_context2.next =
|
|
231
|
+
_context2.next = 41;
|
|
225
232
|
break;
|
|
226
233
|
case 35:
|
|
227
234
|
_context2.prev = 35;
|
|
228
235
|
_context2.t0 = _context2["catch"](6);
|
|
236
|
+
if (!(_context2.t0 instanceof Response && (_context2.t0.status === 401 || _context2.t0.status === 403))) {
|
|
237
|
+
_context2.next = 40;
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
setStatus('unauthorized');
|
|
241
|
+
return _context2.abrupt("return");
|
|
242
|
+
case 40:
|
|
229
243
|
setStatus('rejected');
|
|
230
|
-
case
|
|
244
|
+
case 41:
|
|
231
245
|
case "end":
|
|
232
246
|
return _context2.stop();
|
|
233
247
|
}
|
|
@@ -167,7 +167,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
167
167
|
setVisibleColumnKeys(defaultVisibleColumnKeys);
|
|
168
168
|
}
|
|
169
169
|
}, [defaultVisibleColumnKeys, isNewSearch]);
|
|
170
|
-
var isDisabled = !!workspaceError || status
|
|
170
|
+
var isDisabled = !!workspaceError || status !== 'resolved' || assetsClientLoading || !aql || !schemaId;
|
|
171
171
|
var retrieveUrlForSmartCardRender = (0, _react.useCallback)(function () {
|
|
172
172
|
var _data$key;
|
|
173
173
|
var _responseItems = (0, _slicedToArray2.default)(responseItems, 1),
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.RenderAssetsContent = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _accessRequired = require("../../../common/error-state/access-required");
|
|
9
10
|
var _modalLoadingError = require("../../../common/error-state/modal-loading-error");
|
|
10
11
|
var _noResults = require("../../../common/error-state/no-results");
|
|
11
12
|
var _issueLikeTable = require("../../../issue-like-table");
|
|
@@ -40,6 +41,8 @@ var RenderAssetsContent = exports.RenderAssetsContent = function RenderAssetsCon
|
|
|
40
41
|
}, [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails, onNextPage, onVisibleColumnKeysChange, responseItems, status, visibleColumnKeys, modalRenderInstanceId]);
|
|
41
42
|
if (status === 'rejected') {
|
|
42
43
|
return /*#__PURE__*/_react.default.createElement(_modalLoadingError.ModalLoadingError, null);
|
|
44
|
+
} else if (status === 'unauthorized') {
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement(_accessRequired.AccessRequired, null);
|
|
43
46
|
} else if (status === 'empty') {
|
|
44
47
|
return /*#__PURE__*/_react.default.createElement(_initialStateView.InitialStateView, null);
|
|
45
48
|
} else if (resolvedWithNoResults) {
|
|
@@ -55,6 +55,7 @@ var AccessRequired = exports.AccessRequired = function AccessRequired(_ref2) {
|
|
|
55
55
|
}, [fireEvent]);
|
|
56
56
|
if (url) {
|
|
57
57
|
return (0, _react2.jsx)(_emptyState.default, {
|
|
58
|
+
testId: "datasource--access-required-with-url",
|
|
58
59
|
header: formatMessage(_messages.loadingErrorMessages.accessRequiredWithSite),
|
|
59
60
|
description: (0, _react2.jsx)(Description, {
|
|
60
61
|
message: formatMessage(_messages.loadingErrorMessages.accessInstructions),
|
|
@@ -64,6 +65,7 @@ var AccessRequired = exports.AccessRequired = function AccessRequired(_ref2) {
|
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
return (0, _react2.jsx)(_emptyState.default, {
|
|
68
|
+
testId: "datasource--access-required",
|
|
67
69
|
header: formatMessage(_messages.loadingErrorMessages.accessRequired),
|
|
68
70
|
description: formatMessage(_messages.loadingErrorMessages.accessInstructions),
|
|
69
71
|
renderImage: IconContainer
|
|
@@ -49,6 +49,10 @@ export const useDatasourceTableState = ({
|
|
|
49
49
|
const newColumns = allColumns.filter(isColumnNotPresentInCurrentColumnsList);
|
|
50
50
|
newColumns.length > 0 && setColumns([...columns, ...newColumns]);
|
|
51
51
|
} catch (e) {
|
|
52
|
+
if (e instanceof Response && (e.status === 401 || e.status === 403)) {
|
|
53
|
+
setStatus('unauthorized');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
52
56
|
setStatus('rejected');
|
|
53
57
|
}
|
|
54
58
|
}, [columns, datasourceId, getDatasourceDetails, parameters]);
|
|
@@ -131,6 +135,10 @@ export const useDatasourceTableState = ({
|
|
|
131
135
|
}
|
|
132
136
|
setStatus('resolved');
|
|
133
137
|
} catch (e) {
|
|
138
|
+
if (e instanceof Response && (e.status === 401 || e.status === 403)) {
|
|
139
|
+
setStatus('unauthorized');
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
134
142
|
setStatus('rejected');
|
|
135
143
|
}
|
|
136
144
|
}, [parameters, fieldKeys, nextCursor, getDatasourceData, datasourceId, responseItems === null || responseItems === void 0 ? void 0 : responseItems.length, applySchemaProperties, fireEvent]);
|
|
@@ -144,7 +144,7 @@ const PlainAssetsConfigModal = props => {
|
|
|
144
144
|
setVisibleColumnKeys(defaultVisibleColumnKeys);
|
|
145
145
|
}
|
|
146
146
|
}, [defaultVisibleColumnKeys, isNewSearch]);
|
|
147
|
-
const isDisabled = !!workspaceError || status
|
|
147
|
+
const isDisabled = !!workspaceError || status !== 'resolved' || assetsClientLoading || !aql || !schemaId;
|
|
148
148
|
const retrieveUrlForSmartCardRender = useCallback(() => {
|
|
149
149
|
var _data$key, _data$key$data;
|
|
150
150
|
const [data] = responseItems;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
+
import { AccessRequired } from '../../../common/error-state/access-required';
|
|
2
3
|
import { ModalLoadingError } from '../../../common/error-state/modal-loading-error';
|
|
3
4
|
import { NoResults } from '../../../common/error-state/no-results';
|
|
4
5
|
import { EmptyState, IssueLikeDataTableView } from '../../../issue-like-table';
|
|
@@ -31,6 +32,8 @@ export const RenderAssetsContent = props => {
|
|
|
31
32
|
}), [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails, onNextPage, onVisibleColumnKeysChange, responseItems, status, visibleColumnKeys, modalRenderInstanceId]);
|
|
32
33
|
if (status === 'rejected') {
|
|
33
34
|
return /*#__PURE__*/React.createElement(ModalLoadingError, null);
|
|
35
|
+
} else if (status === 'unauthorized') {
|
|
36
|
+
return /*#__PURE__*/React.createElement(AccessRequired, null);
|
|
34
37
|
} else if (status === 'empty') {
|
|
35
38
|
return /*#__PURE__*/React.createElement(InitialStateView, null);
|
|
36
39
|
} else if (resolvedWithNoResults) {
|
|
@@ -49,6 +49,7 @@ export const AccessRequired = ({
|
|
|
49
49
|
}, [fireEvent]);
|
|
50
50
|
if (url) {
|
|
51
51
|
return jsx(EmptyState, {
|
|
52
|
+
testId: "datasource--access-required-with-url",
|
|
52
53
|
header: formatMessage(loadingErrorMessages.accessRequiredWithSite),
|
|
53
54
|
description: jsx(Description, {
|
|
54
55
|
message: formatMessage(loadingErrorMessages.accessInstructions),
|
|
@@ -58,6 +59,7 @@ export const AccessRequired = ({
|
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
return jsx(EmptyState, {
|
|
62
|
+
testId: "datasource--access-required",
|
|
61
63
|
header: formatMessage(loadingErrorMessages.accessRequired),
|
|
62
64
|
description: formatMessage(loadingErrorMessages.accessInstructions),
|
|
63
65
|
renderImage: IconContainer
|
|
@@ -95,13 +95,20 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
|
|
|
95
95
|
allColumns = schema.properties;
|
|
96
96
|
newColumns = allColumns.filter(isColumnNotPresentInCurrentColumnsList);
|
|
97
97
|
newColumns.length > 0 && setColumns([].concat(_toConsumableArray(columns), _toConsumableArray(newColumns)));
|
|
98
|
-
_context.next =
|
|
98
|
+
_context.next = 23;
|
|
99
99
|
break;
|
|
100
100
|
case 17:
|
|
101
101
|
_context.prev = 17;
|
|
102
102
|
_context.t0 = _context["catch"](2);
|
|
103
|
+
if (!(_context.t0 instanceof Response && (_context.t0.status === 401 || _context.t0.status === 403))) {
|
|
104
|
+
_context.next = 22;
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
setStatus('unauthorized');
|
|
108
|
+
return _context.abrupt("return");
|
|
109
|
+
case 22:
|
|
103
110
|
setStatus('rejected');
|
|
104
|
-
case
|
|
111
|
+
case 23:
|
|
105
112
|
case "end":
|
|
106
113
|
return _context.stop();
|
|
107
114
|
}
|
|
@@ -214,13 +221,20 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
|
|
|
214
221
|
});
|
|
215
222
|
}
|
|
216
223
|
setStatus('resolved');
|
|
217
|
-
_context2.next =
|
|
224
|
+
_context2.next = 41;
|
|
218
225
|
break;
|
|
219
226
|
case 35:
|
|
220
227
|
_context2.prev = 35;
|
|
221
228
|
_context2.t0 = _context2["catch"](6);
|
|
229
|
+
if (!(_context2.t0 instanceof Response && (_context2.t0.status === 401 || _context2.t0.status === 403))) {
|
|
230
|
+
_context2.next = 40;
|
|
231
|
+
break;
|
|
232
|
+
}
|
|
233
|
+
setStatus('unauthorized');
|
|
234
|
+
return _context2.abrupt("return");
|
|
235
|
+
case 40:
|
|
222
236
|
setStatus('rejected');
|
|
223
|
-
case
|
|
237
|
+
case 41:
|
|
224
238
|
case "end":
|
|
225
239
|
return _context2.stop();
|
|
226
240
|
}
|
|
@@ -158,7 +158,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
158
158
|
setVisibleColumnKeys(defaultVisibleColumnKeys);
|
|
159
159
|
}
|
|
160
160
|
}, [defaultVisibleColumnKeys, isNewSearch]);
|
|
161
|
-
var isDisabled = !!workspaceError || status
|
|
161
|
+
var isDisabled = !!workspaceError || status !== 'resolved' || assetsClientLoading || !aql || !schemaId;
|
|
162
162
|
var retrieveUrlForSmartCardRender = useCallback(function () {
|
|
163
163
|
var _data$key;
|
|
164
164
|
var _responseItems = _slicedToArray(responseItems, 1),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
+
import { AccessRequired } from '../../../common/error-state/access-required';
|
|
2
3
|
import { ModalLoadingError } from '../../../common/error-state/modal-loading-error';
|
|
3
4
|
import { NoResults } from '../../../common/error-state/no-results';
|
|
4
5
|
import { EmptyState, IssueLikeDataTableView } from '../../../issue-like-table';
|
|
@@ -31,6 +32,8 @@ export var RenderAssetsContent = function RenderAssetsContent(props) {
|
|
|
31
32
|
}, [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails, onNextPage, onVisibleColumnKeysChange, responseItems, status, visibleColumnKeys, modalRenderInstanceId]);
|
|
32
33
|
if (status === 'rejected') {
|
|
33
34
|
return /*#__PURE__*/React.createElement(ModalLoadingError, null);
|
|
35
|
+
} else if (status === 'unauthorized') {
|
|
36
|
+
return /*#__PURE__*/React.createElement(AccessRequired, null);
|
|
34
37
|
} else if (status === 'empty') {
|
|
35
38
|
return /*#__PURE__*/React.createElement(InitialStateView, null);
|
|
36
39
|
} else if (resolvedWithNoResults) {
|
|
@@ -47,6 +47,7 @@ export var AccessRequired = function AccessRequired(_ref2) {
|
|
|
47
47
|
}, [fireEvent]);
|
|
48
48
|
if (url) {
|
|
49
49
|
return jsx(EmptyState, {
|
|
50
|
+
testId: "datasource--access-required-with-url",
|
|
50
51
|
header: formatMessage(loadingErrorMessages.accessRequiredWithSite),
|
|
51
52
|
description: jsx(Description, {
|
|
52
53
|
message: formatMessage(loadingErrorMessages.accessInstructions),
|
|
@@ -56,6 +57,7 @@ export var AccessRequired = function AccessRequired(_ref2) {
|
|
|
56
57
|
});
|
|
57
58
|
}
|
|
58
59
|
return jsx(EmptyState, {
|
|
60
|
+
testId: "datasource--access-required",
|
|
59
61
|
header: formatMessage(loadingErrorMessages.accessRequired),
|
|
60
62
|
description: formatMessage(loadingErrorMessages.accessInstructions),
|
|
61
63
|
renderImage: IconContainer
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-datasource",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.2",
|
|
4
4
|
"description": "UI Components to support linking platform dataset feature",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@atlaskit/jql-editor-autocomplete-rest": "^2.0.0",
|
|
47
47
|
"@atlaskit/link-client-extension": "^1.8.0",
|
|
48
48
|
"@atlaskit/link-provider": "^1.6.12",
|
|
49
|
-
"@atlaskit/linking-common": "^4.
|
|
49
|
+
"@atlaskit/linking-common": "^4.15.0",
|
|
50
50
|
"@atlaskit/linking-types": "^8.4.0",
|
|
51
51
|
"@atlaskit/lozenge": "^11.4.0",
|
|
52
52
|
"@atlaskit/modal-dialog": "^12.8.0",
|