UNPKG

@atlaskit/editor-plugin-highlight

Version:

Highlight plugin for @atlaskit/editor-core

45 lines 1.69 kB
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics'; import { HighlightPluginAction, highlightPluginKey } from '../pm-plugins/main'; export const togglePalette = api => ({ inputMethod }) => (state, dispatch) => { var _highlightPluginKey$g; const isPaletteOpen = (_highlightPluginKey$g = highlightPluginKey.getState(state)) === null || _highlightPluginKey$g === void 0 ? void 0 : _highlightPluginKey$g.isPaletteOpen; return setPalette(api)({ isPaletteOpen: !isPaletteOpen, inputMethod })(state, dispatch); }; export const setPalette = api => ({ isPaletteOpen, inputMethod }) => (state, dispatch) => { var _highlightPluginKey$g2; const isDisabled = (_highlightPluginKey$g2 = highlightPluginKey.getState(state)) === null || _highlightPluginKey$g2 === void 0 ? void 0 : _highlightPluginKey$g2.disabled; if (!isDisabled) { var _api$analytics; const tr = state.tr; tr.setMeta(highlightPluginKey, { type: HighlightPluginAction.SET_PALETTE, isPaletteOpen }); (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions.attachAnalyticsEvent(createAnalyticsEvent(isPaletteOpen, inputMethod))(tr); tr.setMeta('addToHistory', false); if (dispatch) { dispatch(tr); } return true; } return false; }; const createAnalyticsEvent = (isPaletteOpen, inputMethod) => { return { action: isPaletteOpen ? ACTION.OPENED : ACTION.CLOSED, actionSubject: ACTION_SUBJECT.TOOLBAR, actionSubjectId: ACTION_SUBJECT_ID.FORMAT_BACKGROUND_COLOR, eventType: EVENT_TYPE.TRACK, attributes: { inputMethod } }; };