@atlaskit/editor-plugin-user-preferences
Version:
UserPreferences plugin for @atlaskit/editor-core
72 lines (70 loc) • 2.58 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.updateUserPreference = exports.overrideUserPreference = exports.clearOverrideUserPreference = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _analytics = require("@atlaskit/editor-common/analytics");
var _monitoring = require("@atlaskit/editor-common/monitoring");
var _main = require("./main");
var overrideUserPreference = exports.overrideUserPreference = function overrideUserPreference(_ref) {
var key = _ref.key,
value = _ref.value;
return function (_ref2) {
var tr = _ref2.tr;
tr.setMeta(_main.userPreferencesPluginKey, {
override: {
key: key,
value: value
}
});
return tr;
};
};
var clearOverrideUserPreference = exports.clearOverrideUserPreference = function clearOverrideUserPreference(_ref3) {
var key = _ref3.key;
return function (_ref4) {
var tr = _ref4.tr;
tr.setMeta(_main.userPreferencesPluginKey, {
override: {
key: key,
value: null
}
});
return tr;
};
};
var updateUserPreference = exports.updateUserPreference = function updateUserPreference(_ref5) {
var key = _ref5.key,
value = _ref5.value,
userPreferencesProvider = _ref5.userPreferencesProvider,
editorAnalyticsApi = _ref5.editorAnalyticsApi;
return function (_ref6) {
var tr = _ref6.tr;
try {
userPreferencesProvider === null || userPreferencesProvider === void 0 || userPreferencesProvider.updatePreference(key, value);
} catch (error) {
(0, _monitoring.logException)(error, {
location: 'editor-plugin-user-preferences/userPreferencesPlugin'
});
}
// If the userPreferencesProvider is not available,
// the plugin's state will be updated to operate in 'in memory' mode.
tr.setMeta(_main.userPreferencesPluginKey, {
preferences: (0, _defineProperty2.default)({}, key, value)
});
if (key === 'toolbarDockingPosition') {
editorAnalyticsApi === null || editorAnalyticsApi === void 0 || editorAnalyticsApi.attachAnalyticsEvent({
action: _analytics.ACTION.UPDATED,
actionSubject: _analytics.ACTION_SUBJECT.USER_PREFERENCES,
actionSubjectId: _analytics.ACTION_SUBJECT_ID.SELECTION_TOOLBAR_PREFERENCES,
attributes: {
toolbarDocking: value
},
eventType: _analytics.EVENT_TYPE.TRACK
})(tr);
}
return tr;
};
};