@atlaskit/editor-plugin-analytics
Version:
Analytics plugin for @atlaskit/editor-core
49 lines (46 loc) • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createAttachPayloadIntoTransaction = void 0;
var _steps = require("@atlaskit/adf-schema/steps");
var _analytics = require("@atlaskit/editor-common/analytics");
var _editorStateContext = require("./editor-state-context");
var _mapAttributes = require("./map-attributes");
var actionsToIgnore = [_analytics.ACTION.INVOKED, _analytics.ACTION.OPENED];
var createAttachPayloadIntoTransaction = exports.createAttachPayloadIntoTransaction = function createAttachPayloadIntoTransaction(selection) {
return function (_ref) {
var payload = _ref.payload,
tr = _ref.tr,
channel = _ref.channel;
return attachPayloadIntoTransaction({
payload: payload,
selection: selection,
tr: tr,
channel: channel
});
};
};
// This utils was taken as reference in packages/editor/editor-plugin-ai/src/analytics/utils.ts
// to create new util attachPayloadIntoTransaction in above file.
// If you make a change here, please review attachPayloadIntoTransaction in above
// file and update it as well if needed.
var attachPayloadIntoTransaction = function attachPayloadIntoTransaction(_ref2) {
var payload = _ref2.payload,
selection = _ref2.selection,
tr = _ref2.tr,
channel = _ref2.channel;
payload = (0, _editorStateContext.getStateContext)(selection, payload, tr);
payload = (0, _mapAttributes.mapActionSubjectIdToAttributes)(payload);
var storedMarks = tr.storedMarks;
var pos = tr.mapping.map(selection.$from.pos, -1);
tr.step(new _steps.AnalyticsStep([{
payload: payload,
channel: channel
}], actionsToIgnore, pos) // We need to create the step based on a position, this prevent split history for relative changes.
);
// When you add a new step all the storedMarks are removed it
if (storedMarks) {
tr.setStoredMarks(storedMarks);
}
};