@atlaskit/smart-card 23.6.6 → 23.6.7
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 +6 -0
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/BlockCard/actions/flexible/ForbiddenAction.js +12 -4
- package/dist/cjs/view/BlockCard/views/flexible/FlexibleForbiddenView.js +35 -3
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/BlockCard/actions/flexible/ForbiddenAction.js +11 -4
- package/dist/es2019/view/BlockCard/views/flexible/FlexibleForbiddenView.js +34 -3
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/BlockCard/actions/flexible/ForbiddenAction.js +11 -4
- package/dist/esm/view/BlockCard/views/flexible/FlexibleForbiddenView.js +32 -4
- package/dist/types/view/BlockCard/actions/flexible/ForbiddenAction.d.ts +5 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 23.6.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`9110a0daf0e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9110a0daf0e) - [ux] Added support of different forbidden views for Block Card with Flexible UI
|
|
8
|
+
|
|
3
9
|
## 23.6.6
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/cjs/version.json
CHANGED
|
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.ForbiddenAction = void 0;
|
|
9
9
|
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
10
12
|
var _react = _interopRequireDefault(require("react"));
|
|
11
13
|
|
|
12
14
|
var _reactIntlNext = require("react-intl-next");
|
|
@@ -19,13 +21,19 @@ var _messages = require("../../../../messages");
|
|
|
19
21
|
* Returns a CustomActionItem with a "Try Another Account" default message
|
|
20
22
|
*
|
|
21
23
|
* @see CustomActionItem
|
|
22
|
-
* @param
|
|
24
|
+
* @param onClick a function that will be called on the click of the button
|
|
25
|
+
* @param content is a message key for a message to be displayed in the action
|
|
26
|
+
* @param context is a variable for a message in case a message contains a placeholder
|
|
23
27
|
*/
|
|
24
|
-
var ForbiddenAction = function ForbiddenAction(
|
|
28
|
+
var ForbiddenAction = function ForbiddenAction(onClick, content, context) {
|
|
25
29
|
return {
|
|
26
30
|
name: _constants.ActionName.CustomAction,
|
|
27
|
-
content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages
|
|
28
|
-
|
|
31
|
+
content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages[content], {
|
|
32
|
+
values: {
|
|
33
|
+
context: context
|
|
34
|
+
}
|
|
35
|
+
})),
|
|
36
|
+
onClick: onClick
|
|
29
37
|
};
|
|
30
38
|
};
|
|
31
39
|
|
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports.default = void 0;
|
|
11
11
|
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
12
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
15
|
|
|
14
16
|
var _FlexibleCard = _interopRequireDefault(require("../../../FlexibleCard"));
|
|
@@ -31,6 +33,12 @@ var _ForbiddenAction = require("../../actions/flexible/ForbiddenAction");
|
|
|
31
33
|
|
|
32
34
|
var _text = _interopRequireDefault(require("../../../FlexibleCard/components/elements/text"));
|
|
33
35
|
|
|
36
|
+
var _jsonld = require("../../../../utils/jsonld");
|
|
37
|
+
|
|
38
|
+
var _extractors = require("@atlaskit/linking-common/extractors");
|
|
39
|
+
|
|
40
|
+
var _context = require("../../../../extractors/common/context");
|
|
41
|
+
|
|
34
42
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
43
|
|
|
36
44
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -43,6 +51,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
43
51
|
* @see FlexibleCardProps
|
|
44
52
|
*/
|
|
45
53
|
var FlexibleForbiddenView = function FlexibleForbiddenView(_ref) {
|
|
54
|
+
var _details$meta;
|
|
55
|
+
|
|
46
56
|
var cardState = _ref.cardState,
|
|
47
57
|
onAuthorize = _ref.onAuthorize,
|
|
48
58
|
onClick = _ref.onClick,
|
|
@@ -52,9 +62,28 @@ var FlexibleForbiddenView = function FlexibleForbiddenView(_ref) {
|
|
|
52
62
|
ui = _ref.ui,
|
|
53
63
|
url = _ref.url;
|
|
54
64
|
var status = cardState.status;
|
|
65
|
+
var details = cardState === null || cardState === void 0 ? void 0 : cardState.details;
|
|
66
|
+
var cardMetadata = (_details$meta = details === null || details === void 0 ? void 0 : details.meta) !== null && _details$meta !== void 0 ? _details$meta : (0, _jsonld.getForbiddenJsonLd)().meta;
|
|
67
|
+
var provider = (0, _extractors.extractProvider)(details === null || details === void 0 ? void 0 : details.data);
|
|
68
|
+
var providerName = (provider === null || provider === void 0 ? void 0 : provider.text) || '';
|
|
69
|
+
var requestAccessContext = (0, _context.extractRequestAccessContext)({
|
|
70
|
+
jsonLd: cardMetadata,
|
|
71
|
+
url: url,
|
|
72
|
+
context: providerName
|
|
73
|
+
});
|
|
74
|
+
var descriptiveMessageKey = requestAccessContext && requestAccessContext.descriptiveMessageKey ? requestAccessContext.descriptiveMessageKey : 'invalid_permissions_description';
|
|
55
75
|
var actions = (0, _react.useMemo)(function () {
|
|
56
|
-
|
|
57
|
-
|
|
76
|
+
var actionFromAccessContext = [];
|
|
77
|
+
var tryAnotherAccountAction = onAuthorize ? [(0, _ForbiddenAction.ForbiddenAction)(onAuthorize, 'try_another_account')] : [];
|
|
78
|
+
|
|
79
|
+
if (requestAccessContext) {
|
|
80
|
+
var action = requestAccessContext.action,
|
|
81
|
+
callToActionMessageKey = requestAccessContext.callToActionMessageKey;
|
|
82
|
+
actionFromAccessContext = action && callToActionMessageKey ? [(0, _ForbiddenAction.ForbiddenAction)(action.promise, callToActionMessageKey, providerName)] : [];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return [].concat(tryAnotherAccountAction, (0, _toConsumableArray2.default)(actionFromAccessContext));
|
|
86
|
+
}, [onAuthorize, requestAccessContext, providerName]);
|
|
58
87
|
return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, {
|
|
59
88
|
appearance: "block",
|
|
60
89
|
cardState: cardState,
|
|
@@ -73,7 +102,10 @@ var FlexibleForbiddenView = function FlexibleForbiddenView(_ref) {
|
|
|
73
102
|
testId: "".concat(testId, "-lock-icon")
|
|
74
103
|
}), /*#__PURE__*/_react.default.createElement(_text.default, {
|
|
75
104
|
message: {
|
|
76
|
-
descriptor: _messages.messages
|
|
105
|
+
descriptor: _messages.messages[descriptiveMessageKey],
|
|
106
|
+
values: {
|
|
107
|
+
context: providerName
|
|
108
|
+
}
|
|
77
109
|
}
|
|
78
110
|
})), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, null, /*#__PURE__*/_react.default.createElement(_footer.default, {
|
|
79
111
|
actions: actions,
|
package/dist/es2019/version.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { FormattedMessage } from 'react-intl-next';
|
|
3
4
|
import { ActionName } from '../../../../constants';
|
|
@@ -6,11 +7,17 @@ import { messages } from '../../../../messages';
|
|
|
6
7
|
* Returns a CustomActionItem with a "Try Another Account" default message
|
|
7
8
|
*
|
|
8
9
|
* @see CustomActionItem
|
|
9
|
-
* @param
|
|
10
|
+
* @param onClick a function that will be called on the click of the button
|
|
11
|
+
* @param content is a message key for a message to be displayed in the action
|
|
12
|
+
* @param context is a variable for a message in case a message contains a placeholder
|
|
10
13
|
*/
|
|
11
14
|
|
|
12
|
-
export const ForbiddenAction =
|
|
15
|
+
export const ForbiddenAction = (onClick, content, context) => ({
|
|
13
16
|
name: ActionName.CustomAction,
|
|
14
|
-
content: /*#__PURE__*/React.createElement(FormattedMessage, messages
|
|
15
|
-
|
|
17
|
+
content: /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages[content], {
|
|
18
|
+
values: {
|
|
19
|
+
context
|
|
20
|
+
}
|
|
21
|
+
})),
|
|
22
|
+
onClick: onClick
|
|
16
23
|
});
|
|
@@ -9,7 +9,9 @@ import LockIcon from '@atlaskit/icon/glyph/lock-filled';
|
|
|
9
9
|
import BlockCardFooter from '../../components/flexible/footer';
|
|
10
10
|
import { ForbiddenAction } from '../../actions/flexible/ForbiddenAction';
|
|
11
11
|
import Text from '../../../FlexibleCard/components/elements/text';
|
|
12
|
-
|
|
12
|
+
import { getForbiddenJsonLd } from '../../../../utils/jsonld';
|
|
13
|
+
import { extractProvider } from '@atlaskit/linking-common/extractors';
|
|
14
|
+
import { extractRequestAccessContext } from '../../../../extractors/common/context';
|
|
13
15
|
/**
|
|
14
16
|
* This view represent a Block Card with the 'Forbidden' status.
|
|
15
17
|
* It should have a "Try another account" button that will allow a user to connect another account and view the block card.
|
|
@@ -17,6 +19,7 @@ import Text from '../../../FlexibleCard/components/elements/text';
|
|
|
17
19
|
* @see SmartLinkStatus
|
|
18
20
|
* @see FlexibleCardProps
|
|
19
21
|
*/
|
|
22
|
+
|
|
20
23
|
const FlexibleForbiddenView = ({
|
|
21
24
|
cardState,
|
|
22
25
|
onAuthorize,
|
|
@@ -26,8 +29,33 @@ const FlexibleForbiddenView = ({
|
|
|
26
29
|
ui,
|
|
27
30
|
url
|
|
28
31
|
}) => {
|
|
32
|
+
var _details$meta;
|
|
33
|
+
|
|
29
34
|
const status = cardState.status;
|
|
30
|
-
const
|
|
35
|
+
const details = cardState === null || cardState === void 0 ? void 0 : cardState.details;
|
|
36
|
+
const cardMetadata = (_details$meta = details === null || details === void 0 ? void 0 : details.meta) !== null && _details$meta !== void 0 ? _details$meta : getForbiddenJsonLd().meta;
|
|
37
|
+
const provider = extractProvider(details === null || details === void 0 ? void 0 : details.data);
|
|
38
|
+
const providerName = (provider === null || provider === void 0 ? void 0 : provider.text) || '';
|
|
39
|
+
const requestAccessContext = extractRequestAccessContext({
|
|
40
|
+
jsonLd: cardMetadata,
|
|
41
|
+
url,
|
|
42
|
+
context: providerName
|
|
43
|
+
});
|
|
44
|
+
const descriptiveMessageKey = requestAccessContext && requestAccessContext.descriptiveMessageKey ? requestAccessContext.descriptiveMessageKey : 'invalid_permissions_description';
|
|
45
|
+
const actions = useMemo(() => {
|
|
46
|
+
let actionFromAccessContext = [];
|
|
47
|
+
const tryAnotherAccountAction = onAuthorize ? [ForbiddenAction(onAuthorize, 'try_another_account')] : [];
|
|
48
|
+
|
|
49
|
+
if (requestAccessContext) {
|
|
50
|
+
const {
|
|
51
|
+
action,
|
|
52
|
+
callToActionMessageKey
|
|
53
|
+
} = requestAccessContext;
|
|
54
|
+
actionFromAccessContext = action && callToActionMessageKey ? [ForbiddenAction(action.promise, callToActionMessageKey, providerName)] : [];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return [...tryAnotherAccountAction, ...actionFromAccessContext];
|
|
58
|
+
}, [onAuthorize, requestAccessContext, providerName]);
|
|
31
59
|
return /*#__PURE__*/React.createElement(FlexibleCard, {
|
|
32
60
|
appearance: "block",
|
|
33
61
|
cardState: cardState,
|
|
@@ -46,7 +74,10 @@ const FlexibleForbiddenView = ({
|
|
|
46
74
|
testId: `${testId}-lock-icon`
|
|
47
75
|
}), /*#__PURE__*/React.createElement(Text, {
|
|
48
76
|
message: {
|
|
49
|
-
descriptor: messages
|
|
77
|
+
descriptor: messages[descriptiveMessageKey],
|
|
78
|
+
values: {
|
|
79
|
+
context: providerName
|
|
80
|
+
}
|
|
50
81
|
}
|
|
51
82
|
})), /*#__PURE__*/React.createElement(CustomBlock, null, /*#__PURE__*/React.createElement(BlockCardFooter, {
|
|
52
83
|
actions: actions,
|
package/dist/esm/version.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { FormattedMessage } from 'react-intl-next';
|
|
3
4
|
import { ActionName } from '../../../../constants';
|
|
@@ -6,13 +7,19 @@ import { messages } from '../../../../messages';
|
|
|
6
7
|
* Returns a CustomActionItem with a "Try Another Account" default message
|
|
7
8
|
*
|
|
8
9
|
* @see CustomActionItem
|
|
9
|
-
* @param
|
|
10
|
+
* @param onClick a function that will be called on the click of the button
|
|
11
|
+
* @param content is a message key for a message to be displayed in the action
|
|
12
|
+
* @param context is a variable for a message in case a message contains a placeholder
|
|
10
13
|
*/
|
|
11
14
|
|
|
12
|
-
export var ForbiddenAction = function ForbiddenAction(
|
|
15
|
+
export var ForbiddenAction = function ForbiddenAction(onClick, content, context) {
|
|
13
16
|
return {
|
|
14
17
|
name: ActionName.CustomAction,
|
|
15
|
-
content: /*#__PURE__*/React.createElement(FormattedMessage, messages
|
|
16
|
-
|
|
18
|
+
content: /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages[content], {
|
|
19
|
+
values: {
|
|
20
|
+
context: context
|
|
21
|
+
}
|
|
22
|
+
})),
|
|
23
|
+
onClick: onClick
|
|
17
24
|
};
|
|
18
25
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
1
2
|
import React, { useMemo } from 'react';
|
|
2
3
|
import FlexibleCard from '../../../FlexibleCard';
|
|
3
4
|
import TitleBlock from '../../../FlexibleCard/components/blocks/title-block';
|
|
@@ -9,7 +10,9 @@ import LockIcon from '@atlaskit/icon/glyph/lock-filled';
|
|
|
9
10
|
import BlockCardFooter from '../../components/flexible/footer';
|
|
10
11
|
import { ForbiddenAction } from '../../actions/flexible/ForbiddenAction';
|
|
11
12
|
import Text from '../../../FlexibleCard/components/elements/text';
|
|
12
|
-
|
|
13
|
+
import { getForbiddenJsonLd } from '../../../../utils/jsonld';
|
|
14
|
+
import { extractProvider } from '@atlaskit/linking-common/extractors';
|
|
15
|
+
import { extractRequestAccessContext } from '../../../../extractors/common/context';
|
|
13
16
|
/**
|
|
14
17
|
* This view represent a Block Card with the 'Forbidden' status.
|
|
15
18
|
* It should have a "Try another account" button that will allow a user to connect another account and view the block card.
|
|
@@ -17,7 +20,10 @@ import Text from '../../../FlexibleCard/components/elements/text';
|
|
|
17
20
|
* @see SmartLinkStatus
|
|
18
21
|
* @see FlexibleCardProps
|
|
19
22
|
*/
|
|
23
|
+
|
|
20
24
|
var FlexibleForbiddenView = function FlexibleForbiddenView(_ref) {
|
|
25
|
+
var _details$meta;
|
|
26
|
+
|
|
21
27
|
var cardState = _ref.cardState,
|
|
22
28
|
onAuthorize = _ref.onAuthorize,
|
|
23
29
|
onClick = _ref.onClick,
|
|
@@ -27,9 +33,28 @@ var FlexibleForbiddenView = function FlexibleForbiddenView(_ref) {
|
|
|
27
33
|
ui = _ref.ui,
|
|
28
34
|
url = _ref.url;
|
|
29
35
|
var status = cardState.status;
|
|
36
|
+
var details = cardState === null || cardState === void 0 ? void 0 : cardState.details;
|
|
37
|
+
var cardMetadata = (_details$meta = details === null || details === void 0 ? void 0 : details.meta) !== null && _details$meta !== void 0 ? _details$meta : getForbiddenJsonLd().meta;
|
|
38
|
+
var provider = extractProvider(details === null || details === void 0 ? void 0 : details.data);
|
|
39
|
+
var providerName = (provider === null || provider === void 0 ? void 0 : provider.text) || '';
|
|
40
|
+
var requestAccessContext = extractRequestAccessContext({
|
|
41
|
+
jsonLd: cardMetadata,
|
|
42
|
+
url: url,
|
|
43
|
+
context: providerName
|
|
44
|
+
});
|
|
45
|
+
var descriptiveMessageKey = requestAccessContext && requestAccessContext.descriptiveMessageKey ? requestAccessContext.descriptiveMessageKey : 'invalid_permissions_description';
|
|
30
46
|
var actions = useMemo(function () {
|
|
31
|
-
|
|
32
|
-
|
|
47
|
+
var actionFromAccessContext = [];
|
|
48
|
+
var tryAnotherAccountAction = onAuthorize ? [ForbiddenAction(onAuthorize, 'try_another_account')] : [];
|
|
49
|
+
|
|
50
|
+
if (requestAccessContext) {
|
|
51
|
+
var action = requestAccessContext.action,
|
|
52
|
+
callToActionMessageKey = requestAccessContext.callToActionMessageKey;
|
|
53
|
+
actionFromAccessContext = action && callToActionMessageKey ? [ForbiddenAction(action.promise, callToActionMessageKey, providerName)] : [];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return [].concat(tryAnotherAccountAction, _toConsumableArray(actionFromAccessContext));
|
|
57
|
+
}, [onAuthorize, requestAccessContext, providerName]);
|
|
33
58
|
return /*#__PURE__*/React.createElement(FlexibleCard, {
|
|
34
59
|
appearance: "block",
|
|
35
60
|
cardState: cardState,
|
|
@@ -48,7 +73,10 @@ var FlexibleForbiddenView = function FlexibleForbiddenView(_ref) {
|
|
|
48
73
|
testId: "".concat(testId, "-lock-icon")
|
|
49
74
|
}), /*#__PURE__*/React.createElement(Text, {
|
|
50
75
|
message: {
|
|
51
|
-
descriptor: messages
|
|
76
|
+
descriptor: messages[descriptiveMessageKey],
|
|
77
|
+
values: {
|
|
78
|
+
context: providerName
|
|
79
|
+
}
|
|
52
80
|
}
|
|
53
81
|
})), /*#__PURE__*/React.createElement(CustomBlock, null, /*#__PURE__*/React.createElement(BlockCardFooter, {
|
|
54
82
|
actions: actions,
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { CustomActionItem } from '../../../FlexibleCard/components/blocks/types';
|
|
2
|
+
import { MessageKey, RequestAccessMessageKey } from '../../../../messages';
|
|
2
3
|
/**
|
|
3
4
|
* Returns a CustomActionItem with a "Try Another Account" default message
|
|
4
5
|
*
|
|
5
6
|
* @see CustomActionItem
|
|
6
|
-
* @param
|
|
7
|
+
* @param onClick a function that will be called on the click of the button
|
|
8
|
+
* @param content is a message key for a message to be displayed in the action
|
|
9
|
+
* @param context is a variable for a message in case a message contains a placeholder
|
|
7
10
|
*/
|
|
8
|
-
export declare const ForbiddenAction: (
|
|
11
|
+
export declare const ForbiddenAction: (onClick: () => void, content: RequestAccessMessageKey | MessageKey, context?: string | undefined) => CustomActionItem;
|