@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
33 lines (32 loc) • 1.15 kB
JavaScript
import { TOOLBAR_DOCKING_POSITIONS } from './user-preferences';
export const mergeUserPreferences = (userPreferences, defaultPreferences) => {
const newResolvedUserPreferences = {
...defaultPreferences,
...Object.fromEntries(Object.entries(userPreferences).filter(([key, value]) => {
if (key === 'toolbarDockingPosition') {
return TOOLBAR_DOCKING_POSITIONS.includes(value);
}
return value !== undefined && value !== null;
}))
};
return newResolvedUserPreferences;
};
/**
* Compare two user preferences objects
* @param {ResolvedUserPreferences} left a ResolvedUserPreferences
* @param {ResolvedUserPreferences} right a ResolvedUserPreferences
* @returns true if the user preferences are the same, false otherwise
* @example
* const userPreferences1 = {
* toolbarDockingPosition: 'top',
* };
* const userPreferences2 = {
* toolbarDockingPosition: 'top',
* };
* compareUserPreferences(userPreferences1, userPreferences2); // true
*/
export const areUserPreferencesEqual = (left, right) => {
return Object.entries(left).every(([key, value]) => {
return value === right[key];
});
};