@atlaskit/editor-plugin-extension
Version:
editor-plugin-extension plugin for @atlaskit/editor-core
34 lines (33 loc) • 1.32 kB
JavaScript
import { getBreakoutWidth } from '@atlaskit/editor-common/extensibility/get-breakout-width';
import { akEditorCalculatedWideLayoutWidth, akEditorDefaultLayoutWidth, akEditorFullWidthLayoutWidth } from '@atlaskit/editor-shared-styles/constants';
const extensionPresetWidths = {
default: akEditorDefaultLayoutWidth,
wide: akEditorCalculatedWideLayoutWidth,
'full-width': akEditorFullWidthLayoutWidth
};
export const getExtensionPresetWidth = layout => extensionPresetWidths[layout];
/**
* getExtensionLayout tries to match the breakout mark's width (if any) to an extension layout preset.
* @returns the layout preset if the breakout width matches, null if there is no match, or
* the node's layout attribute if there is no breakout width.
*/
export const getExtensionLayout = node => {
const {
layout = 'default'
} = node.attrs;
const breakoutWidth = getBreakoutWidth(node.marks);
if (breakoutWidth !== undefined) {
if (breakoutWidth === extensionPresetWidths.default) {
return 'default';
}
if (breakoutWidth === extensionPresetWidths.wide) {
return 'wide';
}
if (breakoutWidth === extensionPresetWidths['full-width']) {
return 'full-width';
}
return null;
}
// if there is no breakout width, return the node's layout attribute
return layout;
};