@atlaskit/link-datasource 7.8.2 → 7.10.0
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 +24 -0
- package/dist/cjs/ui/assets-modal/modal/render-assets-content/index.js +1 -0
- package/dist/cjs/ui/assets-modal/search-container/index.js +1 -0
- package/dist/cjs/ui/issue-like-table/render-type/object-reference/index.js +75 -0
- package/dist/cjs/ui/issue-like-table/render-type/renderType.js +12 -0
- package/dist/cjs/ui/issue-like-table/render-type/stringifyType.js +1 -0
- package/dist/es2019/ui/assets-modal/modal/render-assets-content/index.js +1 -0
- package/dist/es2019/ui/assets-modal/search-container/index.js +1 -0
- package/dist/es2019/ui/issue-like-table/render-type/object-reference/index.js +59 -0
- package/dist/es2019/ui/issue-like-table/render-type/renderType.js +10 -0
- package/dist/es2019/ui/issue-like-table/render-type/stringifyType.js +1 -0
- package/dist/esm/ui/assets-modal/modal/render-assets-content/index.js +1 -0
- package/dist/esm/ui/assets-modal/search-container/index.js +1 -0
- package/dist/esm/ui/issue-like-table/render-type/object-reference/index.js +66 -0
- package/dist/esm/ui/issue-like-table/render-type/renderType.js +12 -0
- package/dist/esm/ui/issue-like-table/render-type/stringifyType.js +1 -0
- package/dist/types/ui/issue-like-table/render-type/object-reference/index.d.ts +8 -0
- package/package.json +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @atlaskit/link-datasource
|
|
2
2
|
|
|
3
|
+
## 7.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`4b0ec5ed92261`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/4b0ec5ed92261) -
|
|
8
|
+
Update i18n NPM package versions for linking-platform,smart-experiences (Group 15)
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
|
|
14
|
+
## 7.9.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- [`cdcc836eb6f91`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/cdcc836eb6f91) -
|
|
19
|
+
Add support for the new `objectReference` datasource type (`{ url, text?, avatarUrl? }`). Behind
|
|
20
|
+
`astral_assets_macro_table_ui_uplift` it renders as an `AvatarTag` with a Smart Link hover card
|
|
21
|
+
that opens in a new tab; when the gate is off it falls back to the existing link render type.
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- Updated dependencies
|
|
26
|
+
|
|
3
27
|
## 7.8.2
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -109,6 +109,7 @@ var RenderAssetsContent = exports.RenderAssetsContent = function RenderAssetsCon
|
|
|
109
109
|
return /*#__PURE__*/React.createElement(_stack.Stack, {
|
|
110
110
|
space: "space.200"
|
|
111
111
|
}, status !== 'empty' && /*#__PURE__*/React.createElement(_heading.default, {
|
|
112
|
+
as: "h2",
|
|
112
113
|
size: "xsmall"
|
|
113
114
|
}, /*#__PURE__*/React.createElement(_reactIntl.FormattedMessage, _messages.modalMessages.tablePreviewText)), renderAssetsContentView());
|
|
114
115
|
}
|
|
@@ -126,6 +126,7 @@ var AssetsSearchContainer = exports.AssetsSearchContainer = function AssetsSearc
|
|
|
126
126
|
}, /*#__PURE__*/React.createElement(_closeButton.CloseButton, {
|
|
127
127
|
onClick: onCancel
|
|
128
128
|
})))), (0, _fg.fg)('astral_assets_macro_table_ui_uplift') ? /*#__PURE__*/React.createElement(_heading.default, {
|
|
129
|
+
as: "h2",
|
|
129
130
|
size: "xsmall"
|
|
130
131
|
}, /*#__PURE__*/React.createElement(_reactIntl.FormattedMessage, _messages.modalMessages.filterObjectsText)) : null, /*#__PURE__*/React.createElement(_styled.FormRowContainer, null, /*#__PURE__*/React.createElement(_aqlSearchInput.AqlSearchInput, {
|
|
131
132
|
value: (_initialSearchData$aq = initialSearchData.aql) !== null && _initialSearchData$aq !== void 0 ? _initialSearchData$aq : DEFAULT_AQL_QUERY,
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.OBJECT_REFERENCE_TYPE_TEST_ID = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactIntl = require("react-intl");
|
|
12
|
+
var _anchor = require("@atlaskit/primitives/compiled/anchor");
|
|
13
|
+
var _useSmartLinkDestinationUrl = require("@atlaskit/smart-card/hook/use-smart-link-destination-url");
|
|
14
|
+
var _hover = require("@atlaskit/smart-card/hover");
|
|
15
|
+
var _avatarTag = _interopRequireDefault(require("@atlaskit/tag/avatar-tag"));
|
|
16
|
+
var _teamsAvatar = _interopRequireDefault(require("@atlaskit/teams-avatar/teams-avatar"));
|
|
17
|
+
var _messages = require("../link/messages");
|
|
18
|
+
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); }
|
|
19
|
+
var OBJECT_REFERENCE_TYPE_TEST_ID = exports.OBJECT_REFERENCE_TYPE_TEST_ID = 'link-datasource-render-type--object-reference';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Renders an `objectReference` datasource value as an avatar tag that links to the referenced
|
|
23
|
+
* object. Behaves like the `link` render type (opens in a new tab, shows a Smart Link hover card,
|
|
24
|
+
* honours cross-product URL wrapping) but with the look and feel of an `AvatarTag`.
|
|
25
|
+
*/
|
|
26
|
+
var ObjectReferenceRenderType = function ObjectReferenceRenderType(_ref) {
|
|
27
|
+
var url = _ref.url,
|
|
28
|
+
text = _ref.text,
|
|
29
|
+
avatarUrl = _ref.avatarUrl,
|
|
30
|
+
_ref$testId = _ref.testId,
|
|
31
|
+
testId = _ref$testId === void 0 ? OBJECT_REFERENCE_TYPE_TEST_ID : _ref$testId;
|
|
32
|
+
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
33
|
+
formatMessage = _useIntl.formatMessage;
|
|
34
|
+
var destinationUrl = (0, _useSmartLinkDestinationUrl.useSmartLinkDestinationUrl)(url);
|
|
35
|
+
var newWindowLabel = formatMessage(_messages.messages.opensInNewTab);
|
|
36
|
+
|
|
37
|
+
// `AvatarTag` provides the controlled avatar props (size, appearance, border colour); we only
|
|
38
|
+
// supply the image source and accessible name.
|
|
39
|
+
var avatar = (0, _react.useMemo)(function () {
|
|
40
|
+
return function (props) {
|
|
41
|
+
return /*#__PURE__*/_react.default.createElement(_teamsAvatar.default, (0, _extends2.default)({}, props, {
|
|
42
|
+
src: avatarUrl,
|
|
43
|
+
name: text,
|
|
44
|
+
testId: "".concat(testId, "--avatar")
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
47
|
+
}, [avatarUrl, text, testId]);
|
|
48
|
+
var linkComponent = (0, _react.useMemo)(function () {
|
|
49
|
+
return function (props) {
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(_anchor.Anchor, (0, _extends2.default)({}, props, {
|
|
51
|
+
target: "_blank",
|
|
52
|
+
rel: "noopener noreferrer",
|
|
53
|
+
newWindowLabel: newWindowLabel
|
|
54
|
+
}));
|
|
55
|
+
};
|
|
56
|
+
}, [newWindowLabel]);
|
|
57
|
+
|
|
58
|
+
// url can be undefined before data is fetched whilst adding a new column to display
|
|
59
|
+
if (!url) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
return /*#__PURE__*/_react.default.createElement(_hover.HoverCard, {
|
|
63
|
+
url: url
|
|
64
|
+
}, /*#__PURE__*/_react.default.createElement(_avatarTag.default, {
|
|
65
|
+
type: "other",
|
|
66
|
+
text: text,
|
|
67
|
+
href: destinationUrl,
|
|
68
|
+
isRemovable: false,
|
|
69
|
+
avatar: avatar,
|
|
70
|
+
linkComponent: linkComponent,
|
|
71
|
+
testId: testId
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
var _default_1 = /*#__PURE__*/_react.default.memo(ObjectReferenceRenderType);
|
|
75
|
+
var _default = exports.default = _default_1;
|
|
@@ -7,12 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.renderType = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _fg = require("@atlaskit/platform-feature-flags/fg");
|
|
10
11
|
var _boolean = _interopRequireDefault(require("./boolean"));
|
|
11
12
|
var _dateRange = _interopRequireDefault(require("./date-range"));
|
|
12
13
|
var _dateTime = _interopRequireDefault(require("./date-time"));
|
|
13
14
|
var _icon = _interopRequireDefault(require("./icon"));
|
|
14
15
|
var _link = _interopRequireDefault(require("./link"));
|
|
15
16
|
var _number = _interopRequireDefault(require("./number"));
|
|
17
|
+
var _objectReference = _interopRequireDefault(require("./object-reference"));
|
|
16
18
|
var _richtext = _interopRequireDefault(require("./richtext"));
|
|
17
19
|
var _status = _interopRequireDefault(require("./status"));
|
|
18
20
|
var _tag = _interopRequireDefault(require("./tag"));
|
|
@@ -64,6 +66,16 @@ var renderType = exports.renderType = function renderType(item) {
|
|
|
64
66
|
number: numberValue
|
|
65
67
|
});
|
|
66
68
|
});
|
|
69
|
+
case 'objectReference':
|
|
70
|
+
return item.values.map(function (objectReferenceValue) {
|
|
71
|
+
return (0, _fg.fg)('astral_assets_macro_table_ui_uplift') ? /*#__PURE__*/_react.default.createElement(_objectReference.default, (0, _extends2.default)({
|
|
72
|
+
key: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.url
|
|
73
|
+
}, objectReferenceValue)) : /*#__PURE__*/_react.default.createElement(_link.default, {
|
|
74
|
+
key: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.url,
|
|
75
|
+
url: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.url,
|
|
76
|
+
text: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.text
|
|
77
|
+
});
|
|
78
|
+
});
|
|
67
79
|
case 'status':
|
|
68
80
|
return item.values.map(function (statusValue) {
|
|
69
81
|
return /*#__PURE__*/_react.default.createElement(_status.default, statusValue);
|
|
@@ -90,6 +90,7 @@ export const RenderAssetsContent = props => {
|
|
|
90
90
|
return /*#__PURE__*/React.createElement(Stack, {
|
|
91
91
|
space: "space.200"
|
|
92
92
|
}, status !== 'empty' && /*#__PURE__*/React.createElement(Heading, {
|
|
93
|
+
as: "h2",
|
|
93
94
|
size: "xsmall"
|
|
94
95
|
}, /*#__PURE__*/React.createElement(FormattedMessage, modalMessages.tablePreviewText)), renderAssetsContentView());
|
|
95
96
|
}
|
|
@@ -121,6 +121,7 @@ export const AssetsSearchContainer = props => {
|
|
|
121
121
|
}, /*#__PURE__*/React.createElement(CloseButton, {
|
|
122
122
|
onClick: onCancel
|
|
123
123
|
})))), fg('astral_assets_macro_table_ui_uplift') ? /*#__PURE__*/React.createElement(Heading, {
|
|
124
|
+
as: "h2",
|
|
124
125
|
size: "xsmall"
|
|
125
126
|
}, /*#__PURE__*/React.createElement(FormattedMessage, modalMessages.filterObjectsText)) : null, /*#__PURE__*/React.createElement(FormRowContainer, null, /*#__PURE__*/React.createElement(AqlSearchInput, {
|
|
126
127
|
value: (_initialSearchData$aq = initialSearchData.aql) !== null && _initialSearchData$aq !== void 0 ? _initialSearchData$aq : DEFAULT_AQL_QUERY,
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
|
+
import { useIntl } from 'react-intl';
|
|
4
|
+
import { Anchor } from '@atlaskit/primitives/compiled/anchor';
|
|
5
|
+
import { useSmartLinkDestinationUrl } from '@atlaskit/smart-card/hook/use-smart-link-destination-url';
|
|
6
|
+
import { HoverCard } from '@atlaskit/smart-card/hover';
|
|
7
|
+
import AvatarTag from '@atlaskit/tag/avatar-tag';
|
|
8
|
+
import TeamAvatar from '@atlaskit/teams-avatar/teams-avatar';
|
|
9
|
+
import { messages } from '../link/messages';
|
|
10
|
+
export const OBJECT_REFERENCE_TYPE_TEST_ID = 'link-datasource-render-type--object-reference';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Renders an `objectReference` datasource value as an avatar tag that links to the referenced
|
|
14
|
+
* object. Behaves like the `link` render type (opens in a new tab, shows a Smart Link hover card,
|
|
15
|
+
* honours cross-product URL wrapping) but with the look and feel of an `AvatarTag`.
|
|
16
|
+
*/
|
|
17
|
+
const ObjectReferenceRenderType = ({
|
|
18
|
+
url,
|
|
19
|
+
text,
|
|
20
|
+
avatarUrl,
|
|
21
|
+
testId = OBJECT_REFERENCE_TYPE_TEST_ID
|
|
22
|
+
}) => {
|
|
23
|
+
const {
|
|
24
|
+
formatMessage
|
|
25
|
+
} = useIntl();
|
|
26
|
+
const destinationUrl = useSmartLinkDestinationUrl(url);
|
|
27
|
+
const newWindowLabel = formatMessage(messages.opensInNewTab);
|
|
28
|
+
|
|
29
|
+
// `AvatarTag` provides the controlled avatar props (size, appearance, border colour); we only
|
|
30
|
+
// supply the image source and accessible name.
|
|
31
|
+
const avatar = useMemo(() => props => /*#__PURE__*/React.createElement(TeamAvatar, _extends({}, props, {
|
|
32
|
+
src: avatarUrl,
|
|
33
|
+
name: text,
|
|
34
|
+
testId: `${testId}--avatar`
|
|
35
|
+
})), [avatarUrl, text, testId]);
|
|
36
|
+
const linkComponent = useMemo(() => props => /*#__PURE__*/React.createElement(Anchor, _extends({}, props, {
|
|
37
|
+
target: "_blank",
|
|
38
|
+
rel: "noopener noreferrer",
|
|
39
|
+
newWindowLabel: newWindowLabel
|
|
40
|
+
})), [newWindowLabel]);
|
|
41
|
+
|
|
42
|
+
// url can be undefined before data is fetched whilst adding a new column to display
|
|
43
|
+
if (!url) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return /*#__PURE__*/React.createElement(HoverCard, {
|
|
47
|
+
url: url
|
|
48
|
+
}, /*#__PURE__*/React.createElement(AvatarTag, {
|
|
49
|
+
type: "other",
|
|
50
|
+
text: text,
|
|
51
|
+
href: destinationUrl,
|
|
52
|
+
isRemovable: false,
|
|
53
|
+
avatar: avatar,
|
|
54
|
+
linkComponent: linkComponent,
|
|
55
|
+
testId: testId
|
|
56
|
+
}));
|
|
57
|
+
};
|
|
58
|
+
const _default_1 = /*#__PURE__*/React.memo(ObjectReferenceRenderType);
|
|
59
|
+
export default _default_1;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
3
4
|
import BooleanRenderType from './boolean';
|
|
4
5
|
import DateRangeRenderType from './date-range';
|
|
5
6
|
import DateTimeRenderType from './date-time';
|
|
6
7
|
import IconRenderType from './icon';
|
|
7
8
|
import LinkRenderType from './link';
|
|
8
9
|
import NumberRenderType from './number';
|
|
10
|
+
import ObjectReferenceRenderType from './object-reference';
|
|
9
11
|
import RichTextRenderType from './richtext';
|
|
10
12
|
import StatusRenderType from './status';
|
|
11
13
|
import TagRenderType from './tag';
|
|
@@ -43,6 +45,14 @@ export const renderType = item => {
|
|
|
43
45
|
return item.values.map(numberValue => /*#__PURE__*/React.createElement(NumberRenderType, {
|
|
44
46
|
number: numberValue
|
|
45
47
|
}));
|
|
48
|
+
case 'objectReference':
|
|
49
|
+
return item.values.map(objectReferenceValue => fg('astral_assets_macro_table_ui_uplift') ? /*#__PURE__*/React.createElement(ObjectReferenceRenderType, _extends({
|
|
50
|
+
key: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.url
|
|
51
|
+
}, objectReferenceValue)) : /*#__PURE__*/React.createElement(LinkRenderType, {
|
|
52
|
+
key: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.url,
|
|
53
|
+
url: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.url,
|
|
54
|
+
text: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.text
|
|
55
|
+
}));
|
|
46
56
|
case 'status':
|
|
47
57
|
return item.values.map(statusValue => /*#__PURE__*/React.createElement(StatusRenderType, statusValue));
|
|
48
58
|
case 'string':
|
|
@@ -100,6 +100,7 @@ export var RenderAssetsContent = function RenderAssetsContent(props) {
|
|
|
100
100
|
return /*#__PURE__*/React.createElement(Stack, {
|
|
101
101
|
space: "space.200"
|
|
102
102
|
}, status !== 'empty' && /*#__PURE__*/React.createElement(Heading, {
|
|
103
|
+
as: "h2",
|
|
103
104
|
size: "xsmall"
|
|
104
105
|
}, /*#__PURE__*/React.createElement(FormattedMessage, modalMessages.tablePreviewText)), renderAssetsContentView());
|
|
105
106
|
}
|
|
@@ -117,6 +117,7 @@ export var AssetsSearchContainer = function AssetsSearchContainer(props) {
|
|
|
117
117
|
}, /*#__PURE__*/React.createElement(CloseButton, {
|
|
118
118
|
onClick: onCancel
|
|
119
119
|
})))), fg('astral_assets_macro_table_ui_uplift') ? /*#__PURE__*/React.createElement(Heading, {
|
|
120
|
+
as: "h2",
|
|
120
121
|
size: "xsmall"
|
|
121
122
|
}, /*#__PURE__*/React.createElement(FormattedMessage, modalMessages.filterObjectsText)) : null, /*#__PURE__*/React.createElement(FormRowContainer, null, /*#__PURE__*/React.createElement(AqlSearchInput, {
|
|
122
123
|
value: (_initialSearchData$aq = initialSearchData.aql) !== null && _initialSearchData$aq !== void 0 ? _initialSearchData$aq : DEFAULT_AQL_QUERY,
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
|
+
import { useIntl } from 'react-intl';
|
|
4
|
+
import { Anchor } from '@atlaskit/primitives/compiled/anchor';
|
|
5
|
+
import { useSmartLinkDestinationUrl } from '@atlaskit/smart-card/hook/use-smart-link-destination-url';
|
|
6
|
+
import { HoverCard } from '@atlaskit/smart-card/hover';
|
|
7
|
+
import AvatarTag from '@atlaskit/tag/avatar-tag';
|
|
8
|
+
import TeamAvatar from '@atlaskit/teams-avatar/teams-avatar';
|
|
9
|
+
import { messages } from '../link/messages';
|
|
10
|
+
export var OBJECT_REFERENCE_TYPE_TEST_ID = 'link-datasource-render-type--object-reference';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Renders an `objectReference` datasource value as an avatar tag that links to the referenced
|
|
14
|
+
* object. Behaves like the `link` render type (opens in a new tab, shows a Smart Link hover card,
|
|
15
|
+
* honours cross-product URL wrapping) but with the look and feel of an `AvatarTag`.
|
|
16
|
+
*/
|
|
17
|
+
var ObjectReferenceRenderType = function ObjectReferenceRenderType(_ref) {
|
|
18
|
+
var url = _ref.url,
|
|
19
|
+
text = _ref.text,
|
|
20
|
+
avatarUrl = _ref.avatarUrl,
|
|
21
|
+
_ref$testId = _ref.testId,
|
|
22
|
+
testId = _ref$testId === void 0 ? OBJECT_REFERENCE_TYPE_TEST_ID : _ref$testId;
|
|
23
|
+
var _useIntl = useIntl(),
|
|
24
|
+
formatMessage = _useIntl.formatMessage;
|
|
25
|
+
var destinationUrl = useSmartLinkDestinationUrl(url);
|
|
26
|
+
var newWindowLabel = formatMessage(messages.opensInNewTab);
|
|
27
|
+
|
|
28
|
+
// `AvatarTag` provides the controlled avatar props (size, appearance, border colour); we only
|
|
29
|
+
// supply the image source and accessible name.
|
|
30
|
+
var avatar = useMemo(function () {
|
|
31
|
+
return function (props) {
|
|
32
|
+
return /*#__PURE__*/React.createElement(TeamAvatar, _extends({}, props, {
|
|
33
|
+
src: avatarUrl,
|
|
34
|
+
name: text,
|
|
35
|
+
testId: "".concat(testId, "--avatar")
|
|
36
|
+
}));
|
|
37
|
+
};
|
|
38
|
+
}, [avatarUrl, text, testId]);
|
|
39
|
+
var linkComponent = useMemo(function () {
|
|
40
|
+
return function (props) {
|
|
41
|
+
return /*#__PURE__*/React.createElement(Anchor, _extends({}, props, {
|
|
42
|
+
target: "_blank",
|
|
43
|
+
rel: "noopener noreferrer",
|
|
44
|
+
newWindowLabel: newWindowLabel
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
47
|
+
}, [newWindowLabel]);
|
|
48
|
+
|
|
49
|
+
// url can be undefined before data is fetched whilst adding a new column to display
|
|
50
|
+
if (!url) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
return /*#__PURE__*/React.createElement(HoverCard, {
|
|
54
|
+
url: url
|
|
55
|
+
}, /*#__PURE__*/React.createElement(AvatarTag, {
|
|
56
|
+
type: "other",
|
|
57
|
+
text: text,
|
|
58
|
+
href: destinationUrl,
|
|
59
|
+
isRemovable: false,
|
|
60
|
+
avatar: avatar,
|
|
61
|
+
linkComponent: linkComponent,
|
|
62
|
+
testId: testId
|
|
63
|
+
}));
|
|
64
|
+
};
|
|
65
|
+
var _default_1 = /*#__PURE__*/React.memo(ObjectReferenceRenderType);
|
|
66
|
+
export default _default_1;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
3
4
|
import BooleanRenderType from './boolean';
|
|
4
5
|
import DateRangeRenderType from './date-range';
|
|
5
6
|
import DateTimeRenderType from './date-time';
|
|
6
7
|
import IconRenderType from './icon';
|
|
7
8
|
import LinkRenderType from './link';
|
|
8
9
|
import NumberRenderType from './number';
|
|
10
|
+
import ObjectReferenceRenderType from './object-reference';
|
|
9
11
|
import RichTextRenderType from './richtext';
|
|
10
12
|
import StatusRenderType from './status';
|
|
11
13
|
import TagRenderType from './tag';
|
|
@@ -57,6 +59,16 @@ export var renderType = function renderType(item) {
|
|
|
57
59
|
number: numberValue
|
|
58
60
|
});
|
|
59
61
|
});
|
|
62
|
+
case 'objectReference':
|
|
63
|
+
return item.values.map(function (objectReferenceValue) {
|
|
64
|
+
return fg('astral_assets_macro_table_ui_uplift') ? /*#__PURE__*/React.createElement(ObjectReferenceRenderType, _extends({
|
|
65
|
+
key: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.url
|
|
66
|
+
}, objectReferenceValue)) : /*#__PURE__*/React.createElement(LinkRenderType, {
|
|
67
|
+
key: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.url,
|
|
68
|
+
url: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.url,
|
|
69
|
+
text: objectReferenceValue === null || objectReferenceValue === void 0 ? void 0 : objectReferenceValue.text
|
|
70
|
+
});
|
|
71
|
+
});
|
|
60
72
|
case 'status':
|
|
61
73
|
return item.values.map(function (statusValue) {
|
|
62
74
|
return /*#__PURE__*/React.createElement(StatusRenderType, statusValue);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ObjectReference } from '@atlaskit/linking-types/datasource';
|
|
3
|
+
interface ObjectReferenceProps extends ObjectReference {
|
|
4
|
+
testId?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const OBJECT_REFERENCE_TYPE_TEST_ID = "link-datasource-render-type--object-reference";
|
|
7
|
+
declare const _default_1: React.MemoExoticComponent<({ url, text, avatarUrl, testId }: ObjectReferenceProps) => React.JSX.Element | null>;
|
|
8
|
+
export default _default_1;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-datasource",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.10.0",
|
|
4
4
|
"description": "UI Components to support linking platform dataset feature",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@atlaskit/adf-schema": "^57.7.0",
|
|
42
|
-
"@atlaskit/afm-i18n-platform-linking-platform-link-datasource": "2.
|
|
42
|
+
"@atlaskit/afm-i18n-platform-linking-platform-link-datasource": "2.295.0",
|
|
43
43
|
"@atlaskit/analytics-cross-product": "^2.3.0",
|
|
44
44
|
"@atlaskit/analytics-next": "^12.6.0",
|
|
45
45
|
"@atlaskit/atlassian-context": "^2.0.0",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"@atlaskit/link-client-extension": "^8.0.0",
|
|
70
70
|
"@atlaskit/link-provider": "^6.0.0",
|
|
71
71
|
"@atlaskit/linking-common": "^13.0.0",
|
|
72
|
-
"@atlaskit/linking-types": "^16.
|
|
72
|
+
"@atlaskit/linking-types": "^16.1.0",
|
|
73
73
|
"@atlaskit/logo": "^23.3.0",
|
|
74
74
|
"@atlaskit/lozenge": "^17.0.0",
|
|
75
75
|
"@atlaskit/modal-dialog": "^17.1.0",
|
|
@@ -87,10 +87,11 @@
|
|
|
87
87
|
"@atlaskit/react-compiler-gating": "^0.2.0",
|
|
88
88
|
"@atlaskit/react-select": "^4.12.0",
|
|
89
89
|
"@atlaskit/select": "^23.1.0",
|
|
90
|
-
"@atlaskit/smart-card": "^46.
|
|
91
|
-
"@atlaskit/smart-user-picker": "^12.
|
|
90
|
+
"@atlaskit/smart-card": "^46.11.0",
|
|
91
|
+
"@atlaskit/smart-user-picker": "^12.9.0",
|
|
92
92
|
"@atlaskit/spinner": "^20.4.0",
|
|
93
93
|
"@atlaskit/tag": "^17.0.0",
|
|
94
|
+
"@atlaskit/teams-avatar": "^4.2.0",
|
|
94
95
|
"@atlaskit/textfield": "^10.3.0",
|
|
95
96
|
"@atlaskit/theme": "^28.2.0",
|
|
96
97
|
"@atlaskit/toggle": "^17.3.0",
|