@atlaskit/editor-plugin-card 3.0.2 → 3.0.4

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,21 @@
1
1
  # @atlaskit/editor-plugin-card
2
2
 
3
+ ## 3.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [#142271](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/142271)
8
+ [`b6147e8a87a2d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/b6147e8a87a2d) -
9
+ Add try/catch around localStorage usages
10
+
11
+ ## 3.0.3
12
+
13
+ ### Patch Changes
14
+
15
+ - [#142202](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/142202)
16
+ [`bd97acf1388d4`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/bd97acf1388d4) -
17
+ Fix edit datasource option not available on links with empty result or invalid jql
18
+
3
19
  ## 3.0.2
4
20
 
5
21
  ### Patch Changes
@@ -12,9 +12,18 @@ var LOCAL_STORAGE_DISCOVERY_KEY_TOOLBAR = exports.LOCAL_STORAGE_DISCOVERY_KEY_TO
12
12
  var ONE_DAY_IN_MILLISECONDS = exports.ONE_DAY_IN_MILLISECONDS = 86400000;
13
13
  var storageClient = new _frontendUtilities.StorageClient(LOCAL_STORAGE_CLIENT_KEY);
14
14
  var isLocalStorageKeyDiscovered = exports.isLocalStorageKeyDiscovered = function isLocalStorageKeyDiscovered(key) {
15
- var localStorageValue = storageClient.getItem(key);
16
- return !!localStorageValue && localStorageValue === LOCAL_STORAGE_DISCOVERED_KEY;
15
+ try {
16
+ var localStorageValue = storageClient.getItem(key);
17
+ return !!localStorageValue && localStorageValue === LOCAL_STORAGE_DISCOVERED_KEY;
18
+ } catch (_unused) {
19
+ // If localStorage is not available, don't show feature discovery component. Treat it as 'discovered'.
20
+ return true;
21
+ }
17
22
  };
18
23
  var markLocalStorageKeyDiscovered = exports.markLocalStorageKeyDiscovered = function markLocalStorageKeyDiscovered(key, expiration) {
19
- storageClient.setItemWithExpiry(key, LOCAL_STORAGE_DISCOVERED_KEY, expiration);
24
+ try {
25
+ storageClient.setItemWithExpiry(key, LOCAL_STORAGE_DISCOVERED_KEY, expiration);
26
+ } catch (_unused2) {
27
+ // silent error
28
+ }
20
29
  };
@@ -188,7 +188,7 @@ var getToolbarViewedItem = function getToolbarViewedItem(url, display) {
188
188
  };
189
189
  var generateToolbarItems = function generateToolbarItems(state, intl, providerFactory, cardOptions, lpLinkPicker, linkPicker, pluginInjectionApi) {
190
190
  return function (node) {
191
- var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _node$attrs;
191
+ var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _node$attrs, _node$attrs2;
192
192
  var _titleUrlPairFromNode2 = (0, _utils3.titleUrlPairFromNode)(node),
193
193
  url = _titleUrlPairFromNode2.url;
194
194
  var _ref = (_pluginInjectionApi$a = pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : pluginInjectionApi.analytics) !== null && _pluginInjectionApi$a !== void 0 ? _pluginInjectionApi$a : {},
@@ -208,8 +208,9 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
208
208
  var _ref2 = (_pluginInjectionApi$d = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$d2 = pluginInjectionApi.decorations) === null || _pluginInjectionApi$d2 === void 0 ? void 0 : _pluginInjectionApi$d2.actions) !== null && _pluginInjectionApi$d !== void 0 ? _pluginInjectionApi$d : {},
209
209
  hoverDecoration = _ref2.hoverDecoration;
210
210
  var isDatasource = (0, _utils3.isDatasourceNode)(node);
211
+ var datasourceId = node === null || node === void 0 || (_node$attrs = node.attrs) === null || _node$attrs === void 0 || (_node$attrs = _node$attrs.datasource) === null || _node$attrs === void 0 ? void 0 : _node$attrs.id;
211
212
  var pluginState = _main.pluginKey.getState(state);
212
- var shouldRenderDatasourceToolbar = isDatasource && cardOptions.allowDatasource && (0, _utils.canRenderDatasource)(node === null || node === void 0 || (_node$attrs = node.attrs) === null || _node$attrs === void 0 || (_node$attrs = _node$attrs.datasource) === null || _node$attrs === void 0 ? void 0 : _node$attrs.id);
213
+ var shouldRenderDatasourceToolbar = isDatasource && cardOptions.allowDatasource && (0, _utils.canRenderDatasource)(node === null || node === void 0 || (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2.datasource) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.id);
213
214
  if (pluginState !== null && pluginState !== void 0 && pluginState.showLinkingToolbar) {
214
215
  return [(0, _EditLinkToolbar.buildEditLinkToolbar)({
215
216
  providerFactory: providerFactory,
@@ -341,6 +342,7 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
341
342
  fallback: [],
342
343
  render: function render(editorView) {
343
344
  return /*#__PURE__*/_react.default.createElement(_EditDatasourceButton.EditDatasourceButton, {
345
+ datasourceId: datasourceId,
344
346
  intl: intl,
345
347
  editorAnalyticsApi: editorAnalyticsApi,
346
348
  url: url,
@@ -392,7 +394,7 @@ var getSettingsButtonGroup = exports.getSettingsButtonGroup = function getSettin
392
394
  }];
393
395
  };
394
396
  var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl, editorAnalyticsApi, node, hoverDecoration, datasourceId, state, cardOptions, currentAppearance) {
395
- var _node$attrs2;
397
+ var _node$attrs3;
396
398
  var toolbarItems = [];
397
399
  if ((0, _utils3.isDatasourceConfigEditable)(datasourceId) && !(0, _platformFeatureFlags.fg)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar')) {
398
400
  toolbarItems.push({
@@ -477,7 +479,7 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
477
479
  }
478
480
  });
479
481
  }
480
- if (node !== null && node !== void 0 && (_node$attrs2 = node.attrs) !== null && _node$attrs2 !== void 0 && _node$attrs2.url) {
482
+ if (node !== null && node !== void 0 && (_node$attrs3 = node.attrs) !== null && _node$attrs3 !== void 0 && _node$attrs3.url) {
481
483
  toolbarItems.push({
482
484
  id: 'editor.link.openLink',
483
485
  type: 'button',
@@ -30,6 +30,7 @@ var buttonStyles = (0, _react2.css)({
30
30
  // if they can resolve into a datasource.
31
31
  var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardContext(_ref) {
32
32
  var cardContext = _ref.cardContext,
33
+ datasourceIdFromAdf = _ref.datasourceId,
33
34
  intl = _ref.intl,
34
35
  editorAnalyticsApi = _ref.editorAnalyticsApi,
35
36
  url = _ref.url,
@@ -40,8 +41,9 @@ var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardC
40
41
  url: url,
41
42
  cardContext: cardContext
42
43
  }),
43
- datasourceId = _useFetchDatasourceIn.datasourceId,
44
+ datasourceIdFromUrl = _useFetchDatasourceIn.datasourceId,
44
45
  extensionKey = _useFetchDatasourceIn.extensionKey;
46
+ var datasourceId = datasourceIdFromUrl !== null && datasourceIdFromUrl !== void 0 ? datasourceIdFromUrl : datasourceIdFromAdf;
45
47
  var onEditDatasource = (0, _react.useCallback)(function () {
46
48
  if (editorView && datasourceId) {
47
49
  editDatasource(datasourceId, editorAnalyticsApi, currentAppearance, extensionKey)(editorView.state, editorView.dispatch);
@@ -68,7 +70,8 @@ var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardC
68
70
  }), (0, _react2.jsx)(_ui.FloatingToolbarSeparator, null));
69
71
  };
70
72
  var EditDatasourceButton = exports.EditDatasourceButton = function EditDatasourceButton(_ref2) {
71
- var intl = _ref2.intl,
73
+ var datasourceId = _ref2.datasourceId,
74
+ intl = _ref2.intl,
72
75
  editorAnalyticsApi = _ref2.editorAnalyticsApi,
73
76
  url = _ref2.url,
74
77
  editorView = _ref2.editorView,
@@ -76,6 +79,7 @@ var EditDatasourceButton = exports.EditDatasourceButton = function EditDatasourc
76
79
  return (0, _react2.jsx)(_CardContextProvider.CardContextProvider, null, function (_ref3) {
77
80
  var cardContext = _ref3.cardContext;
78
81
  return (0, _react2.jsx)(EditDatasourceButtonWithCardContext, {
82
+ datasourceId: datasourceId,
79
83
  url: url,
80
84
  intl: intl,
81
85
  editorAnalyticsApi: editorAnalyticsApi,
@@ -159,6 +159,7 @@ var EditToolbarButtonWithCardContext = function EditToolbarButtonWithCardContext
159
159
  var EditToolbarButtonWithUrl = function EditToolbarButtonWithUrl(props) {
160
160
  var cardContext = props.cardContext,
161
161
  currentAppearance = props.currentAppearance,
162
+ datasourceIdFromAdf = props.datasourceId,
162
163
  editorAnalyticsApi = props.editorAnalyticsApi,
163
164
  editorView = props.editorView,
164
165
  intl = props.intl,
@@ -170,7 +171,8 @@ var EditToolbarButtonWithUrl = function EditToolbarButtonWithUrl(props) {
170
171
  cardContext: cardContext
171
172
  }),
172
173
  extensionKey = _useFetchDatasourceIn2.extensionKey,
173
- datasourceId = _useFetchDatasourceIn2.datasourceId;
174
+ datasourceIdFromUrl = _useFetchDatasourceIn2.datasourceId;
175
+ var datasourceId = datasourceIdFromUrl !== null && datasourceIdFromUrl !== void 0 ? datasourceIdFromUrl : datasourceIdFromAdf;
174
176
  var editVariant = (0, _react.useMemo)(function () {
175
177
  var _cardContext$store2, _urlState$error2;
176
178
  if (!datasourceId || !(0, _utils.isDatasourceConfigEditable)(datasourceId)) {
@@ -254,6 +256,7 @@ var EditToolbarButton = exports.EditToolbarButton = function EditToolbarButton(p
254
256
  if ((0, _platformFeatureFlags.fg)('enable_datasource_nourl_edit_dropdown_datafetch')) {
255
257
  if (props.url) {
256
258
  return (0, _react2.jsx)(EditToolbarButtonWithUrl, {
259
+ datasourceId: datasourceId,
257
260
  url: props.url,
258
261
  intl: intl,
259
262
  editorAnalyticsApi: editorAnalyticsApi,
@@ -6,9 +6,18 @@ export const LOCAL_STORAGE_DISCOVERY_KEY_TOOLBAR = 'toolbar-upgrade-pulse';
6
6
  export const ONE_DAY_IN_MILLISECONDS = 86400000;
7
7
  const storageClient = new StorageClient(LOCAL_STORAGE_CLIENT_KEY);
8
8
  export const isLocalStorageKeyDiscovered = key => {
9
- const localStorageValue = storageClient.getItem(key);
10
- return !!localStorageValue && localStorageValue === LOCAL_STORAGE_DISCOVERED_KEY;
9
+ try {
10
+ const localStorageValue = storageClient.getItem(key);
11
+ return !!localStorageValue && localStorageValue === LOCAL_STORAGE_DISCOVERED_KEY;
12
+ } catch {
13
+ // If localStorage is not available, don't show feature discovery component. Treat it as 'discovered'.
14
+ return true;
15
+ }
11
16
  };
12
17
  export const markLocalStorageKeyDiscovered = (key, expiration) => {
13
- storageClient.setItemWithExpiry(key, LOCAL_STORAGE_DISCOVERED_KEY, expiration);
18
+ try {
19
+ storageClient.setItemWithExpiry(key, LOCAL_STORAGE_DISCOVERED_KEY, expiration);
20
+ } catch {
21
+ // silent error
22
+ }
14
23
  };
@@ -176,7 +176,7 @@ const getToolbarViewedItem = (url, display) => {
176
176
  }];
177
177
  };
178
178
  const generateToolbarItems = (state, intl, providerFactory, cardOptions, lpLinkPicker, linkPicker, pluginInjectionApi) => node => {
179
- var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _node$attrs, _node$attrs$datasourc;
179
+ var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _node$attrs, _node$attrs$datasourc, _node$attrs2, _node$attrs2$datasour;
180
180
  const {
181
181
  url
182
182
  } = titleUrlPairFromNode(node);
@@ -200,8 +200,9 @@ const generateToolbarItems = (state, intl, providerFactory, cardOptions, lpLinkP
200
200
  hoverDecoration
201
201
  } = (_pluginInjectionApi$d = pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$d2 = pluginInjectionApi.decorations) === null || _pluginInjectionApi$d2 === void 0 ? void 0 : _pluginInjectionApi$d2.actions) !== null && _pluginInjectionApi$d !== void 0 ? _pluginInjectionApi$d : {};
202
202
  const isDatasource = isDatasourceNode(node);
203
+ const datasourceId = node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : (_node$attrs$datasourc = _node$attrs.datasource) === null || _node$attrs$datasourc === void 0 ? void 0 : _node$attrs$datasourc.id;
203
204
  const pluginState = pluginKey.getState(state);
204
- const shouldRenderDatasourceToolbar = isDatasource && cardOptions.allowDatasource && canRenderDatasource(node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : (_node$attrs$datasourc = _node$attrs.datasource) === null || _node$attrs$datasourc === void 0 ? void 0 : _node$attrs$datasourc.id);
205
+ const shouldRenderDatasourceToolbar = isDatasource && cardOptions.allowDatasource && canRenderDatasource(node === null || node === void 0 ? void 0 : (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 ? void 0 : (_node$attrs2$datasour = _node$attrs2.datasource) === null || _node$attrs2$datasour === void 0 ? void 0 : _node$attrs2$datasour.id);
205
206
  if (pluginState !== null && pluginState !== void 0 && pluginState.showLinkingToolbar) {
206
207
  return [buildEditLinkToolbar({
207
208
  providerFactory,
@@ -330,6 +331,7 @@ const generateToolbarItems = (state, intl, providerFactory, cardOptions, lpLinkP
330
331
  type: 'custom',
331
332
  fallback: [],
332
333
  render: editorView => /*#__PURE__*/React.createElement(EditDatasourceButton, {
334
+ datasourceId: datasourceId,
333
335
  intl: intl,
334
336
  editorAnalyticsApi: editorAnalyticsApi,
335
337
  url: url,
@@ -379,7 +381,7 @@ export const getSettingsButtonGroup = (intl, editorAnalyticsApi, userPreferences
379
381
  }];
380
382
  };
381
383
  const getDatasourceButtonGroup = (metadata, intl, editorAnalyticsApi, node, hoverDecoration, datasourceId, state, cardOptions, currentAppearance) => {
382
- var _node$attrs2;
384
+ var _node$attrs3;
383
385
  const toolbarItems = [];
384
386
  if (isDatasourceConfigEditable(datasourceId) && !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar')) {
385
387
  toolbarItems.push({
@@ -464,7 +466,7 @@ const getDatasourceButtonGroup = (metadata, intl, editorAnalyticsApi, node, hove
464
466
  })
465
467
  });
466
468
  }
467
- if (node !== null && node !== void 0 && (_node$attrs2 = node.attrs) !== null && _node$attrs2 !== void 0 && _node$attrs2.url) {
469
+ if (node !== null && node !== void 0 && (_node$attrs3 = node.attrs) !== null && _node$attrs3 !== void 0 && _node$attrs3.url) {
468
470
  toolbarItems.push({
469
471
  id: 'editor.link.openLink',
470
472
  type: 'button',
@@ -23,6 +23,7 @@ const buttonStyles = css({
23
23
  // if they can resolve into a datasource.
24
24
  const EditDatasourceButtonWithCardContext = ({
25
25
  cardContext,
26
+ datasourceId: datasourceIdFromAdf,
26
27
  intl,
27
28
  editorAnalyticsApi,
28
29
  url,
@@ -30,13 +31,14 @@ const EditDatasourceButtonWithCardContext = ({
30
31
  currentAppearance
31
32
  }) => {
32
33
  const {
33
- datasourceId,
34
+ datasourceId: datasourceIdFromUrl,
34
35
  extensionKey
35
36
  } = useFetchDatasourceInfo({
36
37
  isRegularCardNode: true,
37
38
  url,
38
39
  cardContext
39
40
  });
41
+ const datasourceId = datasourceIdFromUrl !== null && datasourceIdFromUrl !== void 0 ? datasourceIdFromUrl : datasourceIdFromAdf;
40
42
  const onEditDatasource = useCallback(() => {
41
43
  if (editorView && datasourceId) {
42
44
  editDatasource(datasourceId, editorAnalyticsApi, currentAppearance, extensionKey)(editorView.state, editorView.dispatch);
@@ -63,6 +65,7 @@ const EditDatasourceButtonWithCardContext = ({
63
65
  }), jsx(Separator, null));
64
66
  };
65
67
  export const EditDatasourceButton = ({
68
+ datasourceId,
66
69
  intl,
67
70
  editorAnalyticsApi,
68
71
  url,
@@ -72,6 +75,7 @@ export const EditDatasourceButton = ({
72
75
  return jsx(CardContextProvider, null, ({
73
76
  cardContext
74
77
  }) => jsx(EditDatasourceButtonWithCardContext, {
78
+ datasourceId: datasourceId,
75
79
  url: url,
76
80
  intl: intl,
77
81
  editorAnalyticsApi: editorAnalyticsApi,
@@ -145,6 +145,7 @@ const EditToolbarButtonWithUrl = props => {
145
145
  const {
146
146
  cardContext,
147
147
  currentAppearance,
148
+ datasourceId: datasourceIdFromAdf,
148
149
  editorAnalyticsApi,
149
150
  editorView,
150
151
  intl,
@@ -153,12 +154,13 @@ const EditToolbarButtonWithUrl = props => {
153
154
  } = props;
154
155
  const {
155
156
  extensionKey,
156
- datasourceId
157
+ datasourceId: datasourceIdFromUrl
157
158
  } = useFetchDatasourceInfo({
158
159
  isRegularCardNode: true,
159
160
  url,
160
161
  cardContext
161
162
  });
163
+ const datasourceId = datasourceIdFromUrl !== null && datasourceIdFromUrl !== void 0 ? datasourceIdFromUrl : datasourceIdFromAdf;
162
164
  const editVariant = useMemo(() => {
163
165
  var _cardContext$store2, _urlState$error2;
164
166
  if (!datasourceId || !isDatasourceConfigEditable(datasourceId)) {
@@ -246,6 +248,7 @@ export const EditToolbarButton = props => {
246
248
  if (fg('enable_datasource_nourl_edit_dropdown_datafetch')) {
247
249
  if (props.url) {
248
250
  return jsx(EditToolbarButtonWithUrl, {
251
+ datasourceId: datasourceId,
249
252
  url: props.url,
250
253
  intl: intl,
251
254
  editorAnalyticsApi: editorAnalyticsApi,
@@ -6,9 +6,18 @@ export var LOCAL_STORAGE_DISCOVERY_KEY_TOOLBAR = 'toolbar-upgrade-pulse';
6
6
  export var ONE_DAY_IN_MILLISECONDS = 86400000;
7
7
  var storageClient = new StorageClient(LOCAL_STORAGE_CLIENT_KEY);
8
8
  export var isLocalStorageKeyDiscovered = function isLocalStorageKeyDiscovered(key) {
9
- var localStorageValue = storageClient.getItem(key);
10
- return !!localStorageValue && localStorageValue === LOCAL_STORAGE_DISCOVERED_KEY;
9
+ try {
10
+ var localStorageValue = storageClient.getItem(key);
11
+ return !!localStorageValue && localStorageValue === LOCAL_STORAGE_DISCOVERED_KEY;
12
+ } catch (_unused) {
13
+ // If localStorage is not available, don't show feature discovery component. Treat it as 'discovered'.
14
+ return true;
15
+ }
11
16
  };
12
17
  export var markLocalStorageKeyDiscovered = function markLocalStorageKeyDiscovered(key, expiration) {
13
- storageClient.setItemWithExpiry(key, LOCAL_STORAGE_DISCOVERED_KEY, expiration);
18
+ try {
19
+ storageClient.setItemWithExpiry(key, LOCAL_STORAGE_DISCOVERED_KEY, expiration);
20
+ } catch (_unused2) {
21
+ // silent error
22
+ }
14
23
  };
@@ -178,7 +178,7 @@ var getToolbarViewedItem = function getToolbarViewedItem(url, display) {
178
178
  };
179
179
  var generateToolbarItems = function generateToolbarItems(state, intl, providerFactory, cardOptions, lpLinkPicker, linkPicker, pluginInjectionApi) {
180
180
  return function (node) {
181
- var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _node$attrs;
181
+ var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _node$attrs, _node$attrs2;
182
182
  var _titleUrlPairFromNode2 = titleUrlPairFromNode(node),
183
183
  url = _titleUrlPairFromNode2.url;
184
184
  var _ref = (_pluginInjectionApi$a = pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : pluginInjectionApi.analytics) !== null && _pluginInjectionApi$a !== void 0 ? _pluginInjectionApi$a : {},
@@ -198,8 +198,9 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
198
198
  var _ref2 = (_pluginInjectionApi$d = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$d2 = pluginInjectionApi.decorations) === null || _pluginInjectionApi$d2 === void 0 ? void 0 : _pluginInjectionApi$d2.actions) !== null && _pluginInjectionApi$d !== void 0 ? _pluginInjectionApi$d : {},
199
199
  hoverDecoration = _ref2.hoverDecoration;
200
200
  var isDatasource = isDatasourceNode(node);
201
+ var datasourceId = node === null || node === void 0 || (_node$attrs = node.attrs) === null || _node$attrs === void 0 || (_node$attrs = _node$attrs.datasource) === null || _node$attrs === void 0 ? void 0 : _node$attrs.id;
201
202
  var pluginState = pluginKey.getState(state);
202
- var shouldRenderDatasourceToolbar = isDatasource && cardOptions.allowDatasource && canRenderDatasource(node === null || node === void 0 || (_node$attrs = node.attrs) === null || _node$attrs === void 0 || (_node$attrs = _node$attrs.datasource) === null || _node$attrs === void 0 ? void 0 : _node$attrs.id);
203
+ var shouldRenderDatasourceToolbar = isDatasource && cardOptions.allowDatasource && canRenderDatasource(node === null || node === void 0 || (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2.datasource) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.id);
203
204
  if (pluginState !== null && pluginState !== void 0 && pluginState.showLinkingToolbar) {
204
205
  return [buildEditLinkToolbar({
205
206
  providerFactory: providerFactory,
@@ -331,6 +332,7 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
331
332
  fallback: [],
332
333
  render: function render(editorView) {
333
334
  return /*#__PURE__*/React.createElement(EditDatasourceButton, {
335
+ datasourceId: datasourceId,
334
336
  intl: intl,
335
337
  editorAnalyticsApi: editorAnalyticsApi,
336
338
  url: url,
@@ -382,7 +384,7 @@ export var getSettingsButtonGroup = function getSettingsButtonGroup(intl, editor
382
384
  }];
383
385
  };
384
386
  var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl, editorAnalyticsApi, node, hoverDecoration, datasourceId, state, cardOptions, currentAppearance) {
385
- var _node$attrs2;
387
+ var _node$attrs3;
386
388
  var toolbarItems = [];
387
389
  if (isDatasourceConfigEditable(datasourceId) && !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar')) {
388
390
  toolbarItems.push({
@@ -467,7 +469,7 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
467
469
  }
468
470
  });
469
471
  }
470
- if (node !== null && node !== void 0 && (_node$attrs2 = node.attrs) !== null && _node$attrs2 !== void 0 && _node$attrs2.url) {
472
+ if (node !== null && node !== void 0 && (_node$attrs3 = node.attrs) !== null && _node$attrs3 !== void 0 && _node$attrs3.url) {
471
473
  toolbarItems.push({
472
474
  id: 'editor.link.openLink',
473
475
  type: 'button',
@@ -23,6 +23,7 @@ var buttonStyles = css({
23
23
  // if they can resolve into a datasource.
24
24
  var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardContext(_ref) {
25
25
  var cardContext = _ref.cardContext,
26
+ datasourceIdFromAdf = _ref.datasourceId,
26
27
  intl = _ref.intl,
27
28
  editorAnalyticsApi = _ref.editorAnalyticsApi,
28
29
  url = _ref.url,
@@ -33,8 +34,9 @@ var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardC
33
34
  url: url,
34
35
  cardContext: cardContext
35
36
  }),
36
- datasourceId = _useFetchDatasourceIn.datasourceId,
37
+ datasourceIdFromUrl = _useFetchDatasourceIn.datasourceId,
37
38
  extensionKey = _useFetchDatasourceIn.extensionKey;
39
+ var datasourceId = datasourceIdFromUrl !== null && datasourceIdFromUrl !== void 0 ? datasourceIdFromUrl : datasourceIdFromAdf;
38
40
  var onEditDatasource = useCallback(function () {
39
41
  if (editorView && datasourceId) {
40
42
  editDatasource(datasourceId, editorAnalyticsApi, currentAppearance, extensionKey)(editorView.state, editorView.dispatch);
@@ -61,7 +63,8 @@ var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardC
61
63
  }), jsx(Separator, null));
62
64
  };
63
65
  export var EditDatasourceButton = function EditDatasourceButton(_ref2) {
64
- var intl = _ref2.intl,
66
+ var datasourceId = _ref2.datasourceId,
67
+ intl = _ref2.intl,
65
68
  editorAnalyticsApi = _ref2.editorAnalyticsApi,
66
69
  url = _ref2.url,
67
70
  editorView = _ref2.editorView,
@@ -69,6 +72,7 @@ export var EditDatasourceButton = function EditDatasourceButton(_ref2) {
69
72
  return jsx(CardContextProvider, null, function (_ref3) {
70
73
  var cardContext = _ref3.cardContext;
71
74
  return jsx(EditDatasourceButtonWithCardContext, {
75
+ datasourceId: datasourceId,
72
76
  url: url,
73
77
  intl: intl,
74
78
  editorAnalyticsApi: editorAnalyticsApi,
@@ -153,6 +153,7 @@ var EditToolbarButtonWithCardContext = function EditToolbarButtonWithCardContext
153
153
  var EditToolbarButtonWithUrl = function EditToolbarButtonWithUrl(props) {
154
154
  var cardContext = props.cardContext,
155
155
  currentAppearance = props.currentAppearance,
156
+ datasourceIdFromAdf = props.datasourceId,
156
157
  editorAnalyticsApi = props.editorAnalyticsApi,
157
158
  editorView = props.editorView,
158
159
  intl = props.intl,
@@ -164,7 +165,8 @@ var EditToolbarButtonWithUrl = function EditToolbarButtonWithUrl(props) {
164
165
  cardContext: cardContext
165
166
  }),
166
167
  extensionKey = _useFetchDatasourceIn2.extensionKey,
167
- datasourceId = _useFetchDatasourceIn2.datasourceId;
168
+ datasourceIdFromUrl = _useFetchDatasourceIn2.datasourceId;
169
+ var datasourceId = datasourceIdFromUrl !== null && datasourceIdFromUrl !== void 0 ? datasourceIdFromUrl : datasourceIdFromAdf;
168
170
  var editVariant = useMemo(function () {
169
171
  var _cardContext$store2, _urlState$error2;
170
172
  if (!datasourceId || !isDatasourceConfigEditable(datasourceId)) {
@@ -248,6 +250,7 @@ export var EditToolbarButton = function EditToolbarButton(props) {
248
250
  if (fg('enable_datasource_nourl_edit_dropdown_datafetch')) {
249
251
  if (props.url) {
250
252
  return jsx(EditToolbarButtonWithUrl, {
253
+ datasourceId: datasourceId,
251
254
  url: props.url,
252
255
  intl: intl,
253
256
  editorAnalyticsApi: editorAnalyticsApi,
@@ -6,6 +6,7 @@ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
6
6
  import type { CardContext } from '@atlaskit/link-provider';
7
7
  import { type CardType } from '../types';
8
8
  export interface EditDatasourceButtonProps {
9
+ datasourceId?: string;
9
10
  intl: IntlShape;
10
11
  editorAnalyticsApi?: EditorAnalyticsAPI;
11
12
  url?: string;
@@ -13,5 +14,5 @@ export interface EditDatasourceButtonProps {
13
14
  cardContext?: CardContext;
14
15
  currentAppearance?: CardType;
15
16
  }
16
- export declare const EditDatasourceButton: ({ intl, editorAnalyticsApi, url, editorView, currentAppearance, }: EditDatasourceButtonProps) => jsx.JSX.Element;
17
+ export declare const EditDatasourceButton: ({ datasourceId, intl, editorAnalyticsApi, url, editorView, currentAppearance, }: EditDatasourceButtonProps) => jsx.JSX.Element;
17
18
  export declare const editDatasource: (datasourceId: string, editorAnalyticsApi?: EditorAnalyticsAPI, appearance?: CardType, extensionKey?: string) => Command;
@@ -15,6 +15,7 @@ export interface EditDatasourceToolbarButtonWithCommonProps {
15
15
  }
16
16
  export interface EditDatasourceToolbarButtonWithUrlProps extends EditDatasourceToolbarButtonWithCommonProps {
17
17
  cardContext?: CardContext;
18
+ datasourceId?: string;
18
19
  url: string;
19
20
  }
20
21
  export interface EditDatasourceToolbarButtonWithDatasourceIdProps extends EditDatasourceToolbarButtonWithCommonProps {
@@ -6,6 +6,7 @@ import type { EditorView } from '@atlaskit/editor-prosemirror/view';
6
6
  import type { CardContext } from '@atlaskit/link-provider';
7
7
  import { type CardType } from '../types';
8
8
  export interface EditDatasourceButtonProps {
9
+ datasourceId?: string;
9
10
  intl: IntlShape;
10
11
  editorAnalyticsApi?: EditorAnalyticsAPI;
11
12
  url?: string;
@@ -13,5 +14,5 @@ export interface EditDatasourceButtonProps {
13
14
  cardContext?: CardContext;
14
15
  currentAppearance?: CardType;
15
16
  }
16
- export declare const EditDatasourceButton: ({ intl, editorAnalyticsApi, url, editorView, currentAppearance, }: EditDatasourceButtonProps) => jsx.JSX.Element;
17
+ export declare const EditDatasourceButton: ({ datasourceId, intl, editorAnalyticsApi, url, editorView, currentAppearance, }: EditDatasourceButtonProps) => jsx.JSX.Element;
17
18
  export declare const editDatasource: (datasourceId: string, editorAnalyticsApi?: EditorAnalyticsAPI, appearance?: CardType, extensionKey?: string) => Command;
@@ -15,6 +15,7 @@ export interface EditDatasourceToolbarButtonWithCommonProps {
15
15
  }
16
16
  export interface EditDatasourceToolbarButtonWithUrlProps extends EditDatasourceToolbarButtonWithCommonProps {
17
17
  cardContext?: CardContext;
18
+ datasourceId?: string;
18
19
  url: string;
19
20
  }
20
21
  export interface EditDatasourceToolbarButtonWithDatasourceIdProps extends EditDatasourceToolbarButtonWithCommonProps {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-card",
3
- "version": "3.0.2",
3
+ "version": "3.0.4",
4
4
  "description": "Card plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",