@atlaskit/smart-card 23.9.0 → 23.9.1

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 23.9.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`484be3ed430`](https://bitbucket.org/atlassian/atlassian-frontend/commits/484be3ed430) - This adds onResolve back to Flexible Block Card
8
+
3
9
  ## 23.9.0
4
10
 
5
11
  ### Minor Changes
@@ -139,6 +139,25 @@ var mocks = {
139
139
  url: 'https://some.url'
140
140
  }
141
141
  },
142
+ forbiddenWithNoAuth: {
143
+ meta: {
144
+ visibility: 'restricted',
145
+ access: 'forbidden',
146
+ auth: [],
147
+ definitionId: 'd1',
148
+ key: 'object-provider'
149
+ },
150
+ data: {
151
+ '@context': {
152
+ '@vocab': 'https://www.w3.org/ns/activitystreams#',
153
+ atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
154
+ schema: 'http://schema.org/'
155
+ },
156
+ '@type': 'Object',
157
+ name: 'I love cheese',
158
+ url: 'https://some.url'
159
+ }
160
+ },
142
161
  unauthorized: {
143
162
  meta: {
144
163
  visibility: 'restricted',
@@ -162,6 +181,25 @@ var mocks = {
162
181
  url: 'https://some.url'
163
182
  }
164
183
  },
184
+ unauthorizedWithNoAuth: {
185
+ meta: {
186
+ visibility: 'restricted',
187
+ access: 'unauthorized',
188
+ auth: [],
189
+ definitionId: 'd1',
190
+ key: 'object-provider'
191
+ },
192
+ data: {
193
+ '@context': {
194
+ '@vocab': 'https://www.w3.org/ns/activitystreams#',
195
+ atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
196
+ schema: 'http://schema.org/'
197
+ },
198
+ '@type': 'Object',
199
+ name: 'I love cheese',
200
+ url: 'https://some.url'
201
+ }
202
+ },
165
203
  actionSuccess: {
166
204
  meta: {
167
205
  visibility: 'public',
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "23.9.0",
3
+ "version": "23.9.1",
4
4
  "sideEffects": false
5
5
  }
@@ -32,7 +32,8 @@ var AuthorizeAction = function AuthorizeAction(onAuthorize, providerName) {
32
32
  context: providerName
33
33
  }
34
34
  })) : /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.connect_link_account_card),
35
- onClick: onAuthorize
35
+ onClick: onAuthorize,
36
+ testId: 'smart-action-connect-account'
36
37
  };
37
38
  };
38
39
 
@@ -33,7 +33,8 @@ var ForbiddenAction = function ForbiddenAction(onClick, content, context) {
33
33
  context: context
34
34
  }
35
35
  })),
36
- onClick: onClick
36
+ onClick: onClick,
37
+ testId: 'smart-action-connect-other-account'
37
38
  };
38
39
  };
39
40
 
@@ -25,7 +25,8 @@ var RetryAction = function RetryAction(onRetry) {
25
25
  return {
26
26
  name: _constants.ActionName.CustomAction,
27
27
  onClick: onRetry,
28
- content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.try_again)
28
+ content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.try_again),
29
+ testId: 'smart-action-try-again'
29
30
  };
30
31
  };
31
32
 
