@atlaskit/editor-plugin-user-preferences
Version:
UserPreferences plugin for @atlaskit/editor-core
31 lines • 942 B
JavaScript
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
import { PluginKey } from '@atlaskit/editor-prosemirror/state';
export const userPreferencesPluginKey = new PluginKey('userPreferencesPlugin');
export const createPlugin = (pluginOptions, _api) => {
const {
userPreferencesProvider
} = pluginOptions;
return new SafePlugin({
key: userPreferencesPluginKey,
state: {
init() {
return {
preferences: userPreferencesProvider.getPreferences()
};
},
apply: (tr, currentPluginState) => {
const meta = tr.getMeta(userPreferencesPluginKey);
if (meta !== null && meta !== void 0 && meta.preferences) {
return {
...currentPluginState,
preferences: {
...currentPluginState.preferences,
...meta.preferences
}
};
}
return currentPluginState;
}
}
});
};