redraft
Version:
Renders the result of Draft.js convertToRaw using provided callbacks, works well with React
35 lines (32 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Returns a single style object provided styleArray and stylesMap
*/
var reduceStyles = function reduceStyles(styleArray, stylesMap) {
return styleArray.map(function (style) {
return stylesMap[style];
}).reduce(function (prev, next) {
var mergedStyles = {};
if (next !== undefined) {
var key = 'text-decoration' in next ? 'text-decoration' : 'textDecoration';
if (next[key] !== prev[key]) {
// .trim() is necessary for IE9/10/11 and Edge
mergedStyles[key] = [prev[key], next[key]].join(' ').trim();
}
}
return Object.assign(prev, next, mergedStyles);
}, {});
};
/**
* Returns a styleRenderer from a customStyleMap and a wrapper callback (Component)
*/
var createStyleRenderer = function createStyleRenderer(wrapper, stylesMap) {
return function (children, styleArray, params) {
var style = reduceStyles(styleArray, stylesMap);
return wrapper(Object.assign({}, { children: children }, params, { style: style }));
};
};
exports.default = createStyleRenderer;