@@ -153,6 +153,7 @@ var BlockCard = function BlockCard(_ref) {
153
153
  url: url,
154
154
  testId: testId,
155
155
  onError: onError,
156
+ onResolve: onResolve,
156
157
  renderers: renderers,
157
158
  ui: ui,
158
159
  analytics: analytics,
@@ -162,6 +163,12 @@ var BlockCard = function BlockCard(_ref) {
162
163
  switch (status) {
163
164
  case 'pending':
164
165
  case 'resolving':
166
+ return (0, _react.jsx)("div", {
167
+ css: flexibleBlockCardElevationStyle
168
+ }, (0, _react.jsx)(_FlexibleResolvedView.default, (0, _extends2.default)({}, flexibleProps, {
169
+ testId: 'smart-block-resolving-view'
170
+ })));
171
+
165
172
  case 'resolved':
166
173
  return (0, _react.jsx)("div", {
167
174
  css: flexibleBlockCardElevationStyle
@@ -190,6 +197,23 @@ var BlockCard = function BlockCard(_ref) {
190
197
 
191
198
  case 'fallback':
192
199
  case 'errored':
200
+ default:
201
+ if (onError) {
202
+ onError({
203
+ url: url,
204
+ status: status
205
+ });
206
+ }
207
+
208
+ if (authFlow && authFlow === 'disabled') {
209
+ return (0, _react.jsx)(_LinkView.CardLinkView, {
210
+ link: url,
211
+ isSelected: isSelected,
212
+ onClick: handleFrameClick,
213
+ testId: "".concat(testId, "-").concat(status)
214
+ });
215
+ }
216
+
193
217
  return (0, _react.jsx)("div", {
194
218
  css: flexibleBlockCardElevationStyle
195
219
  }, (0, _react.jsx)(_FlexibleErroredView.default, (0, _extends2.default)({}, flexibleProps, {
@@ -37,6 +37,7 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
37
37
  cardState = _ref.cardState,
38
38
  onClick = _ref.onClick,
39
39
  onError = _ref.onError,
40
+ onResolve = _ref.onResolve,
40
41
  _ref$testId = _ref.testId,
41
42
  testId = _ref$testId === void 0 ? 'smart-block-resolved-view' : _ref$testId,
42
43
  ui = _ref.ui,
@@ -63,6 +64,7 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
63
64
  cardState: cardState,
64
65
  onClick: onClick,
65
66
  onError: onError,
67
+ onResolve: onResolve,
66
68
  testId: testId,
67
69
  ui: ui,
68
70
  url: url
@@ -98,7 +100,7 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
98
100
  name: _constants.ElementName.DueOn
99
101
  }],
100
102
  maxLines: 1
101
- }), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, null), /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, null), !isPreviewBlockErrored ? /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, {
103
+ }), /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, null), !isPreviewBlockErrored ? /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, {
102
104
  placement: _constants.MediaPlacement.Right,
103
105
  ignoreContainerPadding: true,
104
106
  onError: function onError() {
@@ -107,6 +107,25 @@ export const mocks = {
107
107
  url: 'https://some.url'
108
108
  }
109
109
  },
110
+ forbiddenWithNoAuth: {
111
+ meta: {
112
+ visibility: 'restricted',
113
+ access: 'forbidden',
114
+ auth: [],
115
+ definitionId: 'd1',
116
+ key: 'object-provider'
117
+ },
118
+ data: {
119
+ '@context': {
120
+ '@vocab': 'https://www.w3.org/ns/activitystreams#',
121
+ atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
122
+ schema: 'http://schema.org/'
123
+ },
124
+ '@type': 'Object',
125
+ name: 'I love cheese',
126
+ url: 'https://some.url'
127
+ }
128
+ },
110
129
  unauthorized: {
111
130
  meta: {
112
131
  visibility: 'restricted',
@@ -130,6 +149,25 @@ export const mocks = {
130
149
  url: 'https://some.url'
131
150
  }
132
151
  },
152
+ unauthorizedWithNoAuth: {
153
+ meta: {
154
+ visibility: 'restricted',
155
+ access: 'unauthorized',
156
+ auth: [],
157
+ definitionId: 'd1',
158
+ key: 'object-provider'
159
+ },
160
+ data: {
161
+ '@context': {
162
+ '@vocab': 'https://www.w3.org/ns/activitystreams#',
163
+ atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
164
+ schema: 'http://schema.org/'
165
+ },
166
+ '@type': 'Object',
167
+ name: 'I love cheese',
168
+ url: 'https://some.url'
169
+ }
170
+ },
133
171
  actionSuccess: {
134
172
  meta: {
135
173
  visibility: 'public',
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "23.9.0",
3
+ "version": "23.9.1",
4
4
  "sideEffects": false
5
5
  }
@@ -18,5 +18,6 @@ export const AuthorizeAction = (onAuthorize, providerName) => ({
18
18
  context: providerName
19
19
  }
20
20
  })) : /*#__PURE__*/React.createElement(FormattedMessage, messages.connect_link_account_card),
21
- onClick: onAuthorize
21
+ onClick: onAuthorize,
22
+ testId: 'smart-action-connect-account'
22
23
  });
@@ -19,5 +19,6 @@ export const ForbiddenAction = (onClick, content, context) => ({
19
19
  context
20
20
  }
21
21
  })),
