UNPKG

@atlaskit/editor-plugin-collab-edit

Version:

Collab Edit plugin for @atlaskit/editor-core

43 lines 1.71 kB
import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics'; import { getDocStructure } from '@atlaskit/editor-common/core-utils'; import { sniffUserBrowserExtensions } from '@atlaskit/editor-common/utils'; export const addSynchronyErrorAnalytics = (state, tr, featureFlags, editorAnalyticsApi) => { return error => { const browserExtensions = sniffUserBrowserExtensions({ extensions: ['grammarly'] }); const payload = { action: ACTION.SYNCHRONY_ERROR, actionSubject: ACTION_SUBJECT.EDITOR, eventType: EVENT_TYPE.OPERATIONAL, attributes: { error, browserExtensions } }; if (featureFlags.synchronyErrorDocStructure) { // Ignored via go/ees005 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion payload.attributes.docStructure = getDocStructure(state.doc, { compact: true }); } editorAnalyticsApi === null || editorAnalyticsApi === void 0 ? void 0 : editorAnalyticsApi.attachAnalyticsEvent(payload)(tr); return tr; }; }; export const addSynchronyEntityAnalytics = (state, tr) => { return (type, editorAnalyticsApi) => { editorAnalyticsApi === null || editorAnalyticsApi === void 0 ? void 0 : editorAnalyticsApi.attachAnalyticsEvent({ action: type === 'error' ? ACTION.SYNCHRONY_ENTITY_ERROR : ACTION.SYNCHRONY_DISCONNECTED, actionSubject: ACTION_SUBJECT.EDITOR, eventType: EVENT_TYPE.OPERATIONAL, attributes: { // https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine onLine: navigator.onLine, visibilityState: document.visibilityState } })(tr); return tr; }; };