@atlaskit/editor-plugin-card
Version:
Card plugin for @atlaskit/editor-core
64 lines • 2.13 kB
JavaScript
import { UIAnalyticsEvent } from '@atlaskit/analytics-next';
import { ACTION, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
/**
* If the metadata is for a history event,
* returns undo/redo instead of instead of what fn(metadata) would have otherwise
* returned
*/
var withHistoryMethod = function withHistoryMethod(fn) {
return function (metadata) {
var isUndo = metadata.isUndo,
isRedo = metadata.isRedo;
if (isUndo) {
return 'undo';
}
if (isRedo) {
return 'redo';
}
return fn(metadata);
};
};
export var getMethod = withHistoryMethod(function (_ref) {
var _payload;
var inputMethod = _ref.inputMethod,
sourceEvent = _ref.sourceEvent;
inputMethod = inputMethod !== null && inputMethod !== void 0 ? inputMethod : sourceEvent === null || sourceEvent === void 0 || (_payload = sourceEvent.payload) === null || _payload === void 0 || (_payload = _payload.attributes) === null || _payload === void 0 ? void 0 : _payload.inputMethod;
switch (inputMethod) {
case INPUT_METHOD.CLIPBOARD:
return 'editor_paste';
case INPUT_METHOD.FLOATING_TB:
return 'editor_floatingToolbar';
case INPUT_METHOD.AUTO_DETECT:
case INPUT_METHOD.FORMATTING:
return 'editor_type';
case INPUT_METHOD.TYPEAHEAD:
return 'linkpicker_searchResult';
case INPUT_METHOD.MANUAL:
return 'linkpicker_manual';
case INPUT_METHOD.DATASOURCE:
return 'datasource_config';
default:
return 'unknown';
}
});
export var getUpdateType = withHistoryMethod(function (_ref2) {
var action = _ref2.action;
switch (action) {
case ACTION.CHANGED_TYPE:
return 'display_update';
case ACTION.UPDATED:
return 'link_update';
default:
return 'unknown';
}
});
export var getDeleteType = withHistoryMethod(function (_ref3) {
var action = _ref3.action;
if (action === ACTION.UNLINK) {
return 'unlink';
}
return 'delete';
});
export var getSourceEventFromMetadata = function getSourceEventFromMetadata(metadata) {
return metadata.sourceEvent instanceof UIAnalyticsEvent ? metadata.sourceEvent : null;
};