22
- onClick: onClick
22
+ onClick,
23
+ testId: 'smart-action-connect-other-account'
23
24
  });
@@ -12,5 +12,6 @@ import { messages } from '../../../../messages';
12
12
  export const RetryAction = onRetry => ({
13
13
  name: ActionName.CustomAction,
14
14
  onClick: onRetry,
15
- content: /*#__PURE__*/React.createElement(FormattedMessage, messages.try_again)
15
+ content: /*#__PURE__*/React.createElement(FormattedMessage, messages.try_again),
16
+ testId: 'smart-action-try-again'
16
17
  });
@@ -73,6 +73,7 @@ export const BlockCard = ({
73
73
  url,
74
74
  testId,
75
75
  onError,
76
+ onResolve,
76
77
  renderers,
77
78
  ui,
78
79
  analytics,
@@ -82,6 +83,12 @@ export const BlockCard = ({
82
83
  switch (status) {
83
84
  case 'pending':
84
85
  case 'resolving':
86
+ return jsx("div", {
87
+ css: flexibleBlockCardElevationStyle
88
+ }, jsx(FlexibleResolvedView, _extends({}, flexibleProps, {
89
+ testId: 'smart-block-resolving-view'
90
+ })));
91
+
85
92
  case 'resolved':
86
93
  return jsx("div", {
87
94
  css: flexibleBlockCardElevationStyle
@@ -110,6 +117,23 @@ export const BlockCard = ({
110
117
 
111
118
  case 'fallback':
112
119
  case 'errored':
120
+ default:
121
+ if (onError) {
122
+ onError({
123
+ url,
124
+ status
125
+ });
126
+ }
127
+
128
+ if (authFlow && authFlow === 'disabled') {
129
+ return jsx(CardLinkView, {
130
+ link: url,
131
+ isSelected: isSelected,
132
+ onClick: handleFrameClick,
133
+ testId: `${testId}-${status}`
134
+ });
135
+ }
136
+
113
137
  return jsx("div", {
114
138
  css: flexibleBlockCardElevationStyle
115
139
  }, jsx(FlexibleErroredView, _extends({}, flexibleProps, {
@@ -15,6 +15,7 @@ const FlexibleResolvedView = ({
15
15
  cardState,
16
16
  onClick,
17
17
  onError,
18
+ onResolve,
18
19
  testId = 'smart-block-resolved-view',
19
20
  ui,
20
21
  url,
@@ -30,6 +31,7 @@ const FlexibleResolvedView = ({
30
31
  cardState: cardState,
31
32
  onClick: onClick,
32
33
  onError: onError,
34
+ onResolve: onResolve,
33
35
  testId: testId,
34
36
  ui: ui,
35
37
  url: url
@@ -65,7 +67,7 @@ const FlexibleResolvedView = ({
65
67
  name: ElementName.DueOn
66
68
  }],
67
69
  maxLines: 1
68
- }), /*#__PURE__*/React.createElement(MetadataBlock, null), /*#__PURE__*/React.createElement(SnippetBlock, null), !isPreviewBlockErrored ? /*#__PURE__*/React.createElement(PreviewBlock, {
70
+ }), /*#__PURE__*/React.createElement(SnippetBlock, null), !isPreviewBlockErrored ? /*#__PURE__*/React.createElement(PreviewBlock, {
69
71
  placement: MediaPlacement.Right,
70
72
  ignoreContainerPadding: true,
71
73
  onError: () => {
@@ -119,6 +119,25 @@ export var mocks = {
119
119
  url: 'https://some.url'
120
120
  }
121
121
  },
122
+ forbiddenWithNoAuth: {
123
+ meta: {
124
+ visibility: 'restricted',
125
+ access: 'forbidden',
126
+ auth: [],
127
+ definitionId: 'd1',
128
+ key: 'object-provider'
129
+ },
130
+ data: {
131
+ '@context': {
132
+ '@vocab': 'https://www.w3.org/ns/activitystreams#',
133
+ atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
134
+ schema: 'http://schema.org/'
135
+ },
136
+ '@type': 'Object',
137
+ name: 'I love cheese',
138
+ url: 'https://some.url'
139
+ }
140
+ },
122
141
  unauthorized: {
123
142
  meta: {
124
143
  visibility: 'restricted',
@@ -142,6 +161,25 @@ export var mocks = {
142
161
  url: 'https://some.url'
143
162
  }
144
163
  },
164
+ unauthorizedWithNoAuth: {
165
+ meta: {
166
+ visibility: 'restricted',
167
+ access: 'unauthorized',
168
+ auth: [],
169
+ definitionId: 'd1',
170
+ key: 'object-provider'
171
+ },
172
+ data: {
173
+ '@context': {
174
+ '@vocab': 'https://www.w3.org/ns/activitystreams#',
175
+ atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
176
+ schema: 'http://schema.org/'
177
+ },
178
+ '@type': 'Object',
179
+ name: 'I love cheese',
180
+ url: 'https://some.url'
181
+ }
182
+ },
145
183
  actionSuccess: {
146
184
  meta: {
147
185
  visibility: 'public',
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "23.9.0",
3
+ "version": "23.9.1",
4
4
  "sideEffects": false
5
5
  }
@@ -19,6 +19,7 @@ export var AuthorizeAction = function AuthorizeAction(onAuthorize, providerName)
19
19
  context: providerName
20
20
  }
21
21
  })) : /*#__PURE__*/React.createElement(FormattedMessage, messages.connect_link_account_card),
22
- onClick: onAuthorize
22
+ onClick: onAuthorize,
23
+ testId: 'smart-action-connect-account'
23
24
  };
24
25
  };
@@ -20,6 +20,7 @@ export var ForbiddenAction = function ForbiddenAction(onClick, content, context)
20
20
  context: context
21
21
  }
22
22
  })),
23
- onClick: onClick
23
+ onClick: onClick,
24
+ testId: 'smart-action-connect-other-account'
24
25
  };
25
26
  };
@@ -13,6 +13,7 @@ export var RetryAction = function RetryAction(onRetry) {
13
13
  return {
14
14
  name: ActionName.CustomAction,
15
15
  onClick: onRetry,
16
- content: /*#__PURE__*/React.createElement(FormattedMessage, messages.try_again)
16
+ content: /*#__PURE__*/React.createElement(FormattedMessage, messages.try_again),
17
+ testId: 'smart-action-try-again'
17
18
  };
18
19
  };
@@ -69,6 +69,7 @@ export var BlockCard = function BlockCard(_ref) {
69
69
  url: url,
70
70
  testId: testId,
71
71
  onError: onError,
72
+ onResolve: onResolve,
72
73
  renderers: renderers,
73
74
  ui: ui,
74
75
  analytics: analytics,
@@ -78,6 +79,12 @@ export var BlockCard = function BlockCard(_ref) {
78
79
  switch (status) {
79
80
  case 'pending':
80
81
  case 'resolving':
82
+ return jsx("div", {
83
+ css: flexibleBlockCardElevationStyle
84
+ }, jsx(FlexibleResolvedView, _extends({}, flexibleProps, {
85
+ testId: 'smart-block-resolving-view'
86
+ })));
87
+
81
88
  case 'resolved':
82
89
  return jsx("div", {
83
90
  css: flexibleBlockCardElevationStyle
@@ -106,6 +113,23 @@ export var BlockCard = function BlockCard(_ref) {
106
113
 
107
114
  case 'fallback':
108
115
  case 'errored':
116
+ default:
117
+ if (onError) {
118
+ onError({
119
+ url: url,
120
+ status: status
121
+ });
122
+ }
123
+
124
+ if (authFlow && authFlow === 'disabled') {
125
+ return jsx(CardLinkView, {
126
+ link: url,
127
+ isSelected: isSelected,
128
+ onClick: handleFrameClick,
129
+ testId: "".concat(testId, "-").concat(status)
130
+ });
131
+ }
132
+
109
133
  return jsx("div", {
110
134
  css: flexibleBlockCardElevationStyle
111
135
  }, jsx(FlexibleErroredView, _extends({}, flexibleProps, {
@@ -16,6 +16,7 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
16
16
  cardState = _ref.cardState,
17
17
  onClick = _ref.onClick,
18
18
  onError = _ref.onError,
19
+ onResolve = _ref.onResolve,
19
20
  _ref$testId = _ref.testId,
20
21
  testId = _ref$testId === void 0 ? 'smart-block-resolved-view' : _ref$testId,
21
22
  ui = _ref.ui,
@@ -42,6 +43,7 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
42
43
  cardState: cardState,
43
44
  onClick: onClick,
44
45
  onError: onError,
46
+ onResolve: onResolve,
45
47
  testId: testId,
46
48
  ui: ui,
47
49
  url: url
@@ -77,7 +79,7 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
77
79
  name: ElementName.DueOn
78
80
  }],
79
81
  maxLines: 1
80
- }), /*#__PURE__*/React.createElement(MetadataBlock, null), /*#__PURE__*/React.createElement(SnippetBlock, null), !isPreviewBlockErrored ? /*#__PURE__*/React.createElement(PreviewBlock, {
82
+ }), /*#__PURE__*/React.createElement(SnippetBlock, null), !isPreviewBlockErrored ? /*#__PURE__*/React.createElement(PreviewBlock, {
81
83
  placement: MediaPlacement.Right,
82
84
  ignoreContainerPadding: true,
83
85
  onError: function onError() {
@@ -9,7 +9,9 @@ export declare const mocks: {
9
9
  success: JsonLd.Response<JsonLd.Data.BaseData>;
10
10
  notFound: JsonLd.Response<JsonLd.Data.BaseData>;
11
11
  forbidden: JsonLd.Response<JsonLd.Data.BaseData>;
12
+ forbiddenWithNoAuth: JsonLd.Response<JsonLd.Data.BaseData>;
12
13
  unauthorized: JsonLd.Response<JsonLd.Data.BaseData>;
14
+ unauthorizedWithNoAuth: JsonLd.Response<JsonLd.Data.BaseData>;
13
15
  actionSuccess: {
14
16
  meta: {
15
17
  visibility: string;
@@ -5,5 +5,5 @@ import { FlexibleBlockCardProps } from './types';
5
5
  * @see SmartLinkStatus
6
6
  * @see FlexibleCardProps
7
7
  */
8
- declare const FlexibleResolvedView: ({ id, cardState, onClick, onError, testId, ui, url, analytics, }: FlexibleBlockCardProps) => JSX.Element;
8
+ declare const FlexibleResolvedView: ({ id, cardState, onClick, onError, onResolve, testId, ui, url, analytics, }: FlexibleBlockCardProps) => JSX.Element;
9
9
  export default FlexibleResolvedView;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "23.9.0",
3
+ "version": "23.9.1",
4
4
  "description": "Smart card component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"