@atlaskit/editor-plugin-highlight
Version:
Highlight plugin for @atlaskit/editor-core
45 lines • 1.69 kB
JavaScript
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
}
};
};