@atlaskit/editor-plugin-card 1.6.0 → 1.6.2

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,17 @@
1
1
  # @atlaskit/editor-plugin-card
2
2
 
3
+ ## 1.6.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#89921](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/89921) [`411822b4d808`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/411822b4d808) - The changes here updates the datasource toolbar to display smart-link icons for config and non-config based datasources.
8
+
9
+ ## 1.6.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#88724](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/88724) [`df44cd13bfac`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/df44cd13bfac) - Fix datasources breakout layout button to refresh node reference when making a layout change transaction
14
+
3
15
  ## 1.6.0
4
16
 
5
17
  ### Minor Changes
@@ -383,9 +383,17 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
383
383
  type: 'separator'
384
384
  });
385
385
  }
386
+ var canShowMainToolbar = function canShowMainToolbar() {
387
+ if (
388
+ // FF that controls visibily of the additional toolbar buttons
389
+ !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-appearance-toolbar')) {
390
+ return false;
391
+ }
386
392
 
387
- // Smart card view buttons only allowed for non-config datasources
388
- if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-appearance-toolbar') && !(0, _utils3.isDatasourceConfigEditable)(datasourceId) && cardOptions) {
393
+ // FF to enable additional toolbar buttons based on if the datasource is configurable or not
394
+ return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.datasource-enable-toolbar-buttons-for-all-datasources') ? true : !(0, _utils3.isDatasourceConfigEditable)(datasourceId);
395
+ };
396
+ if (canShowMainToolbar()) {
389
397
  var allowBlockCards = cardOptions.allowBlockCards,
390
398
  allowEmbeds = cardOptions.allowEmbeds,
391
399
  showUpgradeDiscoverability = cardOptions.showUpgradeDiscoverability;
@@ -210,6 +210,7 @@ var DatasourceModal = exports.DatasourceModal = function DatasourceModal(_ref) {
210
210
  "data-testid": "confluence-search-config-modal"
211
211
  }, /*#__PURE__*/_react.default.createElement(_linkDatasource.ConfluenceSearchConfigModal, {
212
212
  datasourceId: _datasourceId2,
213
+ viewMode: isRegularCardNode ? 'inline' : 'table',
213
214
  visibleColumnKeys: _visibleColumnKeys2,
214
215
  parameters: _parameters2,
215
216
  url: (_existingNode8 = existingNode) === null || _existingNode8 === void 0 ? void 0 : _existingNode8.attrs.url,
@@ -10,6 +10,7 @@ var _ui = require("@atlaskit/editor-common/ui");
10
10
  var _utils = require("@atlaskit/editor-common/utils");
11
11
  var _primitives = require("@atlaskit/primitives");
12
12
  var _actions = require("../pm-plugins/actions");
13
+ var _utils2 = require("../utils");
13
14
  var _CardContextProvider = require("./CardContextProvider");
14
15
  var _useFetchDatasourceInfo = require("./useFetchDatasourceInfo");
15
16
  /** @jsx jsx */
@@ -33,7 +34,7 @@ var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardC
33
34
  cardContext: cardContext
34
35
  }),
35
36
  datasourceId = _useFetchDatasourceIn.datasourceId;
36
- if (!datasourceId || !(0, _utils.canRenderDatasource)(datasourceId, false)) {
37
+ if (!datasourceId || !(0, _utils2.isDatasourceConfigEditable)(datasourceId)) {
37
38
  return null;
38
39
  }
39
40
  if (url) {
@@ -89,12 +89,15 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
89
89
  layout = _ref3$layout === void 0 ? (node === null || node === void 0 || (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.layout) || 'center' : _ref3$layout;
90
90
  var isDatasource = !!(node !== null && node !== void 0 && (_node$attrs2 = node.attrs) !== null && _node$attrs2 !== void 0 && _node$attrs2.datasource);
91
91
  var onLayoutChange = function onLayoutChange(layout) {
92
+ var _getDatasource$node;
92
93
  if (pos === undefined) {
93
94
  return;
94
95
  }
95
96
  var state = editorView.state,
96
97
  dispatch = editorView.dispatch;
97
- var tr = state.tr.setNodeMarkup(pos, undefined, _objectSpread(_objectSpread({}, node === null || node === void 0 ? void 0 : node.attrs), {}, {
98
+ // If the button does not re-render due to no card state change, node reference will be stale
99
+ var datasourceNode = (_getDatasource$node = (0, _utils2.getDatasource)(editorView).node) !== null && _getDatasource$node !== void 0 ? _getDatasource$node : node;
100
+ var tr = state.tr.setNodeMarkup(pos, undefined, _objectSpread(_objectSpread({}, datasourceNode === null || datasourceNode === void 0 ? void 0 : datasourceNode.attrs), {}, {
98
101
  layout: layout
99
102
  }));
100
103
  tr.setMeta('scrollIntoView', false);
@@ -374,9 +374,17 @@ const getDatasourceButtonGroup = (metadata, intl, editorAnalyticsApi, node, hove
374
374
  type: 'separator'
375
375
  });
376
376
  }
377
+ const canShowMainToolbar = () => {
378
+ if (
379
+ // FF that controls visibily of the additional toolbar buttons
380
+ !getBooleanFF('platform.linking-platform.enable-datasource-appearance-toolbar')) {
381
+ return false;
382
+ }
377
383
 
378
- // Smart card view buttons only allowed for non-config datasources
379
- if (getBooleanFF('platform.linking-platform.enable-datasource-appearance-toolbar') && !isDatasourceConfigEditable(datasourceId) && cardOptions) {
384
+ // FF to enable additional toolbar buttons based on if the datasource is configurable or not
385
+ return getBooleanFF('platform.linking-platform.datasource-enable-toolbar-buttons-for-all-datasources') ? true : !isDatasourceConfigEditable(datasourceId);
386
+ };
387
+ if (canShowMainToolbar()) {
380
388
  const {
381
389
  allowBlockCards,
382
390
  allowEmbeds,
@@ -170,6 +170,7 @@ export const DatasourceModal = ({
170
170
  "data-testid": "confluence-search-config-modal"
171
171
  }, /*#__PURE__*/React.createElement(ConfluenceSearchConfigModal, {
172
172
  datasourceId: datasourceId,
173
+ viewMode: isRegularCardNode ? 'inline' : 'table',
173
174
  visibleColumnKeys: visibleColumnKeys,
174
175
  parameters: parameters,
175
176
  url: (_existingNode8 = existingNode) === null || _existingNode8 === void 0 ? void 0 : _existingNode8.attrs.url,
@@ -2,9 +2,10 @@
2
2
  import { css, jsx } from '@emotion/react';
3
3
  import { cardMessages as messages } from '@atlaskit/editor-common/messages';
4
4
  import { FloatingToolbarButton as Button, FloatingToolbarSeparator as Separator, SmallerEditIcon } from '@atlaskit/editor-common/ui';
5
- import { canRenderDatasource, getDatasourceType } from '@atlaskit/editor-common/utils';
5
+ import { getDatasourceType } from '@atlaskit/editor-common/utils';
6
6
  import { Flex } from '@atlaskit/primitives';
7
7
  import { showDatasourceModal } from '../pm-plugins/actions';
8
+ import { isDatasourceConfigEditable } from '../utils';
8
9
  import { CardContextProvider } from './CardContextProvider';
9
10
  import { useFetchDatasourceInfo } from './useFetchDatasourceInfo';
10
11
  const buttonStyles = css({
@@ -28,7 +29,7 @@ const EditDatasourceButtonWithCardContext = ({
28
29
  url,
29
30
  cardContext
30
31
  });
31
- if (!datasourceId || !canRenderDatasource(datasourceId, false)) {
32
+ if (!datasourceId || !isDatasourceConfigEditable(datasourceId)) {
32
33
  return null;
33
34
  }
34
35
  if (url) {
@@ -84,6 +84,7 @@ const LayoutButtonWrapper = ({
84
84
  } = cardState !== null && cardState !== void 0 ? cardState : {};
85
85
  const isDatasource = !!(node !== null && node !== void 0 && (_node$attrs2 = node.attrs) !== null && _node$attrs2 !== void 0 && _node$attrs2.datasource);
86
86
  const onLayoutChange = layout => {
87
+ var _getDatasource$node;
87
88
  if (pos === undefined) {
88
89
  return;
89
90
  }
@@ -91,8 +92,10 @@ const LayoutButtonWrapper = ({
91
92
  state,
92
93
  dispatch
93
94
  } = editorView;
95
+ // If the button does not re-render due to no card state change, node reference will be stale
96
+ const datasourceNode = (_getDatasource$node = getDatasource(editorView).node) !== null && _getDatasource$node !== void 0 ? _getDatasource$node : node;
94
97
  const tr = state.tr.setNodeMarkup(pos, undefined, {
95
- ...(node === null || node === void 0 ? void 0 : node.attrs),
98
+ ...(datasourceNode === null || datasourceNode === void 0 ? void 0 : datasourceNode.attrs),
96
99
  layout
97
100
  });
98
101
  tr.setMeta('scrollIntoView', false);
@@ -373,9 +373,17 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
373
373
  type: 'separator'
374
374
  });
375
375
  }
376
+ var canShowMainToolbar = function canShowMainToolbar() {
377
+ if (
378
+ // FF that controls visibily of the additional toolbar buttons
379
+ !getBooleanFF('platform.linking-platform.enable-datasource-appearance-toolbar')) {
380
+ return false;
381
+ }
376
382
 
377
- // Smart card view buttons only allowed for non-config datasources
378
- if (getBooleanFF('platform.linking-platform.enable-datasource-appearance-toolbar') && !isDatasourceConfigEditable(datasourceId) && cardOptions) {
383
+ // FF to enable additional toolbar buttons based on if the datasource is configurable or not
384
+ return getBooleanFF('platform.linking-platform.datasource-enable-toolbar-buttons-for-all-datasources') ? true : !isDatasourceConfigEditable(datasourceId);
385
+ };
386
+ if (canShowMainToolbar()) {
379
387
  var allowBlockCards = cardOptions.allowBlockCards,
380
388
  allowEmbeds = cardOptions.allowEmbeds,
381
389
  showUpgradeDiscoverability = cardOptions.showUpgradeDiscoverability;
@@ -200,6 +200,7 @@ export var DatasourceModal = function DatasourceModal(_ref) {
200
200
  "data-testid": "confluence-search-config-modal"
201
201
  }, /*#__PURE__*/React.createElement(ConfluenceSearchConfigModal, {
202
202
  datasourceId: _datasourceId2,
203
+ viewMode: isRegularCardNode ? 'inline' : 'table',
203
204
  visibleColumnKeys: _visibleColumnKeys2,
204
205
  parameters: _parameters2,
205
206
  url: (_existingNode8 = existingNode) === null || _existingNode8 === void 0 ? void 0 : _existingNode8.attrs.url,
@@ -2,9 +2,10 @@
2
2
  import { css, jsx } from '@emotion/react';
3
3
  import { cardMessages as messages } from '@atlaskit/editor-common/messages';
4
4
  import { FloatingToolbarButton as Button, FloatingToolbarSeparator as Separator, SmallerEditIcon } from '@atlaskit/editor-common/ui';
5
- import { canRenderDatasource, getDatasourceType } from '@atlaskit/editor-common/utils';
5
+ import { getDatasourceType } from '@atlaskit/editor-common/utils';
6
6
  import { Flex } from '@atlaskit/primitives';
7
7
  import { showDatasourceModal } from '../pm-plugins/actions';
8
+ import { isDatasourceConfigEditable } from '../utils';
8
9
  import { CardContextProvider } from './CardContextProvider';
9
10
  import { useFetchDatasourceInfo } from './useFetchDatasourceInfo';
10
11
  var buttonStyles = css({
@@ -26,7 +27,7 @@ var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardC
26
27
  cardContext: cardContext
27
28
  }),
28
29
  datasourceId = _useFetchDatasourceIn.datasourceId;
29
- if (!datasourceId || !canRenderDatasource(datasourceId, false)) {
30
+ if (!datasourceId || !isDatasourceConfigEditable(datasourceId)) {
30
31
  return null;
31
32
  }
32
33
  if (url) {
@@ -83,12 +83,15 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
83
83
  layout = _ref3$layout === void 0 ? (node === null || node === void 0 || (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.layout) || 'center' : _ref3$layout;
84
84
  var isDatasource = !!(node !== null && node !== void 0 && (_node$attrs2 = node.attrs) !== null && _node$attrs2 !== void 0 && _node$attrs2.datasource);
85
85
  var onLayoutChange = function onLayoutChange(layout) {
86
+ var _getDatasource$node;
86
87
  if (pos === undefined) {
87
88
  return;
88
89
  }
89
90
  var state = editorView.state,
90
91
  dispatch = editorView.dispatch;
91
- var tr = state.tr.setNodeMarkup(pos, undefined, _objectSpread(_objectSpread({}, node === null || node === void 0 ? void 0 : node.attrs), {}, {
92
+ // If the button does not re-render due to no card state change, node reference will be stale
93
+ var datasourceNode = (_getDatasource$node = getDatasource(editorView).node) !== null && _getDatasource$node !== void 0 ? _getDatasource$node : node;
94
+ var tr = state.tr.setNodeMarkup(pos, undefined, _objectSpread(_objectSpread({}, datasourceNode === null || datasourceNode === void 0 ? void 0 : datasourceNode.attrs), {}, {
92
95
  layout: layout
93
96
  }));
94
97
  tr.setMeta('scrollIntoView', false);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-card",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "Card plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -49,12 +49,12 @@
49
49
  "@atlaskit/icon": "^22.1.0",
50
50
  "@atlaskit/link-analytics": "^8.3.0",
51
51
  "@atlaskit/link-client-extension": "^1.8.0",
52
- "@atlaskit/link-datasource": "^1.26.0",
52
+ "@atlaskit/link-datasource": "^1.27.0",
53
53
  "@atlaskit/linking-common": "^5.6.0",
54
54
  "@atlaskit/linking-types": "^8.8.0",
55
55
  "@atlaskit/platform-feature-flags": "^0.2.0",
56
56
  "@atlaskit/primitives": "^5.5.0",
57
- "@atlaskit/smart-card": "^26.53.0",
57
+ "@atlaskit/smart-card": "^26.55.0",
58
58
  "@atlaskit/theme": "^12.7.0",
59
59
  "@atlaskit/tokens": "^1.43.0",
60
60
  "@babel/runtime": "^7.0.0",
@@ -113,6 +113,9 @@
113
113
  "platform.linking-platform.enable-datasource-appearance-toolbar": {
114
114
  "type": "boolean"
115
115
  },
116
+ "platform.linking-platform.datasource-enable-toolbar-buttons-for-all-datasources": {
117
+ "type": "boolean"
118
+ },
116
119
  "platform.editor.card.fix-embed-card-select-all": {
117
120
  "type": "boolean"
118
121
  },