@atlaskit/editor-plugin-collab-edit
Version:
Collab Edit plugin for @atlaskit/editor-core
74 lines (72 loc) • 3.97 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getAgentEditShimmerNotShownPayload = exports.addSynchronyErrorAnalytics = exports.addSynchronyEntityAnalytics = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _analytics = require("@atlaskit/editor-common/analytics");
var _coreUtils = require("@atlaskit/editor-common/core-utils");
var _utils = require("@atlaskit/editor-common/utils");
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; }
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; }
var addSynchronyErrorAnalytics = exports.addSynchronyErrorAnalytics = function addSynchronyErrorAnalytics(state, tr, featureFlags, editorAnalyticsApi) {
return function (error) {
var browserExtensions = (0, _utils.sniffUserBrowserExtensions)({
extensions: ['grammarly']
});
var payload = {
action: _analytics.ACTION.SYNCHRONY_ERROR,
actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
eventType: _analytics.EVENT_TYPE.OPERATIONAL,
attributes: {
error: error,
browserExtensions: browserExtensions
}
};
if (featureFlags.synchronyErrorDocStructure) {
// Ignored via go/ees005
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
payload.attributes.docStructure = (0, _coreUtils.getDocStructure)(state.doc, {
compact: true
});
}
editorAnalyticsApi === null || editorAnalyticsApi === void 0 || editorAnalyticsApi.attachAnalyticsEvent(payload)(tr);
return tr;
};
};
/**
* Builds the `agentEditShimmerNotShown` operational event fired when an agent-authored edit applied
* instantly without the skeleton shimmer/telepointer. Success is the ABSENCE of this event; a
* neutral action + `reason` keeps expected degrades out of error dashboards. Attributes are non-PII:
* only the agent kind and a sanitised error name/message (never the raw Error or any doc content).
*/
var getAgentEditShimmerNotShownPayload = exports.getAgentEditShimmerNotShownPayload = function getAgentEditShimmerNotShownPayload(reason, agentType, error) {
return {
action: _analytics.ACTION.AGENT_EDIT_SHIMMER_NOT_SHOWN,
actionSubject: _analytics.ACTION_SUBJECT.COLLAB,
eventType: _analytics.EVENT_TYPE.OPERATIONAL,
attributes: _objectSpread(_objectSpread({
reason: reason
}, agentType ? {
agentType: agentType
} : {}), error ? {
error: "".concat(error.name, ": ").concat(error.message)
} : {})
};
};
var addSynchronyEntityAnalytics = exports.addSynchronyEntityAnalytics = function addSynchronyEntityAnalytics(state, tr) {
return function (type, editorAnalyticsApi) {
editorAnalyticsApi === null || editorAnalyticsApi === void 0 || editorAnalyticsApi.attachAnalyticsEvent({
action: type === 'error' ? _analytics.ACTION.SYNCHRONY_ENTITY_ERROR : _analytics.ACTION.SYNCHRONY_DISCONNECTED,
actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
eventType: _analytics.EVENT_TYPE.OPERATIONAL,
attributes: {
// https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine
onLine: navigator.onLine,
visibilityState: document.visibilityState
}
})(tr);
return tr;
};
};