@atlaskit/editor-plugin-highlight
Version:
Highlight plugin for @atlaskit/editor-core
57 lines (56 loc) • 2.21 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.togglePalette = exports.setPalette = void 0;
var _analytics = require("@atlaskit/editor-common/analytics");
var _main = require("../pm-plugins/main");
var togglePalette = exports.togglePalette = function togglePalette(api) {
return function (_ref) {
var inputMethod = _ref.inputMethod;
return function (state, dispatch) {
var _highlightPluginKey$g;
var isPaletteOpen = (_highlightPluginKey$g = _main.highlightPluginKey.getState(state)) === null || _highlightPluginKey$g === void 0 ? void 0 : _highlightPluginKey$g.isPaletteOpen;
return setPalette(api)({
isPaletteOpen: !isPaletteOpen,
inputMethod: inputMethod
})(state, dispatch);
};
};
};
var setPalette = exports.setPalette = function setPalette(api) {
return function (_ref2) {
var isPaletteOpen = _ref2.isPaletteOpen,
inputMethod = _ref2.inputMethod;
return function (state, dispatch) {
var _highlightPluginKey$g2;
var isDisabled = (_highlightPluginKey$g2 = _main.highlightPluginKey.getState(state)) === null || _highlightPluginKey$g2 === void 0 ? void 0 : _highlightPluginKey$g2.disabled;
if (!isDisabled) {
var _api$analytics;
var tr = state.tr;
tr.setMeta(_main.highlightPluginKey, {
type: _main.HighlightPluginAction.SET_PALETTE,
isPaletteOpen: isPaletteOpen
});
(_api$analytics = api.analytics) === null || _api$analytics === void 0 || _api$analytics.actions.attachAnalyticsEvent(createAnalyticsEvent(isPaletteOpen, inputMethod))(tr);
tr.setMeta('addToHistory', false);
if (dispatch) {
dispatch(tr);
}
return true;
}
return false;
};
};
};
var createAnalyticsEvent = function createAnalyticsEvent(isPaletteOpen, inputMethod) {
return {
action: isPaletteOpen ? _analytics.ACTION.OPENED : _analytics.ACTION.CLOSED,
actionSubject: _analytics.ACTION_SUBJECT.TOOLBAR,
actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_BACKGROUND_COLOR,
eventType: _analytics.EVENT_TYPE.TRACK,
attributes: {
inputMethod: inputMethod
}
};
};