@atlaskit/editor-core 189.6.0 → 189.6.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 +7 -0
- package/dist/cjs/composable-editor/editor.js +11 -191
- package/dist/cjs/composable-editor/hooks/useMemoEditorProps.js +122 -0
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/es2019/composable-editor/editor.js +7 -185
- package/dist/es2019/composable-editor/hooks/useMemoEditorProps.js +115 -0
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/esm/composable-editor/editor.js +9 -191
- package/dist/esm/composable-editor/hooks/useMemoEditorProps.js +115 -0
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/types/composable-editor/hooks/useMemoEditorProps.d.ts +6 -0
- package/dist/types-ts4.5/composable-editor/hooks/useMemoEditorProps.d.ts +6 -0
- package/package.json +5 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @atlaskit/editor-core
|
|
2
2
|
|
|
3
|
+
## 189.6.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#60029](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/60029) [`b9826ea49c47`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/b9826ea49c47) - Update dependencies that were impacted by HOT-106483 to latest.
|
|
8
|
+
- [#60013](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/60013) [`7d36e05bf828`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/7d36e05bf828) - [No Issue] Cleaning up feature flag to reduce the amount of Re-renderings Editor suffers
|
|
9
|
+
|
|
3
10
|
## 189.6.0
|
|
4
11
|
|
|
5
12
|
### Minor Changes
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.ComposableEditor = ComposableEditor;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
8
|
var _react = require("react");
|
|
10
9
|
var _react2 = require("@emotion/react");
|
|
11
10
|
var _v = _interopRequireDefault(require("uuid/v4"));
|
|
@@ -14,7 +13,6 @@ var _analytics = require("@atlaskit/editor-common/analytics");
|
|
|
14
13
|
var _ufo = require("@atlaskit/editor-common/ufo");
|
|
15
14
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
16
15
|
var _editorPluginBase = require("@atlaskit/editor-plugin-base");
|
|
17
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
16
|
var _actions = _interopRequireDefault(require("../actions"));
|
|
19
17
|
var _featureFlagsFromProps = require("../create-editor/feature-flags-from-props");
|
|
20
18
|
var _versionWrapper = require("../version-wrapper");
|
|
@@ -27,197 +25,26 @@ var _sendDurationAnalytics = _interopRequireDefault(require("./utils/sendDuratio
|
|
|
27
25
|
var _trackEditorActions = _interopRequireDefault(require("./utils/trackEditorActions"));
|
|
28
26
|
var _useMeasureEditorMountTime = _interopRequireDefault(require("./hooks/useMeasureEditorMountTime"));
|
|
29
27
|
var _useProviderFactory = _interopRequireDefault(require("./hooks/useProviderFactory"));
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
var _useMemoEditorProps = _interopRequireDefault(require("./hooks/useMemoEditorProps"));
|
|
29
|
+
/** @jsx jsx */
|
|
30
|
+
|
|
32
31
|
/**
|
|
33
32
|
* Editor wrapper that deals with the lifecycle logic of the editor
|
|
34
33
|
*/
|
|
35
34
|
function Editor(passedProps) {
|
|
36
|
-
var _editorContext$editor;
|
|
37
|
-
var defaultProps = {
|
|
38
|
-
appearance: 'comment',
|
|
39
|
-
disabled: false,
|
|
40
|
-
quickInsert: true
|
|
41
|
-
};
|
|
42
|
-
var props = _objectSpread(_objectSpread({}, defaultProps), passedProps);
|
|
43
|
-
var editorContext = (0, _EditorContext.useEditorContext)();
|
|
44
|
-
var editorActions = (0, _react.useRef)((_editorContext$editor = editorContext === null || editorContext === void 0 ? void 0 : editorContext.editorActions) !== null && _editorContext$editor !== void 0 ? _editorContext$editor : new _actions.default());
|
|
45
|
-
var startTime = (0, _react.useRef)(performance.now());
|
|
46
|
-
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
47
|
-
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
48
|
-
var experienceStore = (0, _react.useRef)();
|
|
49
|
-
var handleAnalyticsEvent = function handleAnalyticsEvent(data) {
|
|
50
|
-
return (0, _analytics.fireAnalyticsEvent)(createAnalyticsEvent)(data);
|
|
51
|
-
};
|
|
52
|
-
(0, _hooks.useConstructor)(function () {
|
|
53
|
-
(0, _trackEditorActions.default)(editorActions.current, props.performanceTracking, function (value) {
|
|
54
|
-
return handleAnalyticsEvent(value);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
var getExperienceStore = function getExperienceStore() {
|
|
58
|
-
return experienceStore.current;
|
|
59
|
-
};
|
|
60
|
-
var onEditorCreated = function onEditorCreated(instance) {
|
|
61
|
-
var _props$featureFlags;
|
|
62
|
-
editorActions.current._privateRegisterEditor(instance.view, instance.eventDispatcher, instance.transformer, function () {
|
|
63
|
-
return (0, _featureFlagsFromProps.createFeatureFlagsFromProps)(props);
|
|
64
|
-
});
|
|
65
|
-
if ((_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.ufo) {
|
|
66
|
-
var _experienceStore$curr;
|
|
67
|
-
experienceStore.current = _ufo.ExperienceStore.getInstance(instance.view);
|
|
68
|
-
(_experienceStore$curr = experienceStore.current) === null || _experienceStore$curr === void 0 || _experienceStore$curr.start(_ufo.EditorExperience.loadEditor, startTime.current);
|
|
69
|
-
}
|
|
70
|
-
if (props.onEditorReady) {
|
|
71
|
-
var _props$performanceTra, _props$featureFlags2;
|
|
72
|
-
var measureEditorReady = (props === null || props === void 0 || (_props$performanceTra = props.performanceTracking) === null || _props$performanceTra === void 0 || (_props$performanceTra = _props$performanceTra.onEditorReadyCallbackTracking) === null || _props$performanceTra === void 0 ? void 0 : _props$performanceTra.enabled) || ((_props$featureFlags2 = props.featureFlags) === null || _props$featureFlags2 === void 0 ? void 0 : _props$featureFlags2.ufo);
|
|
73
|
-
measureEditorReady && (0, _utils.startMeasure)(_measureEnum.default.ON_EDITOR_READY_CALLBACK);
|
|
74
|
-
props.onEditorReady(editorActions.current);
|
|
75
|
-
measureEditorReady && (0, _utils.stopMeasure)(_measureEnum.default.ON_EDITOR_READY_CALLBACK, (0, _sendDurationAnalytics.default)(_analytics.ACTION.ON_EDITOR_READY_CALLBACK, props, getExperienceStore, createAnalyticsEvent));
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
var onEditorDestroyed = function onEditorDestroyed(_instance) {
|
|
79
|
-
var _props$onDestroy;
|
|
80
|
-
editorActions.current._privateUnregisterEditor();
|
|
81
|
-
(_props$onDestroy = props.onDestroy) === null || _props$onDestroy === void 0 || _props$onDestroy.call(props);
|
|
82
|
-
};
|
|
83
|
-
(0, _useMeasureEditorMountTime.default)(props, getExperienceStore, createAnalyticsEvent);
|
|
84
|
-
var providerFactory = (0, _useProviderFactory.default)(props, editorActions.current, createAnalyticsEvent);
|
|
85
|
-
return (0, _react2.jsx)(_editorInternal.EditorInternal, {
|
|
86
|
-
props: props,
|
|
87
|
-
handleAnalyticsEvent: handleAnalyticsEvent,
|
|
88
|
-
createAnalyticsEvent: createAnalyticsEvent,
|
|
89
|
-
preset: props.preset,
|
|
90
|
-
handleSave: function handleSave(view) {
|
|
91
|
-
var _props$onSave;
|
|
92
|
-
return (_props$onSave = props.onSave) === null || _props$onSave === void 0 ? void 0 : _props$onSave.call(props, view);
|
|
93
|
-
},
|
|
94
|
-
editorActions: editorActions.current,
|
|
95
|
-
onEditorCreated: onEditorCreated,
|
|
96
|
-
onEditorDestroyed: onEditorDestroyed,
|
|
97
|
-
providerFactory: providerFactory
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Improved memonization for Editor wrapper that deals with the lifecycle logic of the editor
|
|
102
|
-
*/
|
|
103
|
-
function EditorButBetter(passedProps) {
|
|
104
35
|
var propsRef = (0, _react.useRef)(passedProps);
|
|
105
|
-
var props = (0,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
appearance: passedProps.appearance,
|
|
110
|
-
contentComponents: passedProps.contentComponents,
|
|
111
|
-
primaryToolbarIconBefore: passedProps.primaryToolbarIconBefore,
|
|
112
|
-
secondaryToolbarComponents: passedProps.secondaryToolbarComponents,
|
|
113
|
-
persistScrollGutter: passedProps.persistScrollGutter,
|
|
114
|
-
quickInsert: passedProps.quickInsert,
|
|
115
|
-
shouldFocus: passedProps.shouldFocus,
|
|
116
|
-
disabled: passedProps.disabled,
|
|
117
|
-
contextPanel: passedProps.contextPanel,
|
|
118
|
-
errorReporterHandler: passedProps.errorReporterHandler,
|
|
119
|
-
contentTransformerProvider: passedProps.contentTransformerProvider,
|
|
120
|
-
maxHeight: passedProps.maxHeight,
|
|
121
|
-
minHeight: passedProps.minHeight,
|
|
122
|
-
placeholder: passedProps.placeholder,
|
|
123
|
-
placeholderBracketHint: passedProps.placeholderBracketHint,
|
|
124
|
-
defaultValue: passedProps.defaultValue,
|
|
125
|
-
assistiveLabel: passedProps.assistiveLabel,
|
|
126
|
-
popupsMountPoint: passedProps.popupsMountPoint,
|
|
127
|
-
popupsBoundariesElement: passedProps.popupsBoundariesElement,
|
|
128
|
-
popupsScrollableElement: passedProps.popupsScrollableElement,
|
|
129
|
-
editorActions: passedProps.editorActions,
|
|
130
|
-
onEditorReady: passedProps.onEditorReady,
|
|
131
|
-
onDestroy: passedProps.onDestroy,
|
|
132
|
-
onChange: passedProps.onChange,
|
|
133
|
-
onCancel: passedProps.onCancel,
|
|
134
|
-
inputSamplingLimit: passedProps.inputSamplingLimit,
|
|
135
|
-
extensionProviders: passedProps.extensionProviders,
|
|
136
|
-
UNSAFE_useAnalyticsContext: passedProps.UNSAFE_useAnalyticsContext,
|
|
137
|
-
trackValidTransactions: passedProps.trackValidTransactions,
|
|
138
|
-
useStickyToolbar: passedProps.useStickyToolbar,
|
|
139
|
-
featureFlags: passedProps.featureFlags,
|
|
140
|
-
onSave: passedProps.onSave,
|
|
141
|
-
performanceTracking: passedProps.performanceTracking,
|
|
142
|
-
sanitizePrivateContent: passedProps.sanitizePrivateContent,
|
|
143
|
-
media: passedProps.media,
|
|
144
|
-
collabEdit: passedProps.collabEdit,
|
|
145
|
-
primaryToolbarComponents: passedProps.primaryToolbarComponents,
|
|
146
|
-
allowUndoRedoButtons: passedProps.allowUndoRedoButtons,
|
|
147
|
-
linking: passedProps.linking,
|
|
148
|
-
hideAvatarGroup: passedProps.hideAvatarGroup,
|
|
149
|
-
activityProvider: passedProps.activityProvider,
|
|
150
|
-
searchProvider: passedProps.searchProvider,
|
|
151
|
-
annotationProviders: passedProps.annotationProviders,
|
|
152
|
-
collabEditProvider: passedProps.collabEditProvider,
|
|
153
|
-
presenceProvider: passedProps.presenceProvider,
|
|
154
|
-
emojiProvider: passedProps.emojiProvider,
|
|
155
|
-
taskDecisionProvider: passedProps.taskDecisionProvider,
|
|
156
|
-
legacyImageUploadProvider: passedProps.legacyImageUploadProvider,
|
|
157
|
-
mentionProvider: passedProps.mentionProvider,
|
|
158
|
-
autoformattingProvider: passedProps.autoformattingProvider,
|
|
159
|
-
macroProvider: passedProps.macroProvider,
|
|
160
|
-
contextIdentifierProvider: passedProps.contextIdentifierProvider,
|
|
161
|
-
allowExpand: passedProps.allowExpand,
|
|
162
|
-
allowNestedTasks: passedProps.allowNestedTasks,
|
|
163
|
-
allowBlockType: passedProps.allowBlockType,
|
|
164
|
-
allowTasksAndDecisions: passedProps.allowTasksAndDecisions,
|
|
165
|
-
allowBreakout: passedProps.allowBreakout,
|
|
166
|
-
allowRule: passedProps.allowRule,
|
|
167
|
-
allowHelpDialog: passedProps.allowHelpDialog,
|
|
168
|
-
allowJiraIssue: passedProps.allowJiraIssue,
|
|
169
|
-
allowPanel: passedProps.allowPanel,
|
|
170
|
-
allowExtension: passedProps.allowExtension,
|
|
171
|
-
allowConfluenceInlineComment: passedProps.allowConfluenceInlineComment,
|
|
172
|
-
allowTemplatePlaceholders: passedProps.allowTemplatePlaceholders,
|
|
173
|
-
allowDate: passedProps.allowDate,
|
|
174
|
-
allowLayouts: passedProps.allowLayouts,
|
|
175
|
-
allowStatus: passedProps.allowStatus,
|
|
176
|
-
allowTextAlignment: passedProps.allowTextAlignment,
|
|
177
|
-
allowIndentation: passedProps.allowIndentation,
|
|
178
|
-
showIndentationButtons: passedProps.showIndentationButtons,
|
|
179
|
-
allowNewInsertionBehaviour: passedProps.allowNewInsertionBehaviour,
|
|
180
|
-
allowFindReplace: passedProps.allowFindReplace,
|
|
181
|
-
UNSAFE_allowBorderMark: passedProps.UNSAFE_allowBorderMark,
|
|
182
|
-
allowBorderMark: passedProps.allowBorderMark,
|
|
183
|
-
allowFragmentMark: passedProps.allowFragmentMark,
|
|
184
|
-
autoScrollIntoView: passedProps.autoScrollIntoView,
|
|
185
|
-
elementBrowser: passedProps.elementBrowser,
|
|
186
|
-
maxContentSize: passedProps.maxContentSize,
|
|
187
|
-
saveOnEnter: passedProps.saveOnEnter,
|
|
188
|
-
feedbackInfo: passedProps.feedbackInfo,
|
|
189
|
-
mention: passedProps.mention,
|
|
190
|
-
mentionInsertDisplayName: passedProps.mentionInsertDisplayName,
|
|
191
|
-
uploadErrorHandler: passedProps.uploadErrorHandler,
|
|
192
|
-
waitForMediaUpload: passedProps.waitForMediaUpload,
|
|
193
|
-
extensionHandlers: passedProps.extensionHandlers,
|
|
194
|
-
allowTextColor: passedProps.allowTextColor,
|
|
195
|
-
allowTables: passedProps.allowTables,
|
|
196
|
-
insertMenuItems: passedProps.insertMenuItems,
|
|
197
|
-
UNSAFE_cards: passedProps.UNSAFE_cards,
|
|
198
|
-
smartLinks: passedProps.smartLinks,
|
|
199
|
-
allowAnalyticsGASV3: passedProps.allowAnalyticsGASV3,
|
|
200
|
-
codeBlock: passedProps.codeBlock,
|
|
201
|
-
textFormatting: passedProps.textFormatting,
|
|
202
|
-
dangerouslyAppendPlugins: passedProps.dangerouslyAppendPlugins
|
|
203
|
-
};
|
|
204
|
-
var defaultProps = {
|
|
205
|
-
appearance: 'comment',
|
|
206
|
-
disabled: false,
|
|
207
|
-
quickInsert: true
|
|
208
|
-
};
|
|
209
|
-
var nextProps = _objectSpread(_objectSpread({}, defaultProps), allProps);
|
|
210
|
-
propsRef.current = nextProps;
|
|
211
|
-
return nextProps;
|
|
212
|
-
}, [passedProps.preset, passedProps.appearance, passedProps.contentComponents, passedProps.primaryToolbarIconBefore, passedProps.secondaryToolbarComponents, passedProps.persistScrollGutter, passedProps.quickInsert, passedProps.shouldFocus, passedProps.disabled, passedProps.contextPanel, passedProps.errorReporterHandler, passedProps.contentTransformerProvider, passedProps.maxHeight, passedProps.minHeight, passedProps.placeholder, passedProps.placeholderBracketHint, passedProps.defaultValue, passedProps.assistiveLabel, passedProps.popupsMountPoint, passedProps.popupsBoundariesElement, passedProps.popupsScrollableElement, passedProps.editorActions, passedProps.onEditorReady, passedProps.onDestroy, passedProps.onChange, passedProps.onCancel, passedProps.inputSamplingLimit, passedProps.extensionProviders, passedProps.UNSAFE_useAnalyticsContext, passedProps.trackValidTransactions, passedProps.useStickyToolbar, passedProps.featureFlags, passedProps.onSave, passedProps.performanceTracking, passedProps.sanitizePrivateContent, passedProps.media, passedProps.collabEdit, passedProps.primaryToolbarComponents, passedProps.allowUndoRedoButtons, passedProps.linking, passedProps.hideAvatarGroup, passedProps.activityProvider, passedProps.searchProvider, passedProps.annotationProviders, passedProps.collabEditProvider, passedProps.presenceProvider, passedProps.emojiProvider, passedProps.taskDecisionProvider, passedProps.legacyImageUploadProvider, passedProps.mentionProvider, passedProps.autoformattingProvider, passedProps.macroProvider, passedProps.contextIdentifierProvider, passedProps.allowExpand, passedProps.allowNestedTasks, passedProps.allowBlockType, passedProps.allowTasksAndDecisions, passedProps.allowBreakout, passedProps.allowRule, passedProps.allowHelpDialog, passedProps.allowJiraIssue, passedProps.allowPanel, passedProps.allowExtension, passedProps.allowConfluenceInlineComment, passedProps.allowTemplatePlaceholders, passedProps.allowDate, passedProps.allowLayouts, passedProps.allowStatus, passedProps.allowTextAlignment, passedProps.allowIndentation, passedProps.showIndentationButtons, passedProps.allowNewInsertionBehaviour, passedProps.allowFindReplace, passedProps.UNSAFE_allowBorderMark, passedProps.allowBorderMark, passedProps.allowFragmentMark, passedProps.autoScrollIntoView, passedProps.elementBrowser, passedProps.maxContentSize, passedProps.saveOnEnter, passedProps.feedbackInfo, passedProps.mention, passedProps.mentionInsertDisplayName, passedProps.uploadErrorHandler, passedProps.waitForMediaUpload, passedProps.extensionHandlers, passedProps.allowTextColor, passedProps.allowTables, passedProps.insertMenuItems, passedProps.UNSAFE_cards, passedProps.smartLinks, passedProps.allowAnalyticsGASV3, passedProps.codeBlock, passedProps.textFormatting, passedProps.dangerouslyAppendPlugins]);
|
|
36
|
+
var props = (0, _useMemoEditorProps.default)(passedProps);
|
|
37
|
+
(0, _react.useMemo)(function () {
|
|
38
|
+
propsRef.current = props;
|
|
39
|
+
}, [props]);
|
|
213
40
|
var editorContext = (0, _EditorContext.useEditorContext)();
|
|
214
41
|
var editorActionsPlaceholderInstance = (0, _react.useMemo)(function () {
|
|
215
42
|
return new _actions.default();
|
|
216
43
|
}, []);
|
|
217
44
|
var editorActions = editorContext.editorActions || editorActionsPlaceholderInstance;
|
|
218
45
|
var startTime = (0, _react.useRef)(performance.now());
|
|
219
|
-
var
|
|
220
|
-
createAnalyticsEvent =
|
|
46
|
+
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
47
|
+
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
221
48
|
var experienceStore = (0, _react.useRef)();
|
|
222
49
|
var handleAnalyticsEvent = (0, _react.useCallback)(function (data) {
|
|
223
50
|
(0, _analytics.fireAnalyticsEvent)(createAnalyticsEvent)(data);
|
|
@@ -241,9 +68,9 @@ function EditorButBetter(passedProps) {
|
|
|
241
68
|
featureFlags = _propsRef$current.featureFlags;
|
|
242
69
|
editorActions._privateRegisterEditor(instance.view, instance.eventDispatcher, instance.transformer, getFeatureFlagsFromRef);
|
|
243
70
|
if (featureFlags !== null && featureFlags !== void 0 && featureFlags.ufo) {
|
|
244
|
-
var _experienceStore$
|
|
71
|
+
var _experienceStore$curr;
|
|
245
72
|
experienceStore.current = _ufo.ExperienceStore.getInstance(instance.view);
|
|
246
|
-
(_experienceStore$
|
|
73
|
+
(_experienceStore$curr = experienceStore.current) === null || _experienceStore$curr === void 0 || _experienceStore$curr.start(_ufo.EditorExperience.loadEditor, startTime.current);
|
|
247
74
|
}
|
|
248
75
|
if (onEditorReady) {
|
|
249
76
|
var _performanceTracking$;
|
|
@@ -294,13 +121,6 @@ function ComposableEditor(props) {
|
|
|
294
121
|
editorSessionId: editorSessionId.current
|
|
295
122
|
};
|
|
296
123
|
}, [props.appearance]);
|
|
297
|
-
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.less-editor-props-rerendering')) {
|
|
298
|
-
return (0, _react2.jsx)(_analyticsNamespacedContext.FabricEditorAnalyticsContext
|
|
299
|
-
// @ts-expect-error Type 'string' is not assignable to type '"editorCore" | "renderer"'.
|
|
300
|
-
, {
|
|
301
|
-
data: data
|
|
302
|
-
}, (0, _react2.jsx)(EditorButBetter, props));
|
|
303
|
-
}
|
|
304
124
|
return (0, _react2.jsx)(_analyticsNamespacedContext.FabricEditorAnalyticsContext
|
|
305
125
|
// @ts-expect-error Type 'string' is not assignable to type '"editorCore" | "renderer"'.
|
|
306
126
|
, {
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useMemoEditorProps = exports.default = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
var useMemoEditorProps = exports.useMemoEditorProps = function useMemoEditorProps(passedProps) {
|
|
13
|
+
var memodProps = (0, _react.useMemo)(function () {
|
|
14
|
+
// That sounds awful but this is the only way to make sure we didn't missed any EditorProps
|
|
15
|
+
var allProps = {
|
|
16
|
+
preset: passedProps.preset,
|
|
17
|
+
appearance: passedProps.appearance,
|
|
18
|
+
contentComponents: passedProps.contentComponents,
|
|
19
|
+
primaryToolbarIconBefore: passedProps.primaryToolbarIconBefore,
|
|
20
|
+
secondaryToolbarComponents: passedProps.secondaryToolbarComponents,
|
|
21
|
+
persistScrollGutter: passedProps.persistScrollGutter,
|
|
22
|
+
quickInsert: passedProps.quickInsert,
|
|
23
|
+
shouldFocus: passedProps.shouldFocus,
|
|
24
|
+
disabled: passedProps.disabled,
|
|
25
|
+
contextPanel: passedProps.contextPanel,
|
|
26
|
+
errorReporterHandler: passedProps.errorReporterHandler,
|
|
27
|
+
contentTransformerProvider: passedProps.contentTransformerProvider,
|
|
28
|
+
maxHeight: passedProps.maxHeight,
|
|
29
|
+
minHeight: passedProps.minHeight,
|
|
30
|
+
placeholder: passedProps.placeholder,
|
|
31
|
+
placeholderBracketHint: passedProps.placeholderBracketHint,
|
|
32
|
+
defaultValue: passedProps.defaultValue,
|
|
33
|
+
assistiveLabel: passedProps.assistiveLabel,
|
|
34
|
+
popupsMountPoint: passedProps.popupsMountPoint,
|
|
35
|
+
popupsBoundariesElement: passedProps.popupsBoundariesElement,
|
|
36
|
+
popupsScrollableElement: passedProps.popupsScrollableElement,
|
|
37
|
+
editorActions: passedProps.editorActions,
|
|
38
|
+
onEditorReady: passedProps.onEditorReady,
|
|
39
|
+
onDestroy: passedProps.onDestroy,
|
|
40
|
+
onChange: passedProps.onChange,
|
|
41
|
+
onCancel: passedProps.onCancel,
|
|
42
|
+
inputSamplingLimit: passedProps.inputSamplingLimit,
|
|
43
|
+
extensionProviders: passedProps.extensionProviders,
|
|
44
|
+
UNSAFE_useAnalyticsContext: passedProps.UNSAFE_useAnalyticsContext,
|
|
45
|
+
trackValidTransactions: passedProps.trackValidTransactions,
|
|
46
|
+
useStickyToolbar: passedProps.useStickyToolbar,
|
|
47
|
+
featureFlags: passedProps.featureFlags,
|
|
48
|
+
onSave: passedProps.onSave,
|
|
49
|
+
performanceTracking: passedProps.performanceTracking,
|
|
50
|
+
sanitizePrivateContent: passedProps.sanitizePrivateContent,
|
|
51
|
+
media: passedProps.media,
|
|
52
|
+
collabEdit: passedProps.collabEdit,
|
|
53
|
+
primaryToolbarComponents: passedProps.primaryToolbarComponents,
|
|
54
|
+
allowUndoRedoButtons: passedProps.allowUndoRedoButtons,
|
|
55
|
+
linking: passedProps.linking,
|
|
56
|
+
hideAvatarGroup: passedProps.hideAvatarGroup,
|
|
57
|
+
activityProvider: passedProps.activityProvider,
|
|
58
|
+
searchProvider: passedProps.searchProvider,
|
|
59
|
+
annotationProviders: passedProps.annotationProviders,
|
|
60
|
+
collabEditProvider: passedProps.collabEditProvider,
|
|
61
|
+
presenceProvider: passedProps.presenceProvider,
|
|
62
|
+
emojiProvider: passedProps.emojiProvider,
|
|
63
|
+
taskDecisionProvider: passedProps.taskDecisionProvider,
|
|
64
|
+
legacyImageUploadProvider: passedProps.legacyImageUploadProvider,
|
|
65
|
+
mentionProvider: passedProps.mentionProvider,
|
|
66
|
+
autoformattingProvider: passedProps.autoformattingProvider,
|
|
67
|
+
macroProvider: passedProps.macroProvider,
|
|
68
|
+
contextIdentifierProvider: passedProps.contextIdentifierProvider,
|
|
69
|
+
allowExpand: passedProps.allowExpand,
|
|
70
|
+
allowNestedTasks: passedProps.allowNestedTasks,
|
|
71
|
+
allowBlockType: passedProps.allowBlockType,
|
|
72
|
+
allowTasksAndDecisions: passedProps.allowTasksAndDecisions,
|
|
73
|
+
allowBreakout: passedProps.allowBreakout,
|
|
74
|
+
allowRule: passedProps.allowRule,
|
|
75
|
+
allowHelpDialog: passedProps.allowHelpDialog,
|
|
76
|
+
allowJiraIssue: passedProps.allowJiraIssue,
|
|
77
|
+
allowPanel: passedProps.allowPanel,
|
|
78
|
+
allowExtension: passedProps.allowExtension,
|
|
79
|
+
allowConfluenceInlineComment: passedProps.allowConfluenceInlineComment,
|
|
80
|
+
allowTemplatePlaceholders: passedProps.allowTemplatePlaceholders,
|
|
81
|
+
allowDate: passedProps.allowDate,
|
|
82
|
+
allowLayouts: passedProps.allowLayouts,
|
|
83
|
+
allowStatus: passedProps.allowStatus,
|
|
84
|
+
allowTextAlignment: passedProps.allowTextAlignment,
|
|
85
|
+
allowIndentation: passedProps.allowIndentation,
|
|
86
|
+
showIndentationButtons: passedProps.showIndentationButtons,
|
|
87
|
+
allowNewInsertionBehaviour: passedProps.allowNewInsertionBehaviour,
|
|
88
|
+
allowFindReplace: passedProps.allowFindReplace,
|
|
89
|
+
UNSAFE_allowBorderMark: passedProps.UNSAFE_allowBorderMark,
|
|
90
|
+
allowBorderMark: passedProps.allowBorderMark,
|
|
91
|
+
allowFragmentMark: passedProps.allowFragmentMark,
|
|
92
|
+
autoScrollIntoView: passedProps.autoScrollIntoView,
|
|
93
|
+
elementBrowser: passedProps.elementBrowser,
|
|
94
|
+
maxContentSize: passedProps.maxContentSize,
|
|
95
|
+
saveOnEnter: passedProps.saveOnEnter,
|
|
96
|
+
feedbackInfo: passedProps.feedbackInfo,
|
|
97
|
+
mention: passedProps.mention,
|
|
98
|
+
mentionInsertDisplayName: passedProps.mentionInsertDisplayName,
|
|
99
|
+
uploadErrorHandler: passedProps.uploadErrorHandler,
|
|
100
|
+
waitForMediaUpload: passedProps.waitForMediaUpload,
|
|
101
|
+
extensionHandlers: passedProps.extensionHandlers,
|
|
102
|
+
allowTextColor: passedProps.allowTextColor,
|
|
103
|
+
allowTables: passedProps.allowTables,
|
|
104
|
+
insertMenuItems: passedProps.insertMenuItems,
|
|
105
|
+
UNSAFE_cards: passedProps.UNSAFE_cards,
|
|
106
|
+
smartLinks: passedProps.smartLinks,
|
|
107
|
+
allowAnalyticsGASV3: passedProps.allowAnalyticsGASV3,
|
|
108
|
+
codeBlock: passedProps.codeBlock,
|
|
109
|
+
textFormatting: passedProps.textFormatting,
|
|
110
|
+
dangerouslyAppendPlugins: passedProps.dangerouslyAppendPlugins
|
|
111
|
+
};
|
|
112
|
+
var defaultProps = {
|
|
113
|
+
appearance: 'comment',
|
|
114
|
+
disabled: false,
|
|
115
|
+
quickInsert: true
|
|
116
|
+
};
|
|
117
|
+
var nextProps = _objectSpread(_objectSpread({}, defaultProps), allProps);
|
|
118
|
+
return nextProps;
|
|
119
|
+
}, [passedProps.preset, passedProps.appearance, passedProps.contentComponents, passedProps.primaryToolbarIconBefore, passedProps.secondaryToolbarComponents, passedProps.persistScrollGutter, passedProps.quickInsert, passedProps.shouldFocus, passedProps.disabled, passedProps.contextPanel, passedProps.errorReporterHandler, passedProps.contentTransformerProvider, passedProps.maxHeight, passedProps.minHeight, passedProps.placeholder, passedProps.placeholderBracketHint, passedProps.defaultValue, passedProps.assistiveLabel, passedProps.popupsMountPoint, passedProps.popupsBoundariesElement, passedProps.popupsScrollableElement, passedProps.editorActions, passedProps.onEditorReady, passedProps.onDestroy, passedProps.onChange, passedProps.onCancel, passedProps.inputSamplingLimit, passedProps.extensionProviders, passedProps.UNSAFE_useAnalyticsContext, passedProps.trackValidTransactions, passedProps.useStickyToolbar, passedProps.featureFlags, passedProps.onSave, passedProps.performanceTracking, passedProps.sanitizePrivateContent, passedProps.media, passedProps.collabEdit, passedProps.primaryToolbarComponents, passedProps.allowUndoRedoButtons, passedProps.linking, passedProps.hideAvatarGroup, passedProps.activityProvider, passedProps.searchProvider, passedProps.annotationProviders, passedProps.collabEditProvider, passedProps.presenceProvider, passedProps.emojiProvider, passedProps.taskDecisionProvider, passedProps.legacyImageUploadProvider, passedProps.mentionProvider, passedProps.autoformattingProvider, passedProps.macroProvider, passedProps.contextIdentifierProvider, passedProps.allowExpand, passedProps.allowNestedTasks, passedProps.allowBlockType, passedProps.allowTasksAndDecisions, passedProps.allowBreakout, passedProps.allowRule, passedProps.allowHelpDialog, passedProps.allowJiraIssue, passedProps.allowPanel, passedProps.allowExtension, passedProps.allowConfluenceInlineComment, passedProps.allowTemplatePlaceholders, passedProps.allowDate, passedProps.allowLayouts, passedProps.allowStatus, passedProps.allowTextAlignment, passedProps.allowIndentation, passedProps.showIndentationButtons, passedProps.allowNewInsertionBehaviour, passedProps.allowFindReplace, passedProps.UNSAFE_allowBorderMark, passedProps.allowBorderMark, passedProps.allowFragmentMark, passedProps.autoScrollIntoView, passedProps.elementBrowser, passedProps.maxContentSize, passedProps.saveOnEnter, passedProps.feedbackInfo, passedProps.mention, passedProps.mentionInsertDisplayName, passedProps.uploadErrorHandler, passedProps.waitForMediaUpload, passedProps.extensionHandlers, passedProps.allowTextColor, passedProps.allowTables, passedProps.insertMenuItems, passedProps.UNSAFE_cards, passedProps.smartLinks, passedProps.allowAnalyticsGASV3, passedProps.codeBlock, passedProps.textFormatting, passedProps.dangerouslyAppendPlugins]);
|
|
120
|
+
return memodProps;
|
|
121
|
+
};
|
|
122
|
+
var _default = exports.default = useMemoEditorProps;
|
|
@@ -7,7 +7,6 @@ import { ACTION, fireAnalyticsEvent } from '@atlaskit/editor-common/analytics';
|
|
|
7
7
|
import { EditorExperience, ExperienceStore } from '@atlaskit/editor-common/ufo';
|
|
8
8
|
import { getAnalyticsAppearance, startMeasure, stopMeasure } from '@atlaskit/editor-common/utils';
|
|
9
9
|
import { basePlugin } from '@atlaskit/editor-plugin-base';
|
|
10
|
-
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
11
10
|
import EditorActions from '../actions';
|
|
12
11
|
import { createFeatureFlagsFromProps } from '../create-editor/feature-flags-from-props';
|
|
13
12
|
import { name, version } from '../version-wrapper';
|
|
@@ -20,187 +19,17 @@ import sendDurationAnalytics from './utils/sendDurationAnalytics';
|
|
|
20
19
|
import trackEditorActions from './utils/trackEditorActions';
|
|
21
20
|
import useMeasureEditorMountTime from './hooks/useMeasureEditorMountTime';
|
|
22
21
|
import useProviderFactory from './hooks/useProviderFactory';
|
|
22
|
+
import useMemoEditorProps from './hooks/useMemoEditorProps';
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Editor wrapper that deals with the lifecycle logic of the editor
|
|
26
26
|
*/
|
|
27
27
|
function Editor(passedProps) {
|
|
28
|
-
var _editorContext$editor;
|
|
29
|
-
const defaultProps = {
|
|
30
|
-
appearance: 'comment',
|
|
31
|
-
disabled: false,
|
|
32
|
-
quickInsert: true
|
|
33
|
-
};
|
|
34
|
-
const props = {
|
|
35
|
-
...defaultProps,
|
|
36
|
-
...passedProps
|
|
37
|
-
};
|
|
38
|
-
const editorContext = useEditorContext();
|
|
39
|
-
const editorActions = useRef((_editorContext$editor = editorContext === null || editorContext === void 0 ? void 0 : editorContext.editorActions) !== null && _editorContext$editor !== void 0 ? _editorContext$editor : new EditorActions());
|
|
40
|
-
const startTime = useRef(performance.now());
|
|
41
|
-
const {
|
|
42
|
-
createAnalyticsEvent
|
|
43
|
-
} = useAnalyticsEvents();
|
|
44
|
-
const experienceStore = useRef();
|
|
45
|
-
const handleAnalyticsEvent = data => fireAnalyticsEvent(createAnalyticsEvent)(data);
|
|
46
|
-
useConstructor(() => {
|
|
47
|
-
trackEditorActions(editorActions.current, props.performanceTracking, value => handleAnalyticsEvent(value));
|
|
48
|
-
});
|
|
49
|
-
const getExperienceStore = () => experienceStore.current;
|
|
50
|
-
const onEditorCreated = instance => {
|
|
51
|
-
var _props$featureFlags;
|
|
52
|
-
editorActions.current._privateRegisterEditor(instance.view, instance.eventDispatcher, instance.transformer, () => createFeatureFlagsFromProps(props));
|
|
53
|
-
if ((_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.ufo) {
|
|
54
|
-
var _experienceStore$curr;
|
|
55
|
-
experienceStore.current = ExperienceStore.getInstance(instance.view);
|
|
56
|
-
(_experienceStore$curr = experienceStore.current) === null || _experienceStore$curr === void 0 ? void 0 : _experienceStore$curr.start(EditorExperience.loadEditor, startTime.current);
|
|
57
|
-
}
|
|
58
|
-
if (props.onEditorReady) {
|
|
59
|
-
var _props$performanceTra, _props$performanceTra2, _props$featureFlags2;
|
|
60
|
-
const measureEditorReady = (props === null || props === void 0 ? void 0 : (_props$performanceTra = props.performanceTracking) === null || _props$performanceTra === void 0 ? void 0 : (_props$performanceTra2 = _props$performanceTra.onEditorReadyCallbackTracking) === null || _props$performanceTra2 === void 0 ? void 0 : _props$performanceTra2.enabled) || ((_props$featureFlags2 = props.featureFlags) === null || _props$featureFlags2 === void 0 ? void 0 : _props$featureFlags2.ufo);
|
|
61
|
-
measureEditorReady && startMeasure(measurements.ON_EDITOR_READY_CALLBACK);
|
|
62
|
-
props.onEditorReady(editorActions.current);
|
|
63
|
-
measureEditorReady && stopMeasure(measurements.ON_EDITOR_READY_CALLBACK, sendDurationAnalytics(ACTION.ON_EDITOR_READY_CALLBACK, props, getExperienceStore, createAnalyticsEvent));
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
const onEditorDestroyed = _instance => {
|
|
67
|
-
var _props$onDestroy;
|
|
68
|
-
editorActions.current._privateUnregisterEditor();
|
|
69
|
-
(_props$onDestroy = props.onDestroy) === null || _props$onDestroy === void 0 ? void 0 : _props$onDestroy.call(props);
|
|
70
|
-
};
|
|
71
|
-
useMeasureEditorMountTime(props, getExperienceStore, createAnalyticsEvent);
|
|
72
|
-
const providerFactory = useProviderFactory(props, editorActions.current, createAnalyticsEvent);
|
|
73
|
-
return jsx(EditorInternal, {
|
|
74
|
-
props: props,
|
|
75
|
-
handleAnalyticsEvent: handleAnalyticsEvent,
|
|
76
|
-
createAnalyticsEvent: createAnalyticsEvent,
|
|
77
|
-
preset: props.preset,
|
|
78
|
-
handleSave: view => {
|
|
79
|
-
var _props$onSave;
|
|
80
|
-
return (_props$onSave = props.onSave) === null || _props$onSave === void 0 ? void 0 : _props$onSave.call(props, view);
|
|
81
|
-
},
|
|
82
|
-
editorActions: editorActions.current,
|
|
83
|
-
onEditorCreated: onEditorCreated,
|
|
84
|
-
onEditorDestroyed: onEditorDestroyed,
|
|
85
|
-
providerFactory: providerFactory
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Improved memonization for Editor wrapper that deals with the lifecycle logic of the editor
|
|
90
|
-
*/
|
|
91
|
-
function EditorButBetter(passedProps) {
|
|
92
28
|
const propsRef = useRef(passedProps);
|
|
93
|
-
const props =
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
appearance: passedProps.appearance,
|
|
98
|
-
contentComponents: passedProps.contentComponents,
|
|
99
|
-
primaryToolbarIconBefore: passedProps.primaryToolbarIconBefore,
|
|
100
|
-
secondaryToolbarComponents: passedProps.secondaryToolbarComponents,
|
|
101
|
-
persistScrollGutter: passedProps.persistScrollGutter,
|
|
102
|
-
quickInsert: passedProps.quickInsert,
|
|
103
|
-
shouldFocus: passedProps.shouldFocus,
|
|
104
|
-
disabled: passedProps.disabled,
|
|
105
|
-
contextPanel: passedProps.contextPanel,
|
|
106
|
-
errorReporterHandler: passedProps.errorReporterHandler,
|
|
107
|
-
contentTransformerProvider: passedProps.contentTransformerProvider,
|
|
108
|
-
maxHeight: passedProps.maxHeight,
|
|
109
|
-
minHeight: passedProps.minHeight,
|
|
110
|
-
placeholder: passedProps.placeholder,
|
|
111
|
-
placeholderBracketHint: passedProps.placeholderBracketHint,
|
|
112
|
-
defaultValue: passedProps.defaultValue,
|
|
113
|
-
assistiveLabel: passedProps.assistiveLabel,
|
|
114
|
-
popupsMountPoint: passedProps.popupsMountPoint,
|
|
115
|
-
popupsBoundariesElement: passedProps.popupsBoundariesElement,
|
|
116
|
-
popupsScrollableElement: passedProps.popupsScrollableElement,
|
|
117
|
-
editorActions: passedProps.editorActions,
|
|
118
|
-
onEditorReady: passedProps.onEditorReady,
|
|
119
|
-
onDestroy: passedProps.onDestroy,
|
|
120
|
-
onChange: passedProps.onChange,
|
|
121
|
-
onCancel: passedProps.onCancel,
|
|
122
|
-
inputSamplingLimit: passedProps.inputSamplingLimit,
|
|
123
|
-
extensionProviders: passedProps.extensionProviders,
|
|
124
|
-
UNSAFE_useAnalyticsContext: passedProps.UNSAFE_useAnalyticsContext,
|
|
125
|
-
trackValidTransactions: passedProps.trackValidTransactions,
|
|
126
|
-
useStickyToolbar: passedProps.useStickyToolbar,
|
|
127
|
-
featureFlags: passedProps.featureFlags,
|
|
128
|
-
onSave: passedProps.onSave,
|
|
129
|
-
performanceTracking: passedProps.performanceTracking,
|
|
130
|
-
sanitizePrivateContent: passedProps.sanitizePrivateContent,
|
|
131
|
-
media: passedProps.media,
|
|
132
|
-
collabEdit: passedProps.collabEdit,
|
|
133
|
-
primaryToolbarComponents: passedProps.primaryToolbarComponents,
|
|
134
|
-
allowUndoRedoButtons: passedProps.allowUndoRedoButtons,
|
|
135
|
-
linking: passedProps.linking,
|
|
136
|
-
hideAvatarGroup: passedProps.hideAvatarGroup,
|
|
137
|
-
activityProvider: passedProps.activityProvider,
|
|
138
|
-
searchProvider: passedProps.searchProvider,
|
|
139
|
-
annotationProviders: passedProps.annotationProviders,
|
|
140
|
-
collabEditProvider: passedProps.collabEditProvider,
|
|
141
|
-
presenceProvider: passedProps.presenceProvider,
|
|
142
|
-
emojiProvider: passedProps.emojiProvider,
|
|
143
|
-
taskDecisionProvider: passedProps.taskDecisionProvider,
|
|
144
|
-
legacyImageUploadProvider: passedProps.legacyImageUploadProvider,
|
|
145
|
-
mentionProvider: passedProps.mentionProvider,
|
|
146
|
-
autoformattingProvider: passedProps.autoformattingProvider,
|
|
147
|
-
macroProvider: passedProps.macroProvider,
|
|
148
|
-
contextIdentifierProvider: passedProps.contextIdentifierProvider,
|
|
149
|
-
allowExpand: passedProps.allowExpand,
|
|
150
|
-
allowNestedTasks: passedProps.allowNestedTasks,
|
|
151
|
-
allowBlockType: passedProps.allowBlockType,
|
|
152
|
-
allowTasksAndDecisions: passedProps.allowTasksAndDecisions,
|
|
153
|
-
allowBreakout: passedProps.allowBreakout,
|
|
154
|
-
allowRule: passedProps.allowRule,
|
|
155
|
-
allowHelpDialog: passedProps.allowHelpDialog,
|
|
156
|
-
allowJiraIssue: passedProps.allowJiraIssue,
|
|
157
|
-
allowPanel: passedProps.allowPanel,
|
|
158
|
-
allowExtension: passedProps.allowExtension,
|
|
159
|
-
allowConfluenceInlineComment: passedProps.allowConfluenceInlineComment,
|
|
160
|
-
allowTemplatePlaceholders: passedProps.allowTemplatePlaceholders,
|
|
161
|
-
allowDate: passedProps.allowDate,
|
|
162
|
-
allowLayouts: passedProps.allowLayouts,
|
|
163
|
-
allowStatus: passedProps.allowStatus,
|
|
164
|
-
allowTextAlignment: passedProps.allowTextAlignment,
|
|
165
|
-
allowIndentation: passedProps.allowIndentation,
|
|
166
|
-
showIndentationButtons: passedProps.showIndentationButtons,
|
|
167
|
-
allowNewInsertionBehaviour: passedProps.allowNewInsertionBehaviour,
|
|
168
|
-
allowFindReplace: passedProps.allowFindReplace,
|
|
169
|
-
UNSAFE_allowBorderMark: passedProps.UNSAFE_allowBorderMark,
|
|
170
|
-
allowBorderMark: passedProps.allowBorderMark,
|
|
171
|
-
allowFragmentMark: passedProps.allowFragmentMark,
|
|
172
|
-
autoScrollIntoView: passedProps.autoScrollIntoView,
|
|
173
|
-
elementBrowser: passedProps.elementBrowser,
|
|
174
|
-
maxContentSize: passedProps.maxContentSize,
|
|
175
|
-
saveOnEnter: passedProps.saveOnEnter,
|
|
176
|
-
feedbackInfo: passedProps.feedbackInfo,
|
|
177
|
-
mention: passedProps.mention,
|
|
178
|
-
mentionInsertDisplayName: passedProps.mentionInsertDisplayName,
|
|
179
|
-
uploadErrorHandler: passedProps.uploadErrorHandler,
|
|
180
|
-
waitForMediaUpload: passedProps.waitForMediaUpload,
|
|
181
|
-
extensionHandlers: passedProps.extensionHandlers,
|
|
182
|
-
allowTextColor: passedProps.allowTextColor,
|
|
183
|
-
allowTables: passedProps.allowTables,
|
|
184
|
-
insertMenuItems: passedProps.insertMenuItems,
|
|
185
|
-
UNSAFE_cards: passedProps.UNSAFE_cards,
|
|
186
|
-
smartLinks: passedProps.smartLinks,
|
|
187
|
-
allowAnalyticsGASV3: passedProps.allowAnalyticsGASV3,
|
|
188
|
-
codeBlock: passedProps.codeBlock,
|
|
189
|
-
textFormatting: passedProps.textFormatting,
|
|
190
|
-
dangerouslyAppendPlugins: passedProps.dangerouslyAppendPlugins
|
|
191
|
-
};
|
|
192
|
-
const defaultProps = {
|
|
193
|
-
appearance: 'comment',
|
|
194
|
-
disabled: false,
|
|
195
|
-
quickInsert: true
|
|
196
|
-
};
|
|
197
|
-
const nextProps = {
|
|
198
|
-
...defaultProps,
|
|
199
|
-
...allProps
|
|
200
|
-
};
|
|
201
|
-
propsRef.current = nextProps;
|
|
202
|
-
return nextProps;
|
|
203
|
-
}, [passedProps.preset, passedProps.appearance, passedProps.contentComponents, passedProps.primaryToolbarIconBefore, passedProps.secondaryToolbarComponents, passedProps.persistScrollGutter, passedProps.quickInsert, passedProps.shouldFocus, passedProps.disabled, passedProps.contextPanel, passedProps.errorReporterHandler, passedProps.contentTransformerProvider, passedProps.maxHeight, passedProps.minHeight, passedProps.placeholder, passedProps.placeholderBracketHint, passedProps.defaultValue, passedProps.assistiveLabel, passedProps.popupsMountPoint, passedProps.popupsBoundariesElement, passedProps.popupsScrollableElement, passedProps.editorActions, passedProps.onEditorReady, passedProps.onDestroy, passedProps.onChange, passedProps.onCancel, passedProps.inputSamplingLimit, passedProps.extensionProviders, passedProps.UNSAFE_useAnalyticsContext, passedProps.trackValidTransactions, passedProps.useStickyToolbar, passedProps.featureFlags, passedProps.onSave, passedProps.performanceTracking, passedProps.sanitizePrivateContent, passedProps.media, passedProps.collabEdit, passedProps.primaryToolbarComponents, passedProps.allowUndoRedoButtons, passedProps.linking, passedProps.hideAvatarGroup, passedProps.activityProvider, passedProps.searchProvider, passedProps.annotationProviders, passedProps.collabEditProvider, passedProps.presenceProvider, passedProps.emojiProvider, passedProps.taskDecisionProvider, passedProps.legacyImageUploadProvider, passedProps.mentionProvider, passedProps.autoformattingProvider, passedProps.macroProvider, passedProps.contextIdentifierProvider, passedProps.allowExpand, passedProps.allowNestedTasks, passedProps.allowBlockType, passedProps.allowTasksAndDecisions, passedProps.allowBreakout, passedProps.allowRule, passedProps.allowHelpDialog, passedProps.allowJiraIssue, passedProps.allowPanel, passedProps.allowExtension, passedProps.allowConfluenceInlineComment, passedProps.allowTemplatePlaceholders, passedProps.allowDate, passedProps.allowLayouts, passedProps.allowStatus, passedProps.allowTextAlignment, passedProps.allowIndentation, passedProps.showIndentationButtons, passedProps.allowNewInsertionBehaviour, passedProps.allowFindReplace, passedProps.UNSAFE_allowBorderMark, passedProps.allowBorderMark, passedProps.allowFragmentMark, passedProps.autoScrollIntoView, passedProps.elementBrowser, passedProps.maxContentSize, passedProps.saveOnEnter, passedProps.feedbackInfo, passedProps.mention, passedProps.mentionInsertDisplayName, passedProps.uploadErrorHandler, passedProps.waitForMediaUpload, passedProps.extensionHandlers, passedProps.allowTextColor, passedProps.allowTables, passedProps.insertMenuItems, passedProps.UNSAFE_cards, passedProps.smartLinks, passedProps.allowAnalyticsGASV3, passedProps.codeBlock, passedProps.textFormatting, passedProps.dangerouslyAppendPlugins]);
|
|
29
|
+
const props = useMemoEditorProps(passedProps);
|
|
30
|
+
useMemo(() => {
|
|
31
|
+
propsRef.current = props;
|
|
32
|
+
}, [props]);
|
|
204
33
|
const editorContext = useEditorContext();
|
|
205
34
|
const editorActionsPlaceholderInstance = useMemo(() => new EditorActions(), []);
|
|
206
35
|
const editorActions = editorContext.editorActions || editorActionsPlaceholderInstance;
|
|
@@ -230,9 +59,9 @@ function EditorButBetter(passedProps) {
|
|
|
230
59
|
} = propsRef.current;
|
|
231
60
|
editorActions._privateRegisterEditor(instance.view, instance.eventDispatcher, instance.transformer, getFeatureFlagsFromRef);
|
|
232
61
|
if (featureFlags !== null && featureFlags !== void 0 && featureFlags.ufo) {
|
|
233
|
-
var _experienceStore$
|
|
62
|
+
var _experienceStore$curr;
|
|
234
63
|
experienceStore.current = ExperienceStore.getInstance(instance.view);
|
|
235
|
-
(_experienceStore$
|
|
64
|
+
(_experienceStore$curr = experienceStore.current) === null || _experienceStore$curr === void 0 ? void 0 : _experienceStore$curr.start(EditorExperience.loadEditor, startTime.current);
|
|
236
65
|
}
|
|
237
66
|
if (onEditorReady) {
|
|
238
67
|
var _performanceTracking$;
|
|
@@ -287,13 +116,6 @@ export function ComposableEditor(props) {
|
|
|
287
116
|
editorSessionId: editorSessionId.current
|
|
288
117
|
};
|
|
289
118
|
}, [props.appearance]);
|
|
290
|
-
if (getBooleanFF('platform.editor.less-editor-props-rerendering')) {
|
|
291
|
-
return jsx(FabricEditorAnalyticsContext
|
|
292
|
-
// @ts-expect-error Type 'string' is not assignable to type '"editorCore" | "renderer"'.
|
|
293
|
-
, {
|
|
294
|
-
data: data
|
|
295
|
-
}, jsx(EditorButBetter, props));
|
|
296
|
-
}
|
|
297
119
|
return jsx(FabricEditorAnalyticsContext
|
|
298
120
|
// @ts-expect-error Type 'string' is not assignable to type '"editorCore" | "renderer"'.
|
|
299
121
|
, {
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
export const useMemoEditorProps = passedProps => {
|
|
3
|
+
const memodProps = useMemo(() => {
|
|
4
|
+
// That sounds awful but this is the only way to make sure we didn't missed any EditorProps
|
|
5
|
+
const allProps = {
|
|
6
|
+
preset: passedProps.preset,
|
|
7
|
+
appearance: passedProps.appearance,
|
|
8
|
+
contentComponents: passedProps.contentComponents,
|
|
9
|
+
primaryToolbarIconBefore: passedProps.primaryToolbarIconBefore,
|
|
10
|
+
secondaryToolbarComponents: passedProps.secondaryToolbarComponents,
|
|
11
|
+
persistScrollGutter: passedProps.persistScrollGutter,
|
|
12
|
+
quickInsert: passedProps.quickInsert,
|
|
13
|
+
shouldFocus: passedProps.shouldFocus,
|
|
14
|
+
disabled: passedProps.disabled,
|
|
15
|
+
contextPanel: passedProps.contextPanel,
|
|
16
|
+
errorReporterHandler: passedProps.errorReporterHandler,
|
|
17
|
+
contentTransformerProvider: passedProps.contentTransformerProvider,
|
|
18
|
+
maxHeight: passedProps.maxHeight,
|
|
19
|
+
minHeight: passedProps.minHeight,
|
|
20
|
+
placeholder: passedProps.placeholder,
|
|
21
|
+
placeholderBracketHint: passedProps.placeholderBracketHint,
|
|
22
|
+
defaultValue: passedProps.defaultValue,
|
|
23
|
+
assistiveLabel: passedProps.assistiveLabel,
|
|
24
|
+
popupsMountPoint: passedProps.popupsMountPoint,
|
|
25
|
+
popupsBoundariesElement: passedProps.popupsBoundariesElement,
|
|
26
|
+
popupsScrollableElement: passedProps.popupsScrollableElement,
|
|
27
|
+
editorActions: passedProps.editorActions,
|
|
28
|
+
onEditorReady: passedProps.onEditorReady,
|
|
29
|
+
onDestroy: passedProps.onDestroy,
|
|
30
|
+
onChange: passedProps.onChange,
|
|
31
|
+
onCancel: passedProps.onCancel,
|
|
32
|
+
inputSamplingLimit: passedProps.inputSamplingLimit,
|
|
33
|
+
extensionProviders: passedProps.extensionProviders,
|
|
34
|
+
UNSAFE_useAnalyticsContext: passedProps.UNSAFE_useAnalyticsContext,
|
|
35
|
+
trackValidTransactions: passedProps.trackValidTransactions,
|
|
36
|
+
useStickyToolbar: passedProps.useStickyToolbar,
|
|
37
|
+
featureFlags: passedProps.featureFlags,
|
|
38
|
+
onSave: passedProps.onSave,
|
|
39
|
+
performanceTracking: passedProps.performanceTracking,
|
|
40
|
+
sanitizePrivateContent: passedProps.sanitizePrivateContent,
|
|
41
|
+
media: passedProps.media,
|
|
42
|
+
collabEdit: passedProps.collabEdit,
|
|
43
|
+
primaryToolbarComponents: passedProps.primaryToolbarComponents,
|
|
44
|
+
allowUndoRedoButtons: passedProps.allowUndoRedoButtons,
|
|
45
|
+
linking: passedProps.linking,
|
|
46
|
+
hideAvatarGroup: passedProps.hideAvatarGroup,
|
|
47
|
+
activityProvider: passedProps.activityProvider,
|
|
48
|
+
searchProvider: passedProps.searchProvider,
|
|
49
|
+
annotationProviders: passedProps.annotationProviders,
|
|
50
|
+
collabEditProvider: passedProps.collabEditProvider,
|
|
51
|
+
presenceProvider: passedProps.presenceProvider,
|
|
52
|
+
emojiProvider: passedProps.emojiProvider,
|
|
53
|
+
taskDecisionProvider: passedProps.taskDecisionProvider,
|
|
54
|
+
legacyImageUploadProvider: passedProps.legacyImageUploadProvider,
|
|
55
|
+
mentionProvider: passedProps.mentionProvider,
|
|
56
|
+
autoformattingProvider: passedProps.autoformattingProvider,
|
|
57
|
+
macroProvider: passedProps.macroProvider,
|
|
58
|
+
contextIdentifierProvider: passedProps.contextIdentifierProvider,
|
|
59
|
+
allowExpand: passedProps.allowExpand,
|
|
60
|
+
allowNestedTasks: passedProps.allowNestedTasks,
|
|
61
|
+
allowBlockType: passedProps.allowBlockType,
|
|
62
|
+
allowTasksAndDecisions: passedProps.allowTasksAndDecisions,
|
|
63
|
+
allowBreakout: passedProps.allowBreakout,
|
|
64
|
+
allowRule: passedProps.allowRule,
|
|
65
|
+
allowHelpDialog: passedProps.allowHelpDialog,
|
|
66
|
+
allowJiraIssue: passedProps.allowJiraIssue,
|
|
67
|
+
allowPanel: passedProps.allowPanel,
|
|
68
|
+
allowExtension: passedProps.allowExtension,
|
|
69
|
+
allowConfluenceInlineComment: passedProps.allowConfluenceInlineComment,
|
|
70
|
+
allowTemplatePlaceholders: passedProps.allowTemplatePlaceholders,
|
|
71
|
+
allowDate: passedProps.allowDate,
|
|
72
|
+
allowLayouts: passedProps.allowLayouts,
|
|
73
|
+
allowStatus: passedProps.allowStatus,
|
|
74
|
+
allowTextAlignment: passedProps.allowTextAlignment,
|
|
75
|
+
allowIndentation: passedProps.allowIndentation,
|
|
76
|
+
showIndentationButtons: passedProps.showIndentationButtons,
|
|
77
|
+
allowNewInsertionBehaviour: passedProps.allowNewInsertionBehaviour,
|
|
78
|
+
allowFindReplace: passedProps.allowFindReplace,
|
|
79
|
+
UNSAFE_allowBorderMark: passedProps.UNSAFE_allowBorderMark,
|
|
80
|
+
allowBorderMark: passedProps.allowBorderMark,
|
|
81
|
+
allowFragmentMark: passedProps.allowFragmentMark,
|
|
82
|
+
autoScrollIntoView: passedProps.autoScrollIntoView,
|
|
83
|
+
elementBrowser: passedProps.elementBrowser,
|
|
84
|
+
maxContentSize: passedProps.maxContentSize,
|
|
85
|
+
saveOnEnter: passedProps.saveOnEnter,
|
|
86
|
+
feedbackInfo: passedProps.feedbackInfo,
|
|
87
|
+
mention: passedProps.mention,
|
|
88
|
+
mentionInsertDisplayName: passedProps.mentionInsertDisplayName,
|
|
89
|
+
uploadErrorHandler: passedProps.uploadErrorHandler,
|
|
90
|
+
waitForMediaUpload: passedProps.waitForMediaUpload,
|
|
91
|
+
extensionHandlers: passedProps.extensionHandlers,
|
|
92
|
+
allowTextColor: passedProps.allowTextColor,
|
|
93
|
+
allowTables: passedProps.allowTables,
|
|
94
|
+
insertMenuItems: passedProps.insertMenuItems,
|
|
95
|
+
UNSAFE_cards: passedProps.UNSAFE_cards,
|
|
96
|
+
smartLinks: passedProps.smartLinks,
|
|
97
|
+
allowAnalyticsGASV3: passedProps.allowAnalyticsGASV3,
|
|
98
|
+
codeBlock: passedProps.codeBlock,
|
|
99
|
+
textFormatting: passedProps.textFormatting,
|
|
100
|
+
dangerouslyAppendPlugins: passedProps.dangerouslyAppendPlugins
|
|
101
|
+
};
|
|
102
|
+
const defaultProps = {
|
|
103
|
+
appearance: 'comment',
|
|
104
|
+
disabled: false,
|
|
105
|
+
quickInsert: true
|
|
106
|
+
};
|
|
107
|
+
const nextProps = {
|
|
108
|
+
...defaultProps,
|
|
109
|
+
...allProps
|
|
110
|
+
};
|
|
111
|
+
return nextProps;
|
|
112
|
+
}, [passedProps.preset, passedProps.appearance, passedProps.contentComponents, passedProps.primaryToolbarIconBefore, passedProps.secondaryToolbarComponents, passedProps.persistScrollGutter, passedProps.quickInsert, passedProps.shouldFocus, passedProps.disabled, passedProps.contextPanel, passedProps.errorReporterHandler, passedProps.contentTransformerProvider, passedProps.maxHeight, passedProps.minHeight, passedProps.placeholder, passedProps.placeholderBracketHint, passedProps.defaultValue, passedProps.assistiveLabel, passedProps.popupsMountPoint, passedProps.popupsBoundariesElement, passedProps.popupsScrollableElement, passedProps.editorActions, passedProps.onEditorReady, passedProps.onDestroy, passedProps.onChange, passedProps.onCancel, passedProps.inputSamplingLimit, passedProps.extensionProviders, passedProps.UNSAFE_useAnalyticsContext, passedProps.trackValidTransactions, passedProps.useStickyToolbar, passedProps.featureFlags, passedProps.onSave, passedProps.performanceTracking, passedProps.sanitizePrivateContent, passedProps.media, passedProps.collabEdit, passedProps.primaryToolbarComponents, passedProps.allowUndoRedoButtons, passedProps.linking, passedProps.hideAvatarGroup, passedProps.activityProvider, passedProps.searchProvider, passedProps.annotationProviders, passedProps.collabEditProvider, passedProps.presenceProvider, passedProps.emojiProvider, passedProps.taskDecisionProvider, passedProps.legacyImageUploadProvider, passedProps.mentionProvider, passedProps.autoformattingProvider, passedProps.macroProvider, passedProps.contextIdentifierProvider, passedProps.allowExpand, passedProps.allowNestedTasks, passedProps.allowBlockType, passedProps.allowTasksAndDecisions, passedProps.allowBreakout, passedProps.allowRule, passedProps.allowHelpDialog, passedProps.allowJiraIssue, passedProps.allowPanel, passedProps.allowExtension, passedProps.allowConfluenceInlineComment, passedProps.allowTemplatePlaceholders, passedProps.allowDate, passedProps.allowLayouts, passedProps.allowStatus, passedProps.allowTextAlignment, passedProps.allowIndentation, passedProps.showIndentationButtons, passedProps.allowNewInsertionBehaviour, passedProps.allowFindReplace, passedProps.UNSAFE_allowBorderMark, passedProps.allowBorderMark, passedProps.allowFragmentMark, passedProps.autoScrollIntoView, passedProps.elementBrowser, passedProps.maxContentSize, passedProps.saveOnEnter, passedProps.feedbackInfo, passedProps.mention, passedProps.mentionInsertDisplayName, passedProps.uploadErrorHandler, passedProps.waitForMediaUpload, passedProps.extensionHandlers, passedProps.allowTextColor, passedProps.allowTables, passedProps.insertMenuItems, passedProps.UNSAFE_cards, passedProps.smartLinks, passedProps.allowAnalyticsGASV3, passedProps.codeBlock, passedProps.textFormatting, passedProps.dangerouslyAppendPlugins]);
|
|
113
|
+
return memodProps;
|
|
114
|
+
};
|
|
115
|
+
export default useMemoEditorProps;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = "@atlaskit/editor-core";
|
|
2
|
-
export const version = "189.6.
|
|
2
|
+
export const version = "189.6.1";
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
1
|
/** @jsx jsx */
|
|
5
2
|
import { useRef, useCallback, useMemo } from 'react';
|
|
6
3
|
import { jsx } from '@emotion/react';
|
|
@@ -10,7 +7,6 @@ import { ACTION, fireAnalyticsEvent } from '@atlaskit/editor-common/analytics';
|
|
|
10
7
|
import { EditorExperience, ExperienceStore } from '@atlaskit/editor-common/ufo';
|
|
11
8
|
import { getAnalyticsAppearance, startMeasure, stopMeasure } from '@atlaskit/editor-common/utils';
|
|
12
9
|
import { basePlugin } from '@atlaskit/editor-plugin-base';
|
|
13
|
-
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
14
10
|
import EditorActions from '../actions';
|
|
15
11
|
import { createFeatureFlagsFromProps } from '../create-editor/feature-flags-from-props';
|
|
16
12
|
import { name, version } from '../version-wrapper';
|
|
@@ -23,196 +19,25 @@ import sendDurationAnalytics from './utils/sendDurationAnalytics';
|
|
|
23
19
|
import trackEditorActions from './utils/trackEditorActions';
|
|
24
20
|
import useMeasureEditorMountTime from './hooks/useMeasureEditorMountTime';
|
|
25
21
|
import useProviderFactory from './hooks/useProviderFactory';
|
|
22
|
+
import useMemoEditorProps from './hooks/useMemoEditorProps';
|
|
26
23
|
|
|
27
24
|
/**
|
|
28
25
|
* Editor wrapper that deals with the lifecycle logic of the editor
|
|
29
26
|
*/
|
|
30
27
|
function Editor(passedProps) {
|
|
31
|
-
var _editorContext$editor;
|
|
32
|
-
var defaultProps = {
|
|
33
|
-
appearance: 'comment',
|
|
34
|
-
disabled: false,
|
|
35
|
-
quickInsert: true
|
|
36
|
-
};
|
|
37
|
-
var props = _objectSpread(_objectSpread({}, defaultProps), passedProps);
|
|
38
|
-
var editorContext = useEditorContext();
|
|
39
|
-
var editorActions = useRef((_editorContext$editor = editorContext === null || editorContext === void 0 ? void 0 : editorContext.editorActions) !== null && _editorContext$editor !== void 0 ? _editorContext$editor : new EditorActions());
|
|
40
|
-
var startTime = useRef(performance.now());
|
|
41
|
-
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
42
|
-
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
43
|
-
var experienceStore = useRef();
|
|
44
|
-
var handleAnalyticsEvent = function handleAnalyticsEvent(data) {
|
|
45
|
-
return fireAnalyticsEvent(createAnalyticsEvent)(data);
|
|
46
|
-
};
|
|
47
|
-
useConstructor(function () {
|
|
48
|
-
trackEditorActions(editorActions.current, props.performanceTracking, function (value) {
|
|
49
|
-
return handleAnalyticsEvent(value);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
var getExperienceStore = function getExperienceStore() {
|
|
53
|
-
return experienceStore.current;
|
|
54
|
-
};
|
|
55
|
-
var onEditorCreated = function onEditorCreated(instance) {
|
|
56
|
-
var _props$featureFlags;
|
|
57
|
-
editorActions.current._privateRegisterEditor(instance.view, instance.eventDispatcher, instance.transformer, function () {
|
|
58
|
-
return createFeatureFlagsFromProps(props);
|
|
59
|
-
});
|
|
60
|
-
if ((_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.ufo) {
|
|
61
|
-
var _experienceStore$curr;
|
|
62
|
-
experienceStore.current = ExperienceStore.getInstance(instance.view);
|
|
63
|
-
(_experienceStore$curr = experienceStore.current) === null || _experienceStore$curr === void 0 || _experienceStore$curr.start(EditorExperience.loadEditor, startTime.current);
|
|
64
|
-
}
|
|
65
|
-
if (props.onEditorReady) {
|
|
66
|
-
var _props$performanceTra, _props$featureFlags2;
|
|
67
|
-
var measureEditorReady = (props === null || props === void 0 || (_props$performanceTra = props.performanceTracking) === null || _props$performanceTra === void 0 || (_props$performanceTra = _props$performanceTra.onEditorReadyCallbackTracking) === null || _props$performanceTra === void 0 ? void 0 : _props$performanceTra.enabled) || ((_props$featureFlags2 = props.featureFlags) === null || _props$featureFlags2 === void 0 ? void 0 : _props$featureFlags2.ufo);
|
|
68
|
-
measureEditorReady && startMeasure(measurements.ON_EDITOR_READY_CALLBACK);
|
|
69
|
-
props.onEditorReady(editorActions.current);
|
|
70
|
-
measureEditorReady && stopMeasure(measurements.ON_EDITOR_READY_CALLBACK, sendDurationAnalytics(ACTION.ON_EDITOR_READY_CALLBACK, props, getExperienceStore, createAnalyticsEvent));
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
var onEditorDestroyed = function onEditorDestroyed(_instance) {
|
|
74
|
-
var _props$onDestroy;
|
|
75
|
-
editorActions.current._privateUnregisterEditor();
|
|
76
|
-
(_props$onDestroy = props.onDestroy) === null || _props$onDestroy === void 0 || _props$onDestroy.call(props);
|
|
77
|
-
};
|
|
78
|
-
useMeasureEditorMountTime(props, getExperienceStore, createAnalyticsEvent);
|
|
79
|
-
var providerFactory = useProviderFactory(props, editorActions.current, createAnalyticsEvent);
|
|
80
|
-
return jsx(EditorInternal, {
|
|
81
|
-
props: props,
|
|
82
|
-
handleAnalyticsEvent: handleAnalyticsEvent,
|
|
83
|
-
createAnalyticsEvent: createAnalyticsEvent,
|
|
84
|
-
preset: props.preset,
|
|
85
|
-
handleSave: function handleSave(view) {
|
|
86
|
-
var _props$onSave;
|
|
87
|
-
return (_props$onSave = props.onSave) === null || _props$onSave === void 0 ? void 0 : _props$onSave.call(props, view);
|
|
88
|
-
},
|
|
89
|
-
editorActions: editorActions.current,
|
|
90
|
-
onEditorCreated: onEditorCreated,
|
|
91
|
-
onEditorDestroyed: onEditorDestroyed,
|
|
92
|
-
providerFactory: providerFactory
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Improved memonization for Editor wrapper that deals with the lifecycle logic of the editor
|
|
97
|
-
*/
|
|
98
|
-
function EditorButBetter(passedProps) {
|
|
99
28
|
var propsRef = useRef(passedProps);
|
|
100
|
-
var props =
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
appearance: passedProps.appearance,
|
|
105
|
-
contentComponents: passedProps.contentComponents,
|
|
106
|
-
primaryToolbarIconBefore: passedProps.primaryToolbarIconBefore,
|
|
107
|
-
secondaryToolbarComponents: passedProps.secondaryToolbarComponents,
|
|
108
|
-
persistScrollGutter: passedProps.persistScrollGutter,
|
|
109
|
-
quickInsert: passedProps.quickInsert,
|
|
110
|
-
shouldFocus: passedProps.shouldFocus,
|
|
111
|
-
disabled: passedProps.disabled,
|
|
112
|
-
contextPanel: passedProps.contextPanel,
|
|
113
|
-
errorReporterHandler: passedProps.errorReporterHandler,
|
|
114
|
-
contentTransformerProvider: passedProps.contentTransformerProvider,
|
|
115
|
-
maxHeight: passedProps.maxHeight,
|
|
116
|
-
minHeight: passedProps.minHeight,
|
|
117
|
-
placeholder: passedProps.placeholder,
|
|
118
|
-
placeholderBracketHint: passedProps.placeholderBracketHint,
|
|
119
|
-
defaultValue: passedProps.defaultValue,
|
|
120
|
-
assistiveLabel: passedProps.assistiveLabel,
|
|
121
|
-
popupsMountPoint: passedProps.popupsMountPoint,
|
|
122
|
-
popupsBoundariesElement: passedProps.popupsBoundariesElement,
|
|
123
|
-
popupsScrollableElement: passedProps.popupsScrollableElement,
|
|
124
|
-
editorActions: passedProps.editorActions,
|
|
125
|
-
onEditorReady: passedProps.onEditorReady,
|
|
126
|
-
onDestroy: passedProps.onDestroy,
|
|
127
|
-
onChange: passedProps.onChange,
|
|
128
|
-
onCancel: passedProps.onCancel,
|
|
129
|
-
inputSamplingLimit: passedProps.inputSamplingLimit,
|
|
130
|
-
extensionProviders: passedProps.extensionProviders,
|
|
131
|
-
UNSAFE_useAnalyticsContext: passedProps.UNSAFE_useAnalyticsContext,
|
|
132
|
-
trackValidTransactions: passedProps.trackValidTransactions,
|
|
133
|
-
useStickyToolbar: passedProps.useStickyToolbar,
|
|
134
|
-
featureFlags: passedProps.featureFlags,
|
|
135
|
-
onSave: passedProps.onSave,
|
|
136
|
-
performanceTracking: passedProps.performanceTracking,
|
|
137
|
-
sanitizePrivateContent: passedProps.sanitizePrivateContent,
|
|
138
|
-
media: passedProps.media,
|
|
139
|
-
collabEdit: passedProps.collabEdit,
|
|
140
|
-
primaryToolbarComponents: passedProps.primaryToolbarComponents,
|
|
141
|
-
allowUndoRedoButtons: passedProps.allowUndoRedoButtons,
|
|
142
|
-
linking: passedProps.linking,
|
|
143
|
-
hideAvatarGroup: passedProps.hideAvatarGroup,
|
|
144
|
-
activityProvider: passedProps.activityProvider,
|
|
145
|
-
searchProvider: passedProps.searchProvider,
|
|
146
|
-
annotationProviders: passedProps.annotationProviders,
|
|
147
|
-
collabEditProvider: passedProps.collabEditProvider,
|
|
148
|
-
presenceProvider: passedProps.presenceProvider,
|
|
149
|
-
emojiProvider: passedProps.emojiProvider,
|
|
150
|
-
taskDecisionProvider: passedProps.taskDecisionProvider,
|
|
151
|
-
legacyImageUploadProvider: passedProps.legacyImageUploadProvider,
|
|
152
|
-
mentionProvider: passedProps.mentionProvider,
|
|
153
|
-
autoformattingProvider: passedProps.autoformattingProvider,
|
|
154
|
-
macroProvider: passedProps.macroProvider,
|
|
155
|
-
contextIdentifierProvider: passedProps.contextIdentifierProvider,
|
|
156
|
-
allowExpand: passedProps.allowExpand,
|
|
157
|
-
allowNestedTasks: passedProps.allowNestedTasks,
|
|
158
|
-
allowBlockType: passedProps.allowBlockType,
|
|
159
|
-
allowTasksAndDecisions: passedProps.allowTasksAndDecisions,
|
|
160
|
-
allowBreakout: passedProps.allowBreakout,
|
|
161
|
-
allowRule: passedProps.allowRule,
|
|
162
|
-
allowHelpDialog: passedProps.allowHelpDialog,
|
|
163
|
-
allowJiraIssue: passedProps.allowJiraIssue,
|
|
164
|
-
allowPanel: passedProps.allowPanel,
|
|
165
|
-
allowExtension: passedProps.allowExtension,
|
|
166
|
-
allowConfluenceInlineComment: passedProps.allowConfluenceInlineComment,
|
|
167
|
-
allowTemplatePlaceholders: passedProps.allowTemplatePlaceholders,
|
|
168
|
-
allowDate: passedProps.allowDate,
|
|
169
|
-
allowLayouts: passedProps.allowLayouts,
|
|
170
|
-
allowStatus: passedProps.allowStatus,
|
|
171
|
-
allowTextAlignment: passedProps.allowTextAlignment,
|
|
172
|
-
allowIndentation: passedProps.allowIndentation,
|
|
173
|
-
showIndentationButtons: passedProps.showIndentationButtons,
|
|
174
|
-
allowNewInsertionBehaviour: passedProps.allowNewInsertionBehaviour,
|
|
175
|
-
allowFindReplace: passedProps.allowFindReplace,
|
|
176
|
-
UNSAFE_allowBorderMark: passedProps.UNSAFE_allowBorderMark,
|
|
177
|
-
allowBorderMark: passedProps.allowBorderMark,
|
|
178
|
-
allowFragmentMark: passedProps.allowFragmentMark,
|
|
179
|
-
autoScrollIntoView: passedProps.autoScrollIntoView,
|
|
180
|
-
elementBrowser: passedProps.elementBrowser,
|
|
181
|
-
maxContentSize: passedProps.maxContentSize,
|
|
182
|
-
saveOnEnter: passedProps.saveOnEnter,
|
|
183
|
-
feedbackInfo: passedProps.feedbackInfo,
|
|
184
|
-
mention: passedProps.mention,
|
|
185
|
-
mentionInsertDisplayName: passedProps.mentionInsertDisplayName,
|
|
186
|
-
uploadErrorHandler: passedProps.uploadErrorHandler,
|
|
187
|
-
waitForMediaUpload: passedProps.waitForMediaUpload,
|
|
188
|
-
extensionHandlers: passedProps.extensionHandlers,
|
|
189
|
-
allowTextColor: passedProps.allowTextColor,
|
|
190
|
-
allowTables: passedProps.allowTables,
|
|
191
|
-
insertMenuItems: passedProps.insertMenuItems,
|
|
192
|
-
UNSAFE_cards: passedProps.UNSAFE_cards,
|
|
193
|
-
smartLinks: passedProps.smartLinks,
|
|
194
|
-
allowAnalyticsGASV3: passedProps.allowAnalyticsGASV3,
|
|
195
|
-
codeBlock: passedProps.codeBlock,
|
|
196
|
-
textFormatting: passedProps.textFormatting,
|
|
197
|
-
dangerouslyAppendPlugins: passedProps.dangerouslyAppendPlugins
|
|
198
|
-
};
|
|
199
|
-
var defaultProps = {
|
|
200
|
-
appearance: 'comment',
|
|
201
|
-
disabled: false,
|
|
202
|
-
quickInsert: true
|
|
203
|
-
};
|
|
204
|
-
var nextProps = _objectSpread(_objectSpread({}, defaultProps), allProps);
|
|
205
|
-
propsRef.current = nextProps;
|
|
206
|
-
return nextProps;
|
|
207
|
-
}, [passedProps.preset, passedProps.appearance, passedProps.contentComponents, passedProps.primaryToolbarIconBefore, passedProps.secondaryToolbarComponents, passedProps.persistScrollGutter, passedProps.quickInsert, passedProps.shouldFocus, passedProps.disabled, passedProps.contextPanel, passedProps.errorReporterHandler, passedProps.contentTransformerProvider, passedProps.maxHeight, passedProps.minHeight, passedProps.placeholder, passedProps.placeholderBracketHint, passedProps.defaultValue, passedProps.assistiveLabel, passedProps.popupsMountPoint, passedProps.popupsBoundariesElement, passedProps.popupsScrollableElement, passedProps.editorActions, passedProps.onEditorReady, passedProps.onDestroy, passedProps.onChange, passedProps.onCancel, passedProps.inputSamplingLimit, passedProps.extensionProviders, passedProps.UNSAFE_useAnalyticsContext, passedProps.trackValidTransactions, passedProps.useStickyToolbar, passedProps.featureFlags, passedProps.onSave, passedProps.performanceTracking, passedProps.sanitizePrivateContent, passedProps.media, passedProps.collabEdit, passedProps.primaryToolbarComponents, passedProps.allowUndoRedoButtons, passedProps.linking, passedProps.hideAvatarGroup, passedProps.activityProvider, passedProps.searchProvider, passedProps.annotationProviders, passedProps.collabEditProvider, passedProps.presenceProvider, passedProps.emojiProvider, passedProps.taskDecisionProvider, passedProps.legacyImageUploadProvider, passedProps.mentionProvider, passedProps.autoformattingProvider, passedProps.macroProvider, passedProps.contextIdentifierProvider, passedProps.allowExpand, passedProps.allowNestedTasks, passedProps.allowBlockType, passedProps.allowTasksAndDecisions, passedProps.allowBreakout, passedProps.allowRule, passedProps.allowHelpDialog, passedProps.allowJiraIssue, passedProps.allowPanel, passedProps.allowExtension, passedProps.allowConfluenceInlineComment, passedProps.allowTemplatePlaceholders, passedProps.allowDate, passedProps.allowLayouts, passedProps.allowStatus, passedProps.allowTextAlignment, passedProps.allowIndentation, passedProps.showIndentationButtons, passedProps.allowNewInsertionBehaviour, passedProps.allowFindReplace, passedProps.UNSAFE_allowBorderMark, passedProps.allowBorderMark, passedProps.allowFragmentMark, passedProps.autoScrollIntoView, passedProps.elementBrowser, passedProps.maxContentSize, passedProps.saveOnEnter, passedProps.feedbackInfo, passedProps.mention, passedProps.mentionInsertDisplayName, passedProps.uploadErrorHandler, passedProps.waitForMediaUpload, passedProps.extensionHandlers, passedProps.allowTextColor, passedProps.allowTables, passedProps.insertMenuItems, passedProps.UNSAFE_cards, passedProps.smartLinks, passedProps.allowAnalyticsGASV3, passedProps.codeBlock, passedProps.textFormatting, passedProps.dangerouslyAppendPlugins]);
|
|
29
|
+
var props = useMemoEditorProps(passedProps);
|
|
30
|
+
useMemo(function () {
|
|
31
|
+
propsRef.current = props;
|
|
32
|
+
}, [props]);
|
|
208
33
|
var editorContext = useEditorContext();
|
|
209
34
|
var editorActionsPlaceholderInstance = useMemo(function () {
|
|
210
35
|
return new EditorActions();
|
|
211
36
|
}, []);
|
|
212
37
|
var editorActions = editorContext.editorActions || editorActionsPlaceholderInstance;
|
|
213
38
|
var startTime = useRef(performance.now());
|
|
214
|
-
var
|
|
215
|
-
createAnalyticsEvent =
|
|
39
|
+
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
40
|
+
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
216
41
|
var experienceStore = useRef();
|
|
217
42
|
var handleAnalyticsEvent = useCallback(function (data) {
|
|
218
43
|
fireAnalyticsEvent(createAnalyticsEvent)(data);
|
|
@@ -236,9 +61,9 @@ function EditorButBetter(passedProps) {
|
|
|
236
61
|
featureFlags = _propsRef$current.featureFlags;
|
|
237
62
|
editorActions._privateRegisterEditor(instance.view, instance.eventDispatcher, instance.transformer, getFeatureFlagsFromRef);
|
|
238
63
|
if (featureFlags !== null && featureFlags !== void 0 && featureFlags.ufo) {
|
|
239
|
-
var _experienceStore$
|
|
64
|
+
var _experienceStore$curr;
|
|
240
65
|
experienceStore.current = ExperienceStore.getInstance(instance.view);
|
|
241
|
-
(_experienceStore$
|
|
66
|
+
(_experienceStore$curr = experienceStore.current) === null || _experienceStore$curr === void 0 || _experienceStore$curr.start(EditorExperience.loadEditor, startTime.current);
|
|
242
67
|
}
|
|
243
68
|
if (onEditorReady) {
|
|
244
69
|
var _performanceTracking$;
|
|
@@ -289,13 +114,6 @@ export function ComposableEditor(props) {
|
|
|
289
114
|
editorSessionId: editorSessionId.current
|
|
290
115
|
};
|
|
291
116
|
}, [props.appearance]);
|
|
292
|
-
if (getBooleanFF('platform.editor.less-editor-props-rerendering')) {
|
|
293
|
-
return jsx(FabricEditorAnalyticsContext
|
|
294
|
-
// @ts-expect-error Type 'string' is not assignable to type '"editorCore" | "renderer"'.
|
|
295
|
-
, {
|
|
296
|
-
data: data
|
|
297
|
-
}, jsx(EditorButBetter, props));
|
|
298
|
-
}
|
|
299
117
|
return jsx(FabricEditorAnalyticsContext
|
|
300
118
|
// @ts-expect-error Type 'string' is not assignable to type '"editorCore" | "renderer"'.
|
|
301
119
|
, {
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
export var useMemoEditorProps = function useMemoEditorProps(passedProps) {
|
|
6
|
+
var memodProps = useMemo(function () {
|
|
7
|
+
// That sounds awful but this is the only way to make sure we didn't missed any EditorProps
|
|
8
|
+
var allProps = {
|
|
9
|
+
preset: passedProps.preset,
|
|
10
|
+
appearance: passedProps.appearance,
|
|
11
|
+
contentComponents: passedProps.contentComponents,
|
|
12
|
+
primaryToolbarIconBefore: passedProps.primaryToolbarIconBefore,
|
|
13
|
+
secondaryToolbarComponents: passedProps.secondaryToolbarComponents,
|
|
14
|
+
persistScrollGutter: passedProps.persistScrollGutter,
|
|
15
|
+
quickInsert: passedProps.quickInsert,
|
|
16
|
+
shouldFocus: passedProps.shouldFocus,
|
|
17
|
+
disabled: passedProps.disabled,
|
|
18
|
+
contextPanel: passedProps.contextPanel,
|
|
19
|
+
errorReporterHandler: passedProps.errorReporterHandler,
|
|
20
|
+
contentTransformerProvider: passedProps.contentTransformerProvider,
|
|
21
|
+
maxHeight: passedProps.maxHeight,
|
|
22
|
+
minHeight: passedProps.minHeight,
|
|
23
|
+
placeholder: passedProps.placeholder,
|
|
24
|
+
placeholderBracketHint: passedProps.placeholderBracketHint,
|
|
25
|
+
defaultValue: passedProps.defaultValue,
|
|
26
|
+
assistiveLabel: passedProps.assistiveLabel,
|
|
27
|
+
popupsMountPoint: passedProps.popupsMountPoint,
|
|
28
|
+
popupsBoundariesElement: passedProps.popupsBoundariesElement,
|
|
29
|
+
popupsScrollableElement: passedProps.popupsScrollableElement,
|
|
30
|
+
editorActions: passedProps.editorActions,
|
|
31
|
+
onEditorReady: passedProps.onEditorReady,
|
|
32
|
+
onDestroy: passedProps.onDestroy,
|
|
33
|
+
onChange: passedProps.onChange,
|
|
34
|
+
onCancel: passedProps.onCancel,
|
|
35
|
+
inputSamplingLimit: passedProps.inputSamplingLimit,
|
|
36
|
+
extensionProviders: passedProps.extensionProviders,
|
|
37
|
+
UNSAFE_useAnalyticsContext: passedProps.UNSAFE_useAnalyticsContext,
|
|
38
|
+
trackValidTransactions: passedProps.trackValidTransactions,
|
|
39
|
+
useStickyToolbar: passedProps.useStickyToolbar,
|
|
40
|
+
featureFlags: passedProps.featureFlags,
|
|
41
|
+
onSave: passedProps.onSave,
|
|
42
|
+
performanceTracking: passedProps.performanceTracking,
|
|
43
|
+
sanitizePrivateContent: passedProps.sanitizePrivateContent,
|
|
44
|
+
media: passedProps.media,
|
|
45
|
+
collabEdit: passedProps.collabEdit,
|
|
46
|
+
primaryToolbarComponents: passedProps.primaryToolbarComponents,
|
|
47
|
+
allowUndoRedoButtons: passedProps.allowUndoRedoButtons,
|
|
48
|
+
linking: passedProps.linking,
|
|
49
|
+
hideAvatarGroup: passedProps.hideAvatarGroup,
|
|
50
|
+
activityProvider: passedProps.activityProvider,
|
|
51
|
+
searchProvider: passedProps.searchProvider,
|
|
52
|
+
annotationProviders: passedProps.annotationProviders,
|
|
53
|
+
collabEditProvider: passedProps.collabEditProvider,
|
|
54
|
+
presenceProvider: passedProps.presenceProvider,
|
|
55
|
+
emojiProvider: passedProps.emojiProvider,
|
|
56
|
+
taskDecisionProvider: passedProps.taskDecisionProvider,
|
|
57
|
+
legacyImageUploadProvider: passedProps.legacyImageUploadProvider,
|
|
58
|
+
mentionProvider: passedProps.mentionProvider,
|
|
59
|
+
autoformattingProvider: passedProps.autoformattingProvider,
|
|
60
|
+
macroProvider: passedProps.macroProvider,
|
|
61
|
+
contextIdentifierProvider: passedProps.contextIdentifierProvider,
|
|
62
|
+
allowExpand: passedProps.allowExpand,
|
|
63
|
+
allowNestedTasks: passedProps.allowNestedTasks,
|
|
64
|
+
allowBlockType: passedProps.allowBlockType,
|
|
65
|
+
allowTasksAndDecisions: passedProps.allowTasksAndDecisions,
|
|
66
|
+
allowBreakout: passedProps.allowBreakout,
|
|
67
|
+
allowRule: passedProps.allowRule,
|
|
68
|
+
allowHelpDialog: passedProps.allowHelpDialog,
|
|
69
|
+
allowJiraIssue: passedProps.allowJiraIssue,
|
|
70
|
+
allowPanel: passedProps.allowPanel,
|
|
71
|
+
allowExtension: passedProps.allowExtension,
|
|
72
|
+
allowConfluenceInlineComment: passedProps.allowConfluenceInlineComment,
|
|
73
|
+
allowTemplatePlaceholders: passedProps.allowTemplatePlaceholders,
|
|
74
|
+
allowDate: passedProps.allowDate,
|
|
75
|
+
allowLayouts: passedProps.allowLayouts,
|
|
76
|
+
allowStatus: passedProps.allowStatus,
|
|
77
|
+
allowTextAlignment: passedProps.allowTextAlignment,
|
|
78
|
+
allowIndentation: passedProps.allowIndentation,
|
|
79
|
+
showIndentationButtons: passedProps.showIndentationButtons,
|
|
80
|
+
allowNewInsertionBehaviour: passedProps.allowNewInsertionBehaviour,
|
|
81
|
+
allowFindReplace: passedProps.allowFindReplace,
|
|
82
|
+
UNSAFE_allowBorderMark: passedProps.UNSAFE_allowBorderMark,
|
|
83
|
+
allowBorderMark: passedProps.allowBorderMark,
|
|
84
|
+
allowFragmentMark: passedProps.allowFragmentMark,
|
|
85
|
+
autoScrollIntoView: passedProps.autoScrollIntoView,
|
|
86
|
+
elementBrowser: passedProps.elementBrowser,
|
|
87
|
+
maxContentSize: passedProps.maxContentSize,
|
|
88
|
+
saveOnEnter: passedProps.saveOnEnter,
|
|
89
|
+
feedbackInfo: passedProps.feedbackInfo,
|
|
90
|
+
mention: passedProps.mention,
|
|
91
|
+
mentionInsertDisplayName: passedProps.mentionInsertDisplayName,
|
|
92
|
+
uploadErrorHandler: passedProps.uploadErrorHandler,
|
|
93
|
+
waitForMediaUpload: passedProps.waitForMediaUpload,
|
|
94
|
+
extensionHandlers: passedProps.extensionHandlers,
|
|
95
|
+
allowTextColor: passedProps.allowTextColor,
|
|
96
|
+
allowTables: passedProps.allowTables,
|
|
97
|
+
insertMenuItems: passedProps.insertMenuItems,
|
|
98
|
+
UNSAFE_cards: passedProps.UNSAFE_cards,
|
|
99
|
+
smartLinks: passedProps.smartLinks,
|
|
100
|
+
allowAnalyticsGASV3: passedProps.allowAnalyticsGASV3,
|
|
101
|
+
codeBlock: passedProps.codeBlock,
|
|
102
|
+
textFormatting: passedProps.textFormatting,
|
|
103
|
+
dangerouslyAppendPlugins: passedProps.dangerouslyAppendPlugins
|
|
104
|
+
};
|
|
105
|
+
var defaultProps = {
|
|
106
|
+
appearance: 'comment',
|
|
107
|
+
disabled: false,
|
|
108
|
+
quickInsert: true
|
|
109
|
+
};
|
|
110
|
+
var nextProps = _objectSpread(_objectSpread({}, defaultProps), allProps);
|
|
111
|
+
return nextProps;
|
|
112
|
+
}, [passedProps.preset, passedProps.appearance, passedProps.contentComponents, passedProps.primaryToolbarIconBefore, passedProps.secondaryToolbarComponents, passedProps.persistScrollGutter, passedProps.quickInsert, passedProps.shouldFocus, passedProps.disabled, passedProps.contextPanel, passedProps.errorReporterHandler, passedProps.contentTransformerProvider, passedProps.maxHeight, passedProps.minHeight, passedProps.placeholder, passedProps.placeholderBracketHint, passedProps.defaultValue, passedProps.assistiveLabel, passedProps.popupsMountPoint, passedProps.popupsBoundariesElement, passedProps.popupsScrollableElement, passedProps.editorActions, passedProps.onEditorReady, passedProps.onDestroy, passedProps.onChange, passedProps.onCancel, passedProps.inputSamplingLimit, passedProps.extensionProviders, passedProps.UNSAFE_useAnalyticsContext, passedProps.trackValidTransactions, passedProps.useStickyToolbar, passedProps.featureFlags, passedProps.onSave, passedProps.performanceTracking, passedProps.sanitizePrivateContent, passedProps.media, passedProps.collabEdit, passedProps.primaryToolbarComponents, passedProps.allowUndoRedoButtons, passedProps.linking, passedProps.hideAvatarGroup, passedProps.activityProvider, passedProps.searchProvider, passedProps.annotationProviders, passedProps.collabEditProvider, passedProps.presenceProvider, passedProps.emojiProvider, passedProps.taskDecisionProvider, passedProps.legacyImageUploadProvider, passedProps.mentionProvider, passedProps.autoformattingProvider, passedProps.macroProvider, passedProps.contextIdentifierProvider, passedProps.allowExpand, passedProps.allowNestedTasks, passedProps.allowBlockType, passedProps.allowTasksAndDecisions, passedProps.allowBreakout, passedProps.allowRule, passedProps.allowHelpDialog, passedProps.allowJiraIssue, passedProps.allowPanel, passedProps.allowExtension, passedProps.allowConfluenceInlineComment, passedProps.allowTemplatePlaceholders, passedProps.allowDate, passedProps.allowLayouts, passedProps.allowStatus, passedProps.allowTextAlignment, passedProps.allowIndentation, passedProps.showIndentationButtons, passedProps.allowNewInsertionBehaviour, passedProps.allowFindReplace, passedProps.UNSAFE_allowBorderMark, passedProps.allowBorderMark, passedProps.allowFragmentMark, passedProps.autoScrollIntoView, passedProps.elementBrowser, passedProps.maxContentSize, passedProps.saveOnEnter, passedProps.feedbackInfo, passedProps.mention, passedProps.mentionInsertDisplayName, passedProps.uploadErrorHandler, passedProps.waitForMediaUpload, passedProps.extensionHandlers, passedProps.allowTextColor, passedProps.allowTables, passedProps.insertMenuItems, passedProps.UNSAFE_cards, passedProps.smartLinks, passedProps.allowAnalyticsGASV3, passedProps.codeBlock, passedProps.textFormatting, passedProps.dangerouslyAppendPlugins]);
|
|
113
|
+
return memodProps;
|
|
114
|
+
};
|
|
115
|
+
export default useMemoEditorProps;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export var name = "@atlaskit/editor-core";
|
|
2
|
-
export var version = "189.6.
|
|
2
|
+
export var version = "189.6.1";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EditorProps, EditorNextProps } from '../../types/editor-props';
|
|
2
|
+
export type Complete<T> = {
|
|
3
|
+
[P in keyof Required<T>]: Pick<T, P> extends Required<Pick<T, P>> ? T[P] : T[P] | undefined;
|
|
4
|
+
};
|
|
5
|
+
export declare const useMemoEditorProps: (passedProps: EditorProps & EditorNextProps) => EditorProps & EditorNextProps;
|
|
6
|
+
export default useMemoEditorProps;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EditorProps, EditorNextProps } from '../../types/editor-props';
|
|
2
|
+
export type Complete<T> = {
|
|
3
|
+
[P in keyof Required<T>]: Pick<T, P> extends Required<Pick<T, P>> ? T[P] : T[P] | undefined;
|
|
4
|
+
};
|
|
5
|
+
export declare const useMemoEditorProps: (passedProps: EditorProps & EditorNextProps) => EditorProps & EditorNextProps;
|
|
6
|
+
export default useMemoEditorProps;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-core",
|
|
3
|
-
"version": "189.6.
|
|
3
|
+
"version": "189.6.1",
|
|
4
4
|
"description": "A package contains Atlassian editor core functionality",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"@atlaskit/button": "^16.18.0",
|
|
51
51
|
"@atlaskit/checkbox": "^13.0.0",
|
|
52
52
|
"@atlaskit/date": "^0.10.0",
|
|
53
|
-
"@atlaskit/datetime-picker": "^13.0.
|
|
53
|
+
"@atlaskit/datetime-picker": "^13.0.3",
|
|
54
54
|
"@atlaskit/editor-common": "^76.26.0",
|
|
55
55
|
"@atlaskit/editor-json-transformer": "^8.10.0",
|
|
56
56
|
"@atlaskit/editor-markdown-transformer": "^5.2.5",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"@atlaskit/editor-tables": "^2.3.0",
|
|
120
120
|
"@atlaskit/emoji": "^67.6.0",
|
|
121
121
|
"@atlaskit/empty-state": "^7.6.0",
|
|
122
|
-
"@atlaskit/form": "^9.0.
|
|
122
|
+
"@atlaskit/form": "^9.0.3",
|
|
123
123
|
"@atlaskit/icon": "^22.0.0",
|
|
124
124
|
"@atlaskit/logo": "^13.14.0",
|
|
125
125
|
"@atlaskit/media-card": "^77.5.0",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"@atlaskit/prosemirror-collab": "^0.2.0",
|
|
131
131
|
"@atlaskit/radio": "^6.0.0",
|
|
132
132
|
"@atlaskit/section-message": "^6.4.0",
|
|
133
|
-
"@atlaskit/select": "^17.0.
|
|
133
|
+
"@atlaskit/select": "^17.0.3",
|
|
134
134
|
"@atlaskit/smart-card": "^26.43.0",
|
|
135
135
|
"@atlaskit/smart-user-picker": "^6.4.0",
|
|
136
136
|
"@atlaskit/spinner": "^16.0.0",
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
"@af/visual-regression": "*",
|
|
172
172
|
"@atlaskit/analytics-listeners": "^8.7.0",
|
|
173
173
|
"@atlaskit/code": "^15.1.0",
|
|
174
|
-
"@atlaskit/collab-provider": "9.
|
|
174
|
+
"@atlaskit/collab-provider": "9.20.0",
|
|
175
175
|
"@atlaskit/dropdown-menu": "^12.1.0",
|
|
176
176
|
"@atlaskit/editor-extension-dropbox": "^0.4.0",
|
|
177
177
|
"@atlaskit/editor-palette": "1.5.2",
|
|
@@ -241,9 +241,6 @@
|
|
|
241
241
|
},
|
|
242
242
|
"prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.1",
|
|
243
243
|
"platform-feature-flags": {
|
|
244
|
-
"platform.editor.less-editor-props-rerendering": {
|
|
245
|
-
"type": "boolean"
|
|
246
|
-
},
|
|
247
244
|
"platform.editor.custom-table-width": {
|
|
248
245
|
"type": "boolean"
|
|
249
246
|
},
|