@atlaskit/editor-plugin-track-changes 5.0.34 → 5.1.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 CHANGED
@@ -1,5 +1,12 @@
1
1
  # @atlaskit/editor-plugin-track-changes
2
2
 
3
+ ## 5.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`3246746518cdf`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/3246746518cdf) -
8
+ [ux] Add the ability to supply a ButtonWrapper to track-changes plugin via options
9
+
3
10
  ## 5.0.34
4
11
 
5
12
  ### Patch Changes
@@ -22,7 +22,7 @@ var trackChangesPlugin = exports.trackChangesPlugin = function trackChangesPlugi
22
22
  if ((options === null || options === void 0 ? void 0 : options.showOnToolbar) === true) {
23
23
  if (isToolbarAIFCEnabled) {
24
24
  var _api$toolbar;
25
- api === null || api === void 0 || (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 || _api$toolbar.actions.registerComponents((0, _toolbarComponents.getToolbarComponents)(api));
25
+ api === null || api === void 0 || (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 || _api$toolbar.actions.registerComponents((0, _toolbarComponents.getToolbarComponents)(api, options));
26
26
  } else {
27
27
  var _api$primaryToolbar;
28
28
  api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 || (_api$primaryToolbar = _api$primaryToolbar.actions) === null || _api$primaryToolbar === void 0 || _api$primaryToolbar.registerComponent({
@@ -12,7 +12,8 @@ var _hooks = require("@atlaskit/editor-common/hooks");
12
12
  var _messages = require("@atlaskit/editor-common/messages");
13
13
  var _editorToolbar = require("@atlaskit/editor-toolbar");
14
14
  var TrackChangesToolbarButton = exports.TrackChangesToolbarButton = function TrackChangesToolbarButton(_ref) {
15
- var api = _ref.api;
15
+ var api = _ref.api,
16
+ Wrapper = _ref.wrapper;
16
17
  var isToolbarAIFCEnabled = Boolean(api === null || api === void 0 ? void 0 : api.toolbar);
17
18
  var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['trackChanges'], function (states) {
18
19
  var _states$trackChangesS, _states$trackChangesS2;
@@ -34,9 +35,21 @@ var TrackChangesToolbarButton = exports.TrackChangesToolbarButton = function Tra
34
35
  api === null || api === void 0 || api.core.actions.focus();
35
36
  }
36
37
  }, [api, isDisplayingChanges]);
37
- return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
38
+ if (!isToolbarAIFCEnabled) {
39
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
40
+ content: formatMessage(_messages.trackChangesMessages.toolbarIconLabel)
41
+ }, /*#__PURE__*/_react.default.createElement(_new.IconButton, {
42
+ icon: _editorToolbar.HistoryIcon,
43
+ label: formatMessage(_messages.trackChangesMessages.toolbarIconLabel),
44
+ appearance: "subtle",
45
+ isDisabled: !isShowDiffAvailable,
46
+ isSelected: isDisplayingChanges,
47
+ onClick: handleClick
48
+ }));
49
+ }
50
+ var button = /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
38
51
  content: formatMessage(_messages.trackChangesMessages.toolbarIconLabel)
39
- }, isToolbarAIFCEnabled ? /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
52
+ }, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButton, {
40
53
  iconBefore: /*#__PURE__*/_react.default.createElement(_editorToolbar.HistoryIcon, {
41
54
  label: formatMessage(_messages.trackChangesMessages.toolbarIconLabel),
42
55
  size: "small"
@@ -44,12 +57,6 @@ var TrackChangesToolbarButton = exports.TrackChangesToolbarButton = function Tra
44
57
  onClick: handleClick,
45
58
  isDisabled: !isShowDiffAvailable,
46
59
  isSelected: isDisplayingChanges
47
- }) : /*#__PURE__*/_react.default.createElement(_new.IconButton, {
48
- icon: _editorToolbar.HistoryIcon,
49
- label: formatMessage(_messages.trackChangesMessages.toolbarIconLabel),
50
- appearance: "subtle",
51
- isDisabled: !isShowDiffAvailable,
52
- isSelected: isDisplayingChanges,
53
- onClick: handleClick
54
60
  }));
61
+ return Wrapper ? /*#__PURE__*/_react.default.createElement(Wrapper, null, button) : button;
55
62
  };
@@ -10,7 +10,7 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _toolbar = require("@atlaskit/editor-common/toolbar");
11
11
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
12
  var _TrackChangesToolbarButton = require("./TrackChangesToolbarButton");
