@atlaskit/editor-plugin-user-preferences
Version:
UserPreferences plugin for @atlaskit/editor-core
65 lines (64 loc) • 2.17 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
import { logException } from '@atlaskit/editor-common/monitoring';
import { userPreferencesPluginKey } from './main';
export var overrideUserPreference = function overrideUserPreference(_ref) {
var key = _ref.key,
value = _ref.value;
return function (_ref2) {
var tr = _ref2.tr;
tr.setMeta(userPreferencesPluginKey, {
override: {
key: key,
value: value
}
});
return tr;
};
};
export var clearOverrideUserPreference = function clearOverrideUserPreference(_ref3) {
var key = _ref3.key;
return function (_ref4) {
var tr = _ref4.tr;
tr.setMeta(userPreferencesPluginKey, {
override: {
key: key,
value: null
}
});
return tr;
};
};
export var 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) {
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(userPreferencesPluginKey, {
preferences: _defineProperty({}, key, value)
});
if (key === 'toolbarDockingPosition') {
editorAnalyticsApi === null || editorAnalyticsApi === void 0 || editorAnalyticsApi.attachAnalyticsEvent({
action: ACTION.UPDATED,
actionSubject: ACTION_SUBJECT.USER_PREFERENCES,
actionSubjectId: ACTION_SUBJECT_ID.SELECTION_TOOLBAR_PREFERENCES,
attributes: {
toolbarDocking: value
},
eventType: EVENT_TYPE.TRACK
})(tr);
}
return tr;
};
};