UNPKG

@atlaskit/editor-plugin-base

Version:

Base plugin for @atlaskit/editor-core

23 lines 961 B
import { ACTION, ACTION_SUBJECT, EVENT_TYPE, getAnalyticsEventsFromTransaction } from '@atlaskit/editor-common/analytics'; import { SafePlugin } from '@atlaskit/editor-common/safe-plugin'; const hasInvalidSteps = tr => (tr.steps || []).some(step => step.from > step.to); export default (dispatchAnalyticsEvent => { return new SafePlugin({ filterTransaction(transaction) { if (hasInvalidSteps(transaction)) { // eslint-disable-next-line no-console console.warn('The transaction was blocked because it contains invalid steps', transaction.steps); dispatchAnalyticsEvent({ action: ACTION.DISCARDED_INVALID_STEPS_FROM_TRANSACTION, actionSubject: ACTION_SUBJECT.EDITOR, attributes: { analyticsEventPayloads: getAnalyticsEventsFromTransaction(transaction) }, eventType: EVENT_TYPE.OPERATIONAL }); return false; } return true; } }); });