13
- var getToolbarComponents = exports.getToolbarComponents = function getToolbarComponents(api) {
13
+ var getToolbarComponents = exports.getToolbarComponents = function getToolbarComponents(api, options) {
14
14
  return [].concat((0, _toConsumableArray2.default)((0, _platformFeatureFlags.fg)('platform_editor_toolbar_aifc_undo_redo_confluence') ? [] : [{
15
15
  type: _toolbar.TRACK_CHANGES_SECTION.type,
16
16
  key: _toolbar.TRACK_CHANGES_SECTION.key,
@@ -37,7 +37,8 @@ var getToolbarComponents = exports.getToolbarComponents = function getToolbarCom
37
37
  }],
38
38
  component: function component() {
39
39
  return /*#__PURE__*/_react.default.createElement(_TrackChangesToolbarButton.TrackChangesToolbarButton, {
40
- api: api
40
+ api: api,
41
+ wrapper: options === null || options === void 0 ? void 0 : options.ButtonWrapper
41
42
  });
42
43
  }
43
44
  }]);
@@ -16,7 +16,7 @@ export const trackChangesPlugin = ({
16
16
  if ((options === null || options === void 0 ? void 0 : options.showOnToolbar) === true) {
17
17
  if (isToolbarAIFCEnabled) {
18
18
  var _api$toolbar;
19
- api === null || api === void 0 ? void 0 : (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 ? void 0 : _api$toolbar.actions.registerComponents(getToolbarComponents(api));
19
+ api === null || api === void 0 ? void 0 : (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 ? void 0 : _api$toolbar.actions.registerComponents(getToolbarComponents(api, options));
20
20
  } else {
21
21
  var _api$primaryToolbar, _api$primaryToolbar$a;
22
22
  api === null || api === void 0 ? void 0 : (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 ? void 0 : (_api$primaryToolbar$a = _api$primaryToolbar.actions) === null || _api$primaryToolbar$a === void 0 ? void 0 : _api$primaryToolbar$a.registerComponent({
@@ -5,7 +5,8 @@ import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks'
5
5
  import { trackChangesMessages } from '@atlaskit/editor-common/messages';
6
6
  import { ToolbarButton, ToolbarTooltip, HistoryIcon } from '@atlaskit/editor-toolbar';
7
7
  export const TrackChangesToolbarButton = ({
8
- api
8
+ api,
9
+ wrapper: Wrapper
9
10
  }) => {
10
11
  const isToolbarAIFCEnabled = Boolean(api === null || api === void 0 ? void 0 : api.toolbar);
11
12
  const {
@@ -30,9 +31,21 @@ export const TrackChangesToolbarButton = ({
30
31
  api === null || api === void 0 ? void 0 : api.core.actions.focus();
31
32
  }
32
33
  }, [api, isDisplayingChanges]);
33
- return /*#__PURE__*/React.createElement(ToolbarTooltip, {
34
+ if (!isToolbarAIFCEnabled) {
35
+ return /*#__PURE__*/React.createElement(ToolbarTooltip, {
36
+ content: formatMessage(trackChangesMessages.toolbarIconLabel)
37
+ }, /*#__PURE__*/React.createElement(IconButton, {
38
+ icon: HistoryIcon,
39
+ label: formatMessage(trackChangesMessages.toolbarIconLabel),
40
+ appearance: "subtle",
41
+ isDisabled: !isShowDiffAvailable,
42
+ isSelected: isDisplayingChanges,
43
+ onClick: handleClick
44
+ }));
45
+ }
46
+ const button = /*#__PURE__*/React.createElement(ToolbarTooltip, {
34
47
  content: formatMessage(trackChangesMessages.toolbarIconLabel)
35
- }, isToolbarAIFCEnabled ? /*#__PURE__*/React.createElement(ToolbarButton, {
48
+ }, /*#__PURE__*/React.createElement(ToolbarButton, {
36
49
  iconBefore: /*#__PURE__*/React.createElement(HistoryIcon, {
37
50
  label: formatMessage(trackChangesMessages.toolbarIconLabel),
38
51
  size: "small"
@@ -40,12 +53,6 @@ export const TrackChangesToolbarButton = ({
40
53
  onClick: handleClick,
41
54
  isDisabled: !isShowDiffAvailable,
42
55
  isSelected: isDisplayingChanges
43
- }) : /*#__PURE__*/React.createElement(IconButton, {
44
- icon: HistoryIcon,
45
- label: formatMessage(trackChangesMessages.toolbarIconLabel),
46
- appearance: "subtle",
47
- isDisabled: !isShowDiffAvailable,
48
- isSelected: isDisplayingChanges,
49
- onClick: handleClick
50
56
  }));
57
+ return Wrapper ? /*#__PURE__*/React.createElement(Wrapper, null, button) : button;
51
58
  };
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { TOOLBAR_RANK, TOOLBARS, TRACK_CHANGES_BUTTON, TRACK_CHANGES_GROUP, TRACK_CHANGES_SECTION_RANK, TRACK_CHANGES_SECTION, TRACK_CHANGES_GROUP_RANK } from '@atlaskit/editor-common/toolbar';
3
3
  import { fg } from '@atlaskit/platform-feature-flags';
4
4
  import { TrackChangesToolbarButton } from './TrackChangesToolbarButton';
5
- export const getToolbarComponents = api => {
5
+ export const getToolbarComponents = (api, options) => {
6
6
  return [...(fg('platform_editor_toolbar_aifc_undo_redo_confluence') ? [] : [{
7
7
  type: TRACK_CHANGES_SECTION.type,
8
8
  key: TRACK_CHANGES_SECTION.key,
@@ -28,7 +28,8 @@ export const getToolbarComponents = api => {
28
28
  rank: TRACK_CHANGES_GROUP_RANK[TRACK_CHANGES_BUTTON.key]
29
29
  }],
30
30
  component: () => /*#__PURE__*/React.createElement(TrackChangesToolbarButton, {
31
- api: api
31
+ api: api,
32
+ wrapper: options === null || options === void 0 ? void 0 : options.ButtonWrapper
32
33
  })
33
34
  }];
34
35
  };
@@ -15,7 +15,7 @@ export var trackChangesPlugin = function trackChangesPlugin(_ref) {
15
15
  if ((options === null || options === void 0 ? void 0 : options.showOnToolbar) === true) {
16
16
  if (isToolbarAIFCEnabled) {
17
17
  var _api$toolbar;
18
- api === null || api === void 0 || (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 || _api$toolbar.actions.registerComponents(getToolbarComponents(api));
18
+ api === null || api === void 0 || (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 || _api$toolbar.actions.registerComponents(getToolbarComponents(api, options));
19
19
  } else {
20
20
  var _api$primaryToolbar;
21
21
  api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 || (_api$primaryToolbar = _api$primaryToolbar.actions) === null || _api$primaryToolbar === void 0 || _api$primaryToolbar.registerComponent({
@@ -5,7 +5,8 @@ import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks'
5
5
  import { trackChangesMessages } from '@atlaskit/editor-common/messages';
6
6
  import { ToolbarButton, ToolbarTooltip, HistoryIcon } from '@atlaskit/editor-toolbar';
7
7
  export var TrackChangesToolbarButton = function TrackChangesToolbarButton(_ref) {
8
- var api = _ref.api;
8
+ var api = _ref.api,
9
+ Wrapper = _ref.wrapper;
9
10
  var isToolbarAIFCEnabled = Boolean(api === null || api === void 0 ? void 0 : api.toolbar);
10
11
  var _useSharedPluginState = useSharedPluginStateWithSelector(api, ['trackChanges'], function (states) {
11
12
  var _states$trackChangesS, _states$trackChangesS2;
@@ -27,9 +28,21 @@ export var TrackChangesToolbarButton = function TrackChangesToolbarButton(_ref)
27
28
  api === null || api === void 0 || api.core.actions.focus();
28
29
  }
29
30
  }, [api, isDisplayingChanges]);
30
- return /*#__PURE__*/React.createElement(ToolbarTooltip, {
31
+ if (!isToolbarAIFCEnabled) {
32
+ return /*#__PURE__*/React.createElement(ToolbarTooltip, {
33
+ content: formatMessage(trackChangesMessages.toolbarIconLabel)
34
+ }, /*#__PURE__*/React.createElement(IconButton, {
35
+ icon: HistoryIcon,
36
+ label: formatMessage(trackChangesMessages.toolbarIconLabel),
37
+ appearance: "subtle",
38
+ isDisabled: !isShowDiffAvailable,
39
+ isSelected: isDisplayingChanges,
40
+ onClick: handleClick
41
+ }));
42
+ }
43
+ var button = /*#__PURE__*/React.createElement(ToolbarTooltip, {
31
44
  content: formatMessage(trackChangesMessages.toolbarIconLabel)
32
- }, isToolbarAIFCEnabled ? /*#__PURE__*/React.createElement(ToolbarButton, {
45
+ }, /*#__PURE__*/React.createElement(ToolbarButton, {
33
46
  iconBefore: /*#__PURE__*/React.createElement(HistoryIcon, {
34
47
  label: formatMessage(trackChangesMessages.toolbarIconLabel),
35
48
  size: "small"
@@ -37,12 +50,6 @@ export var TrackChangesToolbarButton = function TrackChangesToolbarButton(_ref)
37
50
  onClick: handleClick,
38
51
  isDisabled: !isShowDiffAvailable,
39
52
  isSelected: isDisplayingChanges
40
- }) : /*#__PURE__*/React.createElement(IconButton, {
41
- icon: HistoryIcon,
42
- label: formatMessage(trackChangesMessages.toolbarIconLabel),
43
- appearance: "subtle",
44
- isDisabled: !isShowDiffAvailable,
45
- isSelected: isDisplayingChanges,
46
- onClick: handleClick
47
53
  }));
54
+ return Wrapper ? /*#__PURE__*/React.createElement(Wrapper, null, button) : button;
48
55
  };
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { TOOLBAR_RANK, TOOLBARS, TRACK_CHANGES_BUTTON, TRACK_CHANGES_GROUP, TRACK_CHANGES_SECTION_RANK, TRACK_CHANGES_SECTION, TRACK_CHANGES_GROUP_RANK } from '@atlaskit/editor-common/toolbar';
4
4
  import { fg } from '@atlaskit/platform-feature-flags';
5
5
  import { TrackChangesToolbarButton } from './TrackChangesToolbarButton';
6
- export var getToolbarComponents = function getToolbarComponents(api) {
6
+ export var getToolbarComponents = function getToolbarComponents(api, options) {
7
7
  return [].concat(_toConsumableArray(fg('platform_editor_toolbar_aifc_undo_redo_confluence') ? [] : [{
8
8
  type: TRACK_CHANGES_SECTION.type,
9
9
  key: TRACK_CHANGES_SECTION.key,
@@ -30,7 +30,8 @@ export var getToolbarComponents = function getToolbarComponents(api) {
30
30
  }],
31
31
  component: function component() {
32
32
  return /*#__PURE__*/React.createElement(TrackChangesToolbarButton, {
33
- api: api
33
+ api: api,
34
+ wrapper: options === null || options === void 0 ? void 0 : options.ButtonWrapper
34
35
  });
35
36
  }
36
37
  }]);
@@ -1,2 +1,3 @@
1
1
  export { trackChangesPlugin } from './trackChangesPlugin';
2
2
  export type { TrackChangesPlugin } from './trackChangesPluginType';
3
+ export type { TrackChangesPluginOptions } from './trackChangesPluginType';
@@ -3,6 +3,19 @@ import type { HistoryPlugin } from '@atlaskit/editor-plugin-history';
3
3
  import { type PrimaryToolbarPlugin } from '@atlaskit/editor-plugin-primary-toolbar';
4
4
  import type { ShowDiffPlugin } from '@atlaskit/editor-plugin-show-diff';
5
5
  import type { ToolbarPlugin } from '@atlaskit/editor-plugin-toolbar';
6
+ export interface TrackChangesPluginOptions {
7
+ /**
8
+ * Custom wrapper component for the track changes button.
9
+ */
10
+ ButtonWrapper?: React.ComponentType<{
11
+ children: React.ReactNode;
12
+ }>;
13
+ /**
14
+ * Whether the track changes button should be shown on the toolbar.
15
+ * Defaults to false.
16
+ */
17
+ showOnToolbar?: boolean;
18
+ }
6
19
  export type TrackChangesPlugin = NextEditorPlugin<'trackChanges', {
7
20
  commands: {
8
21
  /**
@@ -29,13 +42,7 @@ export type TrackChangesPlugin = NextEditorPlugin<'trackChanges', {
29
42
  ShowDiffPlugin,
30
43
  OptionalPlugin<ToolbarPlugin>
31
44
  ];
32
- pluginConfiguration?: {
33
- /**
34
- * Whether the track changes button should be shown on the toolbar.
35
- * Defaults to false.
36
- */
37
- showOnToolbar?: boolean;
38
- };
45
+ pluginConfiguration?: TrackChangesPluginOptions | undefined;
39
46
  sharedState: {
40
47
  /**
41
48
  * Whether the track changes feature is currently displaying changes.
@@ -3,6 +3,9 @@ import { type ExtractInjectionAPI } from '@atlaskit/editor-common/types';
3
3
  import { type TrackChangesPlugin } from '../trackChangesPluginType';
4
4
  type TrackChangesToolbarButtonProps = {
5
5
  api: ExtractInjectionAPI<TrackChangesPlugin> | undefined;
6
+ wrapper?: React.ComponentType<{
7
+ children: React.ReactNode;
8
+ }>;
6
9
  };
7
- export declare const TrackChangesToolbarButton: ({ api }: TrackChangesToolbarButtonProps) => React.JSX.Element;
10
+ export declare const TrackChangesToolbarButton: ({ api, wrapper: Wrapper, }: TrackChangesToolbarButtonProps) => React.JSX.Element;
8
11
  export {};
@@ -1,4 +1,4 @@
1
1
  import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
2
2
  import type { RegisterComponent } from '@atlaskit/editor-toolbar-model';
3
- import type { TrackChangesPlugin } from '../trackChangesPluginType';
4
- export declare const getToolbarComponents: (api?: ExtractInjectionAPI<TrackChangesPlugin>) => RegisterComponent[];
3
+ import type { TrackChangesPlugin, TrackChangesPluginOptions } from '../trackChangesPluginType';
4
+ export declare const getToolbarComponents: (api?: ExtractInjectionAPI<TrackChangesPlugin>, options?: TrackChangesPluginOptions) => RegisterComponent[];
@@ -1,2 +1,3 @@
1
1
  export { trackChangesPlugin } from './trackChangesPlugin';
2
2
  export type { TrackChangesPlugin } from './trackChangesPluginType';
3
+ export type { TrackChangesPluginOptions } from './trackChangesPluginType';
@@ -3,6 +3,19 @@ import type { HistoryPlugin } from '@atlaskit/editor-plugin-history';
3
3
  import { type PrimaryToolbarPlugin } from '@atlaskit/editor-plugin-primary-toolbar';
4
4
  import type { ShowDiffPlugin } from '@atlaskit/editor-plugin-show-diff';
5
5
  import type { ToolbarPlugin } from '@atlaskit/editor-plugin-toolbar';
6
+ export interface TrackChangesPluginOptions {
7
+ /**
8
+ * Custom wrapper component for the track changes button.
9
+ */
10
+ ButtonWrapper?: React.ComponentType<{
11
+ children: React.ReactNode;
12
+ }>;
13
+ /**
14
+ * Whether the track changes button should be shown on the toolbar.
15
+ * Defaults to false.
16
+ */
17
+ showOnToolbar?: boolean;
18
+ }
6
19
  export type TrackChangesPlugin = NextEditorPlugin<'trackChanges', {
7
20
  commands: {
8
21
  /**
@@ -29,13 +42,7 @@ export type TrackChangesPlugin = NextEditorPlugin<'trackChanges', {
29
42
  ShowDiffPlugin,
30
43
  OptionalPlugin<ToolbarPlugin>
31
44
  ];
32
- pluginConfiguration?: {
33
- /**
34
- * Whether the track changes button should be shown on the toolbar.
35
- * Defaults to false.
36
- */
37
- showOnToolbar?: boolean;
38
- };
45
+ pluginConfiguration?: TrackChangesPluginOptions | undefined;
39
46
  sharedState: {
40
47
  /**
41
48
  * Whether the track changes feature is currently displaying changes.
@@ -3,6 +3,9 @@ import { type ExtractInjectionAPI } from '@atlaskit/editor-common/types';
3
3
  import { type TrackChangesPlugin } from '../trackChangesPluginType';
4
4
  type TrackChangesToolbarButtonProps = {
5
5
  api: ExtractInjectionAPI<TrackChangesPlugin> | undefined;
6
+ wrapper?: React.ComponentType<{
7
+ children: React.ReactNode;
8
+ }>;
6
9
  };
7
- export declare const TrackChangesToolbarButton: ({ api }: TrackChangesToolbarButtonProps) => React.JSX.Element;
10
+ export declare const TrackChangesToolbarButton: ({ api, wrapper: Wrapper, }: TrackChangesToolbarButtonProps) => React.JSX.Element;
8
11
  export {};
@@ -1,4 +1,4 @@
1
1
  import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
2
2
  import type { RegisterComponent } from '@atlaskit/editor-toolbar-model';
3
- import type { TrackChangesPlugin } from '../trackChangesPluginType';
4
- export declare const getToolbarComponents: (api?: ExtractInjectionAPI<TrackChangesPlugin>) => RegisterComponent[];
3
+ import type { TrackChangesPlugin, TrackChangesPluginOptions } from '../trackChangesPluginType';
4
+ export declare const getToolbarComponents: (api?: ExtractInjectionAPI<TrackChangesPlugin>, options?: TrackChangesPluginOptions) => RegisterComponent[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-track-changes",
3
- "version": "5.0.34",
3
+ "version": "5.1.0",
4
4
  "description": "ShowDiff plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",