@atlaskit/link-datasource 6.1.3 → 6.1.5
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 +13 -0
- package/dist/cjs/hooks/useAssetsClient.js +33 -63
- package/dist/cjs/ui/issue-like-table/render-type/link/index.js +6 -27
- package/dist/es2019/hooks/useAssetsClient.js +5 -26
- package/dist/es2019/ui/issue-like-table/render-type/link/index.js +5 -27
- package/dist/esm/hooks/useAssetsClient.js +33 -63
- package/dist/esm/ui/issue-like-table/render-type/link/index.js +6 -27
- package/package.json +16 -20
- package/dist/cjs/services/getMeta.js +0 -41
- package/dist/es2019/services/getMeta.js +0 -35
- package/dist/esm/services/getMeta.js +0 -35
- package/dist/types/services/getMeta.d.ts +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/link-datasource
|
|
2
2
|
|
|
3
|
+
## 6.1.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 6.1.4
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`5a653f46eff1d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/5a653f46eff1d) -
|
|
14
|
+
Partially Reverting a change made in 368271 PR
|
|
15
|
+
|
|
3
16
|
## 6.1.3
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -9,11 +9,8 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
11
|
var _react = require("react");
|
|
12
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
|
-
var _assetsWorkspaceHost = require("@atlassian/assets-workspace-host");
|
|
14
12
|
var _analytics = require("../analytics");
|
|
15
13
|
var _cmdbService = require("../services/cmdbService");
|
|
16
|
-
var _getMeta2 = require("../services/getMeta");
|
|
17
14
|
var handleAssetsClientErrors = function handleAssetsClientErrors(errorSetter, error) {
|
|
18
15
|
if (error instanceof Error) {
|
|
19
16
|
errorSetter(error);
|
|
@@ -22,7 +19,6 @@ var handleAssetsClientErrors = function handleAssetsClientErrors(errorSetter, er
|
|
|
22
19
|
}
|
|
23
20
|
};
|
|
24
21
|
var useAssetsClient = exports.useAssetsClient = function useAssetsClient(initialParameters) {
|
|
25
|
-
var _getMeta;
|
|
26
22
|
var _useState = (0, _react.useState)(false),
|
|
27
23
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
28
24
|
loading = _useState2[0],
|
|
@@ -58,100 +54,74 @@ var useAssetsClient = exports.useAssetsClient = function useAssetsClient(initial
|
|
|
58
54
|
var _useDatasourceAnalyti = (0, _analytics.useDatasourceAnalyticsEvents)(),
|
|
59
55
|
fireEvent = _useDatasourceAnalyti.fireEvent;
|
|
60
56
|
|
|
61
|
-
// cloudId resolved from <meta name="ajs-cloud-id"> rendered by the host page.
|
|
62
|
-
var cloudId = (_getMeta = (0, _getMeta2.getMeta)('ajs-cloud-id')) !== null && _getMeta !== void 0 ? _getMeta : '';
|
|
63
|
-
var isResolverGateOn = (0, _platformFeatureFlags.fg)('astral_units_workspace_host_resolver');
|
|
64
|
-
var _useAssetsWorkspaceHo = (0, _assetsWorkspaceHost.useAssetsWorkspaceHost)({
|
|
65
|
-
cloudId: cloudId,
|
|
66
|
-
productContext: 'confluence',
|
|
67
|
-
skip: !cloudId || !isResolverGateOn
|
|
68
|
-
}),
|
|
69
|
-
resolvedWorkspaceId = _useAssetsWorkspaceHo.resolvedWorkspaceId,
|
|
70
|
-
isResolverPending = _useAssetsWorkspaceHo.isPending,
|
|
71
|
-
isResolverIdle = _useAssetsWorkspaceHo.isIdle;
|
|
72
|
-
var isResolverPendingOrIdle = isResolverIdle || isResolverPending;
|
|
73
57
|
/*
|
|
74
58
|
* We wrap this in nested try/catch blocks because we want to handle
|
|
75
59
|
* workspaceError/existingObjectSchemaError/objectSchemasError differently
|
|
76
60
|
* if we need to implement more initial data fetching/errors we should look at a store
|
|
77
61
|
*/
|
|
78
62
|
(0, _react.useEffect)(function () {
|
|
79
|
-
if (isResolverPendingOrIdle && isResolverGateOn) {
|
|
80
|
-
setLoading(true);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
63
|
(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
84
|
-
var
|
|
64
|
+
var _workspaceId, fetchedObjectSchema, fetchedObjectSchemasResponse, _t, _t2, _t3;
|
|
85
65
|
return _regenerator.default.wrap(function (_context) {
|
|
86
66
|
while (1) switch (_context.prev = _context.next) {
|
|
87
67
|
case 0:
|
|
88
68
|
setLoading(true);
|
|
89
69
|
setWorkspaceError(undefined);
|
|
90
70
|
_context.prev = 1;
|
|
91
|
-
|
|
92
|
-
_context.next = 2;
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
_t = resolvedWorkspaceId;
|
|
96
|
-
_context.next = 4;
|
|
97
|
-
break;
|
|
98
|
-
case 2:
|
|
99
|
-
_context.next = 3;
|
|
71
|
+
_context.next = 2;
|
|
100
72
|
return (0, _cmdbService.getWorkspaceId)(fireEvent);
|
|
101
|
-
case
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
effectiveWorkspaceId = _t;
|
|
105
|
-
setWorkspaceId(effectiveWorkspaceId);
|
|
73
|
+
case 2:
|
|
74
|
+
_workspaceId = _context.sent;
|
|
75
|
+
setWorkspaceId(_workspaceId);
|
|
106
76
|
// Check schema from initial parameters still exists and fetch name/permissions for schema select
|
|
107
77
|
if (!(initialParameters !== null && initialParameters !== void 0 && initialParameters.schemaId)) {
|
|
108
|
-
_context.next =
|
|
78
|
+
_context.next = 6;
|
|
109
79
|
break;
|
|
110
80
|
}
|
|
111
|
-
_context.prev =
|
|
112
|
-
_context.next =
|
|
113
|
-
return (0, _cmdbService.fetchObjectSchema)(
|
|
114
|
-
case
|
|
81
|
+
_context.prev = 3;
|
|
82
|
+
_context.next = 4;
|
|
83
|
+
return (0, _cmdbService.fetchObjectSchema)(_workspaceId, initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.schemaId, fireEvent);
|
|
84
|
+
case 4:
|
|
115
85
|
fetchedObjectSchema = _context.sent;
|
|
116
86
|
setExistingObjectSchema(fetchedObjectSchema);
|
|
117
|
-
_context.next =
|
|
87
|
+
_context.next = 6;
|
|
118
88
|
break;
|
|
89
|
+
case 5:
|
|
90
|
+
_context.prev = 5;
|
|
91
|
+
_t = _context["catch"](3);
|
|
92
|
+
handleAssetsClientErrors(setExistingObjectSchemaError, _t);
|
|
93
|
+
case 6:
|
|
94
|
+
_context.prev = 6;
|
|
95
|
+
_context.next = 7;
|
|
96
|
+
return (0, _cmdbService.fetchObjectSchemas)(_workspaceId, undefined, fireEvent);
|
|
119
97
|
case 7:
|
|
120
|
-
_context.prev = 7;
|
|
121
|
-
_t2 = _context["catch"](5);
|
|
122
|
-
handleAssetsClientErrors(setExistingObjectSchemaError, _t2);
|
|
123
|
-
case 8:
|
|
124
|
-
_context.prev = 8;
|
|
125
|
-
_context.next = 9;
|
|
126
|
-
return (0, _cmdbService.fetchObjectSchemas)(effectiveWorkspaceId, undefined, fireEvent);
|
|
127
|
-
case 9:
|
|
128
98
|
fetchedObjectSchemasResponse = _context.sent;
|
|
129
99
|
setObjectSchemas(fetchedObjectSchemasResponse.values);
|
|
130
100
|
setTotalObjectSchemas(fetchedObjectSchemasResponse.total);
|
|
101
|
+
_context.next = 9;
|
|
102
|
+
break;
|
|
103
|
+
case 8:
|
|
104
|
+
_context.prev = 8;
|
|
105
|
+
_t2 = _context["catch"](6);
|
|
106
|
+
handleAssetsClientErrors(setObjectSchemasError, _t2);
|
|
107
|
+
case 9:
|
|
131
108
|
_context.next = 11;
|
|
132
109
|
break;
|
|
133
110
|
case 10:
|
|
134
111
|
_context.prev = 10;
|
|
135
|
-
_t3 = _context["catch"](
|
|
136
|
-
handleAssetsClientErrors(
|
|
112
|
+
_t3 = _context["catch"](1);
|
|
113
|
+
handleAssetsClientErrors(setWorkspaceError, _t3);
|
|
137
114
|
case 11:
|
|
138
|
-
_context.
|
|
139
|
-
break;
|
|
140
|
-
case 12:
|
|
141
|
-
_context.prev = 12;
|
|
142
|
-
_t4 = _context["catch"](1);
|
|
143
|
-
handleAssetsClientErrors(setWorkspaceError, _t4);
|
|
144
|
-
case 13:
|
|
145
|
-
_context.prev = 13;
|
|
115
|
+
_context.prev = 11;
|
|
146
116
|
setLoading(false);
|
|
147
|
-
return _context.finish(
|
|
148
|
-
case
|
|
117
|
+
return _context.finish(11);
|
|
118
|
+
case 12:
|
|
149
119
|
case "end":
|
|
150
120
|
return _context.stop();
|
|
151
121
|
}
|
|
152
|
-
}, _callee, null, [[1,
|
|
122
|
+
}, _callee, null, [[1, 10, 11, 12], [3, 5], [6, 8]]);
|
|
153
123
|
}))();
|
|
154
|
-
}, [initialParameters, fireEvent
|
|
124
|
+
}, [initialParameters, fireEvent]);
|
|
155
125
|
return {
|
|
156
126
|
workspaceId: workspaceId,
|
|
157
127
|
workspaceError: workspaceError,
|
|
@@ -7,14 +7,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = exports.LINK_TYPE_TEST_ID = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
10
|
var _smartCard = require("@atlaskit/smart-card");
|
|
12
11
|
var _hoverCard = require("@atlaskit/smart-card/hover-card");
|
|
13
12
|
var _linkUrl = _interopRequireDefault(require("@atlaskit/smart-card/link-url"));
|
|
14
|
-
var _assetsWorkspaceHost = require("@atlassian/assets-workspace-host");
|
|
15
|
-
var _getMeta2 = require("../../../../services/getMeta");
|
|
16
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
17
|
-
var ASSETS_URL_PREFIX = '/jira/servicedesk/assets/';
|
|
18
14
|
var linkStyles = {
|
|
19
15
|
key: {
|
|
20
16
|
fontWeight: "var(--ds-font-weight-semibold, 600)",
|
|
@@ -25,7 +21,6 @@ var linkStyles = {
|
|
|
25
21
|
};
|
|
26
22
|
var LINK_TYPE_TEST_ID = exports.LINK_TYPE_TEST_ID = 'link-datasource-render-type--link';
|
|
27
23
|
var LinkRenderType = function LinkRenderType(_ref) {
|
|
28
|
-
var _getMeta;
|
|
29
24
|
var style = _ref.style,
|
|
30
25
|
url = _ref.url,
|
|
31
26
|
text = _ref.text,
|
|
@@ -34,27 +29,11 @@ var LinkRenderType = function LinkRenderType(_ref) {
|
|
|
34
29
|
var linkStyle = (0, _react.useMemo)(function () {
|
|
35
30
|
return (style === null || style === void 0 ? void 0 : style.appearance) && linkStyles[style.appearance] || {};
|
|
36
31
|
}, [style]);
|
|
37
|
-
var cloudId = (_getMeta = (0, _getMeta2.getMeta)('ajs-cloud-id')) !== null && _getMeta !== void 0 ? _getMeta : '';
|
|
38
|
-
var isResolverGateOn = (0, _platformFeatureFlags.fg)('astral_units_workspace_host_resolver');
|
|
39
|
-
var isAssetsUrl = typeof url === 'string' && url.startsWith(ASSETS_URL_PREFIX);
|
|
40
|
-
var skipWorkspaceHostResolver = !cloudId || !isAssetsUrl || !isResolverGateOn;
|
|
41
|
-
var _useAssetsWorkspaceHo = (0, _assetsWorkspaceHost.useAssetsWorkspaceHost)({
|
|
42
|
-
cloudId: cloudId,
|
|
43
|
-
productContext: 'confluence',
|
|
44
|
-
skip: skipWorkspaceHostResolver
|
|
45
|
-
}),
|
|
46
|
-
resolverData = _useAssetsWorkspaceHo.data;
|
|
47
|
-
var rewrittenUrl = (0, _react.useMemo)(function () {
|
|
48
|
-
if (!url || !(resolverData !== null && resolverData !== void 0 && resolverData.host) || skipWorkspaceHostResolver) {
|
|
49
|
-
return url;
|
|
50
|
-
}
|
|
51
|
-
return "".concat(resolverData.host).concat(url);
|
|
52
|
-
}, [url, skipWorkspaceHostResolver, resolverData === null || resolverData === void 0 ? void 0 : resolverData.host]);
|
|
53
32
|
var anchor = (0, _react.useMemo)(function () {
|
|
54
33
|
return /*#__PURE__*/_react.default.createElement(_hoverCard.HoverCard, {
|
|
55
|
-
url:
|
|
34
|
+
url: url
|
|
56
35
|
}, /*#__PURE__*/_react.default.createElement(_linkUrl.default, {
|
|
57
|
-
href:
|
|
36
|
+
href: url
|
|
58
37
|
// NOTE: This will no longer apply styles to `@atlaskit/link`.
|
|
59
38
|
// Wrap `@atlaskit/link` in a Text component to provide font styles to Link
|
|
60
39
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
@@ -62,17 +41,17 @@ var LinkRenderType = function LinkRenderType(_ref) {
|
|
|
62
41
|
style: linkStyle,
|
|
63
42
|
"data-testid": testId,
|
|
64
43
|
target: "_blank"
|
|
65
|
-
}, text ||
|
|
66
|
-
}, [linkStyle,
|
|
44
|
+
}, text || url));
|
|
45
|
+
}, [linkStyle, url, text, testId]);
|
|
67
46
|
var SmartCard = function SmartCard() {
|
|
68
47
|
var handleClick = function handleClick(e) {
|
|
69
48
|
e.preventDefault();
|
|
70
|
-
window.open(
|
|
49
|
+
window.open(url, '_blank', 'noopener, noreferrer');
|
|
71
50
|
};
|
|
72
51
|
return /*#__PURE__*/_react.default.createElement(_smartCard.Card, {
|
|
73
52
|
appearance: "inline",
|
|
74
53
|
onClick: handleClick,
|
|
75
|
-
url:
|
|
54
|
+
url: url,
|
|
76
55
|
testId: testId,
|
|
77
56
|
fallbackComponent: function fallbackComponent() {
|
|
78
57
|
return anchor;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react';
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
|
-
import { useAssetsWorkspaceHost } from '@atlassian/assets-workspace-host';
|
|
4
2
|
import { useDatasourceAnalyticsEvents } from '../analytics';
|
|
5
3
|
import { fetchObjectSchema, fetchObjectSchemas, getWorkspaceId } from '../services/cmdbService';
|
|
6
|
-
import { getMeta } from '../services/getMeta';
|
|
7
4
|
const handleAssetsClientErrors = (errorSetter, error) => {
|
|
8
5
|
if (error instanceof Error) {
|
|
9
6
|
errorSetter(error);
|
|
@@ -12,7 +9,6 @@ const handleAssetsClientErrors = (errorSetter, error) => {
|
|
|
12
9
|
}
|
|
13
10
|
};
|
|
14
11
|
export const useAssetsClient = initialParameters => {
|
|
15
|
-
var _getMeta;
|
|
16
12
|
const [loading, setLoading] = useState(false);
|
|
17
13
|
const [workspaceId, setWorkspaceId] = useState();
|
|
18
14
|
const [workspaceError, setWorkspaceError] = useState();
|
|
@@ -25,46 +21,29 @@ export const useAssetsClient = initialParameters => {
|
|
|
25
21
|
fireEvent
|
|
26
22
|
} = useDatasourceAnalyticsEvents();
|
|
27
23
|
|
|
28
|
-
// cloudId resolved from <meta name="ajs-cloud-id"> rendered by the host page.
|
|
29
|
-
const cloudId = (_getMeta = getMeta('ajs-cloud-id')) !== null && _getMeta !== void 0 ? _getMeta : '';
|
|
30
|
-
const isResolverGateOn = fg('astral_units_workspace_host_resolver');
|
|
31
|
-
const {
|
|
32
|
-
resolvedWorkspaceId,
|
|
33
|
-
isPending: isResolverPending,
|
|
34
|
-
isIdle: isResolverIdle
|
|
35
|
-
} = useAssetsWorkspaceHost({
|
|
36
|
-
cloudId,
|
|
37
|
-
productContext: 'confluence',
|
|
38
|
-
skip: !cloudId || !isResolverGateOn
|
|
39
|
-
});
|
|
40
|
-
const isResolverPendingOrIdle = isResolverIdle || isResolverPending;
|
|
41
24
|
/*
|
|
42
25
|
* We wrap this in nested try/catch blocks because we want to handle
|
|
43
26
|
* workspaceError/existingObjectSchemaError/objectSchemasError differently
|
|
44
27
|
* if we need to implement more initial data fetching/errors we should look at a store
|
|
45
28
|
*/
|
|
46
29
|
useEffect(() => {
|
|
47
|
-
if (isResolverPendingOrIdle && isResolverGateOn) {
|
|
48
|
-
setLoading(true);
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
30
|
(async () => {
|
|
52
31
|
setLoading(true);
|
|
53
32
|
setWorkspaceError(undefined);
|
|
54
33
|
try {
|
|
55
|
-
const
|
|
56
|
-
setWorkspaceId(
|
|
34
|
+
const workspaceId = await getWorkspaceId(fireEvent);
|
|
35
|
+
setWorkspaceId(workspaceId);
|
|
57
36
|
// Check schema from initial parameters still exists and fetch name/permissions for schema select
|
|
58
37
|
if (initialParameters !== null && initialParameters !== void 0 && initialParameters.schemaId) {
|
|
59
38
|
try {
|
|
60
|
-
const fetchedObjectSchema = await fetchObjectSchema(
|
|
39
|
+
const fetchedObjectSchema = await fetchObjectSchema(workspaceId, initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.schemaId, fireEvent);
|
|
61
40
|
setExistingObjectSchema(fetchedObjectSchema);
|
|
62
41
|
} catch (fetchObjectSchemaError) {
|
|
63
42
|
handleAssetsClientErrors(setExistingObjectSchemaError, fetchObjectSchemaError);
|
|
64
43
|
}
|
|
65
44
|
}
|
|
66
45
|
try {
|
|
67
|
-
const fetchedObjectSchemasResponse = await fetchObjectSchemas(
|
|
46
|
+
const fetchedObjectSchemasResponse = await fetchObjectSchemas(workspaceId, undefined, fireEvent);
|
|
68
47
|
setObjectSchemas(fetchedObjectSchemasResponse.values);
|
|
69
48
|
setTotalObjectSchemas(fetchedObjectSchemasResponse.total);
|
|
70
49
|
} catch (fetchObjectSchemasError) {
|
|
@@ -76,7 +55,7 @@ export const useAssetsClient = initialParameters => {
|
|
|
76
55
|
setLoading(false);
|
|
77
56
|
}
|
|
78
57
|
})();
|
|
79
|
-
}, [initialParameters, fireEvent
|
|
58
|
+
}, [initialParameters, fireEvent]);
|
|
80
59
|
return {
|
|
81
60
|
workspaceId,
|
|
82
61
|
workspaceError,
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
2
|
import { Card } from '@atlaskit/smart-card';
|
|
4
3
|
import { HoverCard } from '@atlaskit/smart-card/hover-card';
|
|
5
4
|
import LinkUrl from '@atlaskit/smart-card/link-url';
|
|
6
|
-
import { useAssetsWorkspaceHost } from '@atlassian/assets-workspace-host';
|
|
7
|
-
import { getMeta } from '../../../../services/getMeta';
|
|
8
|
-
const ASSETS_URL_PREFIX = '/jira/servicedesk/assets/';
|
|
9
5
|
const linkStyles = {
|
|
10
6
|
key: {
|
|
11
7
|
fontWeight: "var(--ds-font-weight-semibold, 600)",
|
|
@@ -21,31 +17,13 @@ const LinkRenderType = ({
|
|
|
21
17
|
text,
|
|
22
18
|
testId = LINK_TYPE_TEST_ID
|
|
23
19
|
}) => {
|
|
24
|
-
var _getMeta;
|
|
25
20
|
const linkStyle = useMemo(() => {
|
|
26
21
|
return (style === null || style === void 0 ? void 0 : style.appearance) && linkStyles[style.appearance] || {};
|
|
27
22
|
}, [style]);
|
|
28
|
-
const cloudId = (_getMeta = getMeta('ajs-cloud-id')) !== null && _getMeta !== void 0 ? _getMeta : '';
|
|
29
|
-
const isResolverGateOn = fg('astral_units_workspace_host_resolver');
|
|
30
|
-
const isAssetsUrl = typeof url === 'string' && url.startsWith(ASSETS_URL_PREFIX);
|
|
31
|
-
const skipWorkspaceHostResolver = !cloudId || !isAssetsUrl || !isResolverGateOn;
|
|
32
|
-
const {
|
|
33
|
-
data: resolverData
|
|
34
|
-
} = useAssetsWorkspaceHost({
|
|
35
|
-
cloudId,
|
|
36
|
-
productContext: 'confluence',
|
|
37
|
-
skip: skipWorkspaceHostResolver
|
|
38
|
-
});
|
|
39
|
-
const rewrittenUrl = useMemo(() => {
|
|
40
|
-
if (!url || !(resolverData !== null && resolverData !== void 0 && resolverData.host) || skipWorkspaceHostResolver) {
|
|
41
|
-
return url;
|
|
42
|
-
}
|
|
43
|
-
return `${resolverData.host}${url}`;
|
|
44
|
-
}, [url, skipWorkspaceHostResolver, resolverData === null || resolverData === void 0 ? void 0 : resolverData.host]);
|
|
45
23
|
const anchor = useMemo(() => /*#__PURE__*/React.createElement(HoverCard, {
|
|
46
|
-
url:
|
|
24
|
+
url: url
|
|
47
25
|
}, /*#__PURE__*/React.createElement(LinkUrl, {
|
|
48
|
-
href:
|
|
26
|
+
href: url
|
|
49
27
|
// NOTE: This will no longer apply styles to `@atlaskit/link`.
|
|
50
28
|
// Wrap `@atlaskit/link` in a Text component to provide font styles to Link
|
|
51
29
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
@@ -53,16 +31,16 @@ const LinkRenderType = ({
|
|
|
53
31
|
style: linkStyle,
|
|
54
32
|
"data-testid": testId,
|
|
55
33
|
target: "_blank"
|
|
56
|
-
}, text ||
|
|
34
|
+
}, text || url)), [linkStyle, url, text, testId]);
|
|
57
35
|
const SmartCard = () => {
|
|
58
36
|
const handleClick = e => {
|
|
59
37
|
e.preventDefault();
|
|
60
|
-
window.open(
|
|
38
|
+
window.open(url, '_blank', 'noopener, noreferrer');
|
|
61
39
|
};
|
|
62
40
|
return /*#__PURE__*/React.createElement(Card, {
|
|
63
41
|
appearance: "inline",
|
|
64
42
|
onClick: handleClick,
|
|
65
|
-
url:
|
|
43
|
+
url: url,
|
|
66
44
|
testId: testId,
|
|
67
45
|
fallbackComponent: () => anchor
|
|
68
46
|
});
|
|
@@ -2,11 +2,8 @@ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
4
|
import { useEffect, useState } from 'react';
|
|
5
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
|
-
import { useAssetsWorkspaceHost } from '@atlassian/assets-workspace-host';
|
|
7
5
|
import { useDatasourceAnalyticsEvents } from '../analytics';
|
|
8
6
|
import { fetchObjectSchema, fetchObjectSchemas, getWorkspaceId } from '../services/cmdbService';
|
|
9
|
-
import { getMeta } from '../services/getMeta';
|
|
10
7
|
var handleAssetsClientErrors = function handleAssetsClientErrors(errorSetter, error) {
|
|
11
8
|
if (error instanceof Error) {
|
|
12
9
|
errorSetter(error);
|
|
@@ -15,7 +12,6 @@ var handleAssetsClientErrors = function handleAssetsClientErrors(errorSetter, er
|
|
|
15
12
|
}
|
|
16
13
|
};
|
|
17
14
|
export var useAssetsClient = function useAssetsClient(initialParameters) {
|
|
18
|
-
var _getMeta;
|
|
19
15
|
var _useState = useState(false),
|
|
20
16
|
_useState2 = _slicedToArray(_useState, 2),
|
|
21
17
|
loading = _useState2[0],
|
|
@@ -51,100 +47,74 @@ export var useAssetsClient = function useAssetsClient(initialParameters) {
|
|
|
51
47
|
var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
|
|
52
48
|
fireEvent = _useDatasourceAnalyti.fireEvent;
|
|
53
49
|
|
|
54
|
-
// cloudId resolved from <meta name="ajs-cloud-id"> rendered by the host page.
|
|
55
|
-
var cloudId = (_getMeta = getMeta('ajs-cloud-id')) !== null && _getMeta !== void 0 ? _getMeta : '';
|
|
56
|
-
var isResolverGateOn = fg('astral_units_workspace_host_resolver');
|
|
57
|
-
var _useAssetsWorkspaceHo = useAssetsWorkspaceHost({
|
|
58
|
-
cloudId: cloudId,
|
|
59
|
-
productContext: 'confluence',
|
|
60
|
-
skip: !cloudId || !isResolverGateOn
|
|
61
|
-
}),
|
|
62
|
-
resolvedWorkspaceId = _useAssetsWorkspaceHo.resolvedWorkspaceId,
|
|
63
|
-
isResolverPending = _useAssetsWorkspaceHo.isPending,
|
|
64
|
-
isResolverIdle = _useAssetsWorkspaceHo.isIdle;
|
|
65
|
-
var isResolverPendingOrIdle = isResolverIdle || isResolverPending;
|
|
66
50
|
/*
|
|
67
51
|
* We wrap this in nested try/catch blocks because we want to handle
|
|
68
52
|
* workspaceError/existingObjectSchemaError/objectSchemasError differently
|
|
69
53
|
* if we need to implement more initial data fetching/errors we should look at a store
|
|
70
54
|
*/
|
|
71
55
|
useEffect(function () {
|
|
72
|
-
if (isResolverPendingOrIdle && isResolverGateOn) {
|
|
73
|
-
setLoading(true);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
56
|
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
77
|
-
var
|
|
57
|
+
var _workspaceId, fetchedObjectSchema, fetchedObjectSchemasResponse, _t, _t2, _t3;
|
|
78
58
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
79
59
|
while (1) switch (_context.prev = _context.next) {
|
|
80
60
|
case 0:
|
|
81
61
|
setLoading(true);
|
|
82
62
|
setWorkspaceError(undefined);
|
|
83
63
|
_context.prev = 1;
|
|
84
|
-
|
|
85
|
-
_context.next = 2;
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
_t = resolvedWorkspaceId;
|
|
89
|
-
_context.next = 4;
|
|
90
|
-
break;
|
|
91
|
-
case 2:
|
|
92
|
-
_context.next = 3;
|
|
64
|
+
_context.next = 2;
|
|
93
65
|
return getWorkspaceId(fireEvent);
|
|
94
|
-
case
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
effectiveWorkspaceId = _t;
|
|
98
|
-
setWorkspaceId(effectiveWorkspaceId);
|
|
66
|
+
case 2:
|
|
67
|
+
_workspaceId = _context.sent;
|
|
68
|
+
setWorkspaceId(_workspaceId);
|
|
99
69
|
// Check schema from initial parameters still exists and fetch name/permissions for schema select
|
|
100
70
|
if (!(initialParameters !== null && initialParameters !== void 0 && initialParameters.schemaId)) {
|
|
101
|
-
_context.next =
|
|
71
|
+
_context.next = 6;
|
|
102
72
|
break;
|
|
103
73
|
}
|
|
104
|
-
_context.prev =
|
|
105
|
-
_context.next =
|
|
106
|
-
return fetchObjectSchema(
|
|
107
|
-
case
|
|
74
|
+
_context.prev = 3;
|
|
75
|
+
_context.next = 4;
|
|
76
|
+
return fetchObjectSchema(_workspaceId, initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.schemaId, fireEvent);
|
|
77
|
+
case 4:
|
|
108
78
|
fetchedObjectSchema = _context.sent;
|
|
109
79
|
setExistingObjectSchema(fetchedObjectSchema);
|
|
110
|
-
_context.next =
|
|
80
|
+
_context.next = 6;
|
|
111
81
|
break;
|
|
82
|
+
case 5:
|
|
83
|
+
_context.prev = 5;
|
|
84
|
+
_t = _context["catch"](3);
|
|
85
|
+
handleAssetsClientErrors(setExistingObjectSchemaError, _t);
|
|
86
|
+
case 6:
|
|
87
|
+
_context.prev = 6;
|
|
88
|
+
_context.next = 7;
|
|
89
|
+
return fetchObjectSchemas(_workspaceId, undefined, fireEvent);
|
|
112
90
|
case 7:
|
|
113
|
-
_context.prev = 7;
|
|
114
|
-
_t2 = _context["catch"](5);
|
|
115
|
-
handleAssetsClientErrors(setExistingObjectSchemaError, _t2);
|
|
116
|
-
case 8:
|
|
117
|
-
_context.prev = 8;
|
|
118
|
-
_context.next = 9;
|
|
119
|
-
return fetchObjectSchemas(effectiveWorkspaceId, undefined, fireEvent);
|
|
120
|
-
case 9:
|
|
121
91
|
fetchedObjectSchemasResponse = _context.sent;
|
|
122
92
|
setObjectSchemas(fetchedObjectSchemasResponse.values);
|
|
123
93
|
setTotalObjectSchemas(fetchedObjectSchemasResponse.total);
|
|
94
|
+
_context.next = 9;
|
|
95
|
+
break;
|
|
96
|
+
case 8:
|
|
97
|
+
_context.prev = 8;
|
|
98
|
+
_t2 = _context["catch"](6);
|
|
99
|
+
handleAssetsClientErrors(setObjectSchemasError, _t2);
|
|
100
|
+
case 9:
|
|
124
101
|
_context.next = 11;
|
|
125
102
|
break;
|
|
126
103
|
case 10:
|
|
127
104
|
_context.prev = 10;
|
|
128
|
-
_t3 = _context["catch"](
|
|
129
|
-
handleAssetsClientErrors(
|
|
105
|
+
_t3 = _context["catch"](1);
|
|
106
|
+
handleAssetsClientErrors(setWorkspaceError, _t3);
|
|
130
107
|
case 11:
|
|
131
|
-
_context.
|
|
132
|
-
break;
|
|
133
|
-
case 12:
|
|
134
|
-
_context.prev = 12;
|
|
135
|
-
_t4 = _context["catch"](1);
|
|
136
|
-
handleAssetsClientErrors(setWorkspaceError, _t4);
|
|
137
|
-
case 13:
|
|
138
|
-
_context.prev = 13;
|
|
108
|
+
_context.prev = 11;
|
|
139
109
|
setLoading(false);
|
|
140
|
-
return _context.finish(
|
|
141
|
-
case
|
|
110
|
+
return _context.finish(11);
|
|
111
|
+
case 12:
|
|
142
112
|
case "end":
|
|
143
113
|
return _context.stop();
|
|
144
114
|
}
|
|
145
|
-
}, _callee, null, [[1,
|
|
115
|
+
}, _callee, null, [[1, 10, 11, 12], [3, 5], [6, 8]]);
|
|
146
116
|
}))();
|
|
147
|
-
}, [initialParameters, fireEvent
|
|
117
|
+
}, [initialParameters, fireEvent]);
|
|
148
118
|
return {
|
|
149
119
|
workspaceId: workspaceId,
|
|
150
120
|
workspaceError: workspaceError,
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
2
|
import { Card } from '@atlaskit/smart-card';
|
|
4
3
|
import { HoverCard } from '@atlaskit/smart-card/hover-card';
|
|
5
4
|
import LinkUrl from '@atlaskit/smart-card/link-url';
|
|
6
|
-
import { useAssetsWorkspaceHost } from '@atlassian/assets-workspace-host';
|
|
7
|
-
import { getMeta } from '../../../../services/getMeta';
|
|
8
|
-
var ASSETS_URL_PREFIX = '/jira/servicedesk/assets/';
|
|
9
5
|
var linkStyles = {
|
|
10
6
|
key: {
|
|
11
7
|
fontWeight: "var(--ds-font-weight-semibold, 600)",
|
|
@@ -16,7 +12,6 @@ var linkStyles = {
|
|
|
16
12
|
};
|
|
17
13
|
export var LINK_TYPE_TEST_ID = 'link-datasource-render-type--link';
|
|
18
14
|
var LinkRenderType = function LinkRenderType(_ref) {
|
|
19
|
-
var _getMeta;
|
|
20
15
|
var style = _ref.style,
|
|
21
16
|
url = _ref.url,
|
|
22
17
|
text = _ref.text,
|
|
@@ -25,27 +20,11 @@ var LinkRenderType = function LinkRenderType(_ref) {
|
|
|
25
20
|
var linkStyle = useMemo(function () {
|
|
26
21
|
return (style === null || style === void 0 ? void 0 : style.appearance) && linkStyles[style.appearance] || {};
|
|
27
22
|
}, [style]);
|
|
28
|
-
var cloudId = (_getMeta = getMeta('ajs-cloud-id')) !== null && _getMeta !== void 0 ? _getMeta : '';
|
|
29
|
-
var isResolverGateOn = fg('astral_units_workspace_host_resolver');
|
|
30
|
-
var isAssetsUrl = typeof url === 'string' && url.startsWith(ASSETS_URL_PREFIX);
|
|
31
|
-
var skipWorkspaceHostResolver = !cloudId || !isAssetsUrl || !isResolverGateOn;
|
|
32
|
-
var _useAssetsWorkspaceHo = useAssetsWorkspaceHost({
|
|
33
|
-
cloudId: cloudId,
|
|
34
|
-
productContext: 'confluence',
|
|
35
|
-
skip: skipWorkspaceHostResolver
|
|
36
|
-
}),
|
|
37
|
-
resolverData = _useAssetsWorkspaceHo.data;
|
|
38
|
-
var rewrittenUrl = useMemo(function () {
|
|
39
|
-
if (!url || !(resolverData !== null && resolverData !== void 0 && resolverData.host) || skipWorkspaceHostResolver) {
|
|
40
|
-
return url;
|
|
41
|
-
}
|
|
42
|
-
return "".concat(resolverData.host).concat(url);
|
|
43
|
-
}, [url, skipWorkspaceHostResolver, resolverData === null || resolverData === void 0 ? void 0 : resolverData.host]);
|
|
44
23
|
var anchor = useMemo(function () {
|
|
45
24
|
return /*#__PURE__*/React.createElement(HoverCard, {
|
|
46
|
-
url:
|
|
25
|
+
url: url
|
|
47
26
|
}, /*#__PURE__*/React.createElement(LinkUrl, {
|
|
48
|
-
href:
|
|
27
|
+
href: url
|
|
49
28
|
// NOTE: This will no longer apply styles to `@atlaskit/link`.
|
|
50
29
|
// Wrap `@atlaskit/link` in a Text component to provide font styles to Link
|
|
51
30
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
@@ -53,17 +32,17 @@ var LinkRenderType = function LinkRenderType(_ref) {
|
|
|
53
32
|
style: linkStyle,
|
|
54
33
|
"data-testid": testId,
|
|
55
34
|
target: "_blank"
|
|
56
|
-
}, text ||
|
|
57
|
-
}, [linkStyle,
|
|
35
|
+
}, text || url));
|
|
36
|
+
}, [linkStyle, url, text, testId]);
|
|
58
37
|
var SmartCard = function SmartCard() {
|
|
59
38
|
var handleClick = function handleClick(e) {
|
|
60
39
|
e.preventDefault();
|
|
61
|
-
window.open(
|
|
40
|
+
window.open(url, '_blank', 'noopener, noreferrer');
|
|
62
41
|
};
|
|
63
42
|
return /*#__PURE__*/React.createElement(Card, {
|
|
64
43
|
appearance: "inline",
|
|
65
44
|
onClick: handleClick,
|
|
66
|
-
url:
|
|
45
|
+
url: url,
|
|
67
46
|
testId: testId,
|
|
68
47
|
fallbackComponent: function fallbackComponent() {
|
|
69
48
|
return anchor;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-datasource",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.5",
|
|
4
4
|
"description": "UI Components to support linking platform dataset feature",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"ak-postbuild": "ls -d dist/* | xargs -n 1 copyfiles -u 1 -V src/**/*.{svg,png}"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@atlaskit/adf-schema": "^56.
|
|
38
|
+
"@atlaskit/adf-schema": "^56.1.0",
|
|
39
39
|
"@atlaskit/afm-i18n-platform-linking-platform-link-datasource": "2.7.0",
|
|
40
|
-
"@atlaskit/analytics-next": "^12.
|
|
40
|
+
"@atlaskit/analytics-next": "^12.2.0",
|
|
41
41
|
"@atlaskit/atlassian-context": "^1.0.0",
|
|
42
42
|
"@atlaskit/avatar": "^26.1.0",
|
|
43
43
|
"@atlaskit/avatar-group": "^13.1.0",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"@atlaskit/feature-gate-js-client": "^6.0.0",
|
|
52
52
|
"@atlaskit/flag": "^18.1.0",
|
|
53
53
|
"@atlaskit/form": "^16.1.0",
|
|
54
|
-
"@atlaskit/heading": "^6.
|
|
55
|
-
"@atlaskit/icon": "^
|
|
54
|
+
"@atlaskit/heading": "^6.2.0",
|
|
55
|
+
"@atlaskit/icon": "^37.0.0",
|
|
56
56
|
"@atlaskit/image": "^4.1.0",
|
|
57
57
|
"@atlaskit/inline-edit": "^16.2.0",
|
|
58
58
|
"@atlaskit/intl-messages-provider": "^4.1.0",
|
|
@@ -62,13 +62,13 @@
|
|
|
62
62
|
"@atlaskit/layering": "^4.1.0",
|
|
63
63
|
"@atlaskit/link": "^4.1.0",
|
|
64
64
|
"@atlaskit/link-client-extension": "^7.1.0",
|
|
65
|
-
"@atlaskit/link-provider": "^5.
|
|
65
|
+
"@atlaskit/link-provider": "^5.2.0",
|
|
66
66
|
"@atlaskit/linking-common": "^11.0.0",
|
|
67
67
|
"@atlaskit/linking-types": "^15.0.0",
|
|
68
|
-
"@atlaskit/logo": "^21.
|
|
68
|
+
"@atlaskit/logo": "^21.4.0",
|
|
69
69
|
"@atlaskit/lozenge": "^14.1.0",
|
|
70
70
|
"@atlaskit/modal-dialog": "^16.1.0",
|
|
71
|
-
"@atlaskit/object": "^2.
|
|
71
|
+
"@atlaskit/object": "^2.2.0",
|
|
72
72
|
"@atlaskit/outbound-auth-flow-client": "^4.0.0",
|
|
73
73
|
"@atlaskit/platform-feature-flags": "^2.0.0",
|
|
74
74
|
"@atlaskit/popup": "^5.1.0",
|
|
@@ -76,22 +76,21 @@
|
|
|
76
76
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^2.0.0",
|
|
77
77
|
"@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll": "^3.0.0",
|
|
78
78
|
"@atlaskit/pragmatic-drag-and-drop-react-drop-indicator": "^4.1.0",
|
|
79
|
-
"@atlaskit/primitives": "^20.
|
|
79
|
+
"@atlaskit/primitives": "^20.5.0",
|
|
80
80
|
"@atlaskit/react-compiler-gating": "^0.2.0",
|
|
81
|
-
"@atlaskit/react-select": "^4.
|
|
82
|
-
"@atlaskit/select": "^22.
|
|
83
|
-
"@atlaskit/smart-card": "^45.
|
|
81
|
+
"@atlaskit/react-select": "^4.5.0",
|
|
82
|
+
"@atlaskit/select": "^22.5.0",
|
|
83
|
+
"@atlaskit/smart-card": "^45.8.0",
|
|
84
84
|
"@atlaskit/smart-user-picker": "^11.0.0",
|
|
85
85
|
"@atlaskit/spinner": "^20.1.0",
|
|
86
|
-
"@atlaskit/tag": "^15.
|
|
86
|
+
"@atlaskit/tag": "^15.2.0",
|
|
87
87
|
"@atlaskit/textfield": "^9.1.0",
|
|
88
88
|
"@atlaskit/theme": "^26.1.0",
|
|
89
|
-
"@atlaskit/tokens": "^15.
|
|
89
|
+
"@atlaskit/tokens": "^15.5.0",
|
|
90
90
|
"@atlaskit/tooltip": "^23.1.0",
|
|
91
91
|
"@atlaskit/ufo": "^1.0.0",
|
|
92
92
|
"@atlaskit/visually-hidden": "^4.1.0",
|
|
93
|
-
"@atlaskit/width-detector": "^6.
|
|
94
|
-
"@atlassian/assets-workspace-host": "^0.7.0",
|
|
93
|
+
"@atlaskit/width-detector": "^6.2.0",
|
|
95
94
|
"@babel/runtime": "^7.0.0",
|
|
96
95
|
"@compiled/react": "^0.20.0",
|
|
97
96
|
"@types/dompurify": "^2.2.3",
|
|
@@ -117,7 +116,7 @@
|
|
|
117
116
|
"@atlaskit/ssr": "workspace:^",
|
|
118
117
|
"@atlassian/a11y-jest-testing": "^0.13.0",
|
|
119
118
|
"@atlassian/a11y-playwright-testing": "^0.10.0",
|
|
120
|
-
"@atlassian/feature-flags-test-utils": "^1.
|
|
119
|
+
"@atlassian/feature-flags-test-utils": "^1.2.0",
|
|
121
120
|
"@atlassian/structured-docs-types": "workspace:^",
|
|
122
121
|
"@faker-js/faker": "^7.5.0",
|
|
123
122
|
"@testing-library/dom": "^10.1.0",
|
|
@@ -192,9 +191,6 @@
|
|
|
192
191
|
"linking_platform_link_datasource_unit_compliant": {
|
|
193
192
|
"type": "boolean"
|
|
194
193
|
},
|
|
195
|
-
"astral_units_workspace_host_resolver": {
|
|
196
|
-
"type": "boolean"
|
|
197
|
-
},
|
|
198
194
|
"platform_lp_sllv_richtext_margin_reset": {
|
|
199
195
|
"type": "boolean"
|
|
200
196
|
},
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getMeta = exports.__clearMetaCacheForTests = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* Synchronously read the value of a `<meta name="...">` tag from the current
|
|
9
|
-
* document, with per-name in-process caching to avoid repeated DOM lookups.
|
|
10
|
-
*
|
|
11
|
-
* Mirrors the convention used by `@atlassian/eoc-fetch`'s `getMeta` helper:
|
|
12
|
-
* Atlassian product pages (Confluence, Jira, etc.) render a stable set of
|
|
13
|
-
* meta tags (e.g. `<meta name="ajs-cloud-id" content="...">`) at SSR time,
|
|
14
|
-
* which client code can read directly from the DOM without any provider,
|
|
15
|
-
* network call, or host migration.
|
|
16
|
-
*
|
|
17
|
-
* Browser-only. Returns `undefined` under SSR or when the tag is absent.
|
|
18
|
-
*/
|
|
19
|
-
var cache = new Map();
|
|
20
|
-
var getMeta = exports.getMeta = function getMeta(name) {
|
|
21
|
-
var _document$querySelect, _document$querySelect2;
|
|
22
|
-
if (typeof document === 'undefined') {
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
if (cache.has(name)) {
|
|
26
|
-
return cache.get(name);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// `name` is interpolated into a CSS attribute selector
|
|
30
|
-
var escapedName = typeof CSS !== 'undefined' && CSS.escape ? CSS.escape(name) : name;
|
|
31
|
-
var value = (_document$querySelect = (_document$querySelect2 = document.querySelector("meta[name=\"".concat(escapedName, "\"]"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getAttribute('content')) !== null && _document$querySelect !== void 0 ? _document$querySelect : undefined;
|
|
32
|
-
cache.set(name, value);
|
|
33
|
-
return value;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Test-only: clear the cache so each test starts with a clean slate.
|
|
38
|
-
*/
|
|
39
|
-
var __clearMetaCacheForTests = exports.__clearMetaCacheForTests = function __clearMetaCacheForTests() {
|
|
40
|
-
cache.clear();
|
|
41
|
-
};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Synchronously read the value of a `<meta name="...">` tag from the current
|
|
3
|
-
* document, with per-name in-process caching to avoid repeated DOM lookups.
|
|
4
|
-
*
|
|
5
|
-
* Mirrors the convention used by `@atlassian/eoc-fetch`'s `getMeta` helper:
|
|
6
|
-
* Atlassian product pages (Confluence, Jira, etc.) render a stable set of
|
|
7
|
-
* meta tags (e.g. `<meta name="ajs-cloud-id" content="...">`) at SSR time,
|
|
8
|
-
* which client code can read directly from the DOM without any provider,
|
|
9
|
-
* network call, or host migration.
|
|
10
|
-
*
|
|
11
|
-
* Browser-only. Returns `undefined` under SSR or when the tag is absent.
|
|
12
|
-
*/
|
|
13
|
-
const cache = new Map();
|
|
14
|
-
export const getMeta = name => {
|
|
15
|
-
var _document$querySelect, _document$querySelect2;
|
|
16
|
-
if (typeof document === 'undefined') {
|
|
17
|
-
return undefined;
|
|
18
|
-
}
|
|
19
|
-
if (cache.has(name)) {
|
|
20
|
-
return cache.get(name);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// `name` is interpolated into a CSS attribute selector
|
|
24
|
-
const escapedName = typeof CSS !== 'undefined' && CSS.escape ? CSS.escape(name) : name;
|
|
25
|
-
const value = (_document$querySelect = (_document$querySelect2 = document.querySelector(`meta[name="${escapedName}"]`)) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getAttribute('content')) !== null && _document$querySelect !== void 0 ? _document$querySelect : undefined;
|
|
26
|
-
cache.set(name, value);
|
|
27
|
-
return value;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Test-only: clear the cache so each test starts with a clean slate.
|
|
32
|
-
*/
|
|
33
|
-
export const __clearMetaCacheForTests = () => {
|
|
34
|
-
cache.clear();
|
|
35
|
-
};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Synchronously read the value of a `<meta name="...">` tag from the current
|
|
3
|
-
* document, with per-name in-process caching to avoid repeated DOM lookups.
|
|
4
|
-
*
|
|
5
|
-
* Mirrors the convention used by `@atlassian/eoc-fetch`'s `getMeta` helper:
|
|
6
|
-
* Atlassian product pages (Confluence, Jira, etc.) render a stable set of
|
|
7
|
-
* meta tags (e.g. `<meta name="ajs-cloud-id" content="...">`) at SSR time,
|
|
8
|
-
* which client code can read directly from the DOM without any provider,
|
|
9
|
-
* network call, or host migration.
|
|
10
|
-
*
|
|
11
|
-
* Browser-only. Returns `undefined` under SSR or when the tag is absent.
|
|
12
|
-
*/
|
|
13
|
-
var cache = new Map();
|
|
14
|
-
export var getMeta = function getMeta(name) {
|
|
15
|
-
var _document$querySelect, _document$querySelect2;
|
|
16
|
-
if (typeof document === 'undefined') {
|
|
17
|
-
return undefined;
|
|
18
|
-
}
|
|
19
|
-
if (cache.has(name)) {
|
|
20
|
-
return cache.get(name);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// `name` is interpolated into a CSS attribute selector
|
|
24
|
-
var escapedName = typeof CSS !== 'undefined' && CSS.escape ? CSS.escape(name) : name;
|
|
25
|
-
var value = (_document$querySelect = (_document$querySelect2 = document.querySelector("meta[name=\"".concat(escapedName, "\"]"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getAttribute('content')) !== null && _document$querySelect !== void 0 ? _document$querySelect : undefined;
|
|
26
|
-
cache.set(name, value);
|
|
27
|
-
return value;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Test-only: clear the cache so each test starts with a clean slate.
|
|
32
|
-
*/
|
|
33
|
-
export var __clearMetaCacheForTests = function __clearMetaCacheForTests() {
|
|
34
|
-
cache.clear();
|
|
35
|
-
};
|