yqcloud-ui
Version:
An enterprise-class UI design language and React-based implementation
50 lines (36 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = exportContent;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _draftJs = require('draft-js');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function encodeContent(text) {
return text.split('&').join('&').split('<').join('<').split('>').join('>').split('\xA0').join(' ').split('\n').join('<br > \n');
}
var MentionGenerator = function () {
function MentionGenerator(contentState, options) {
(0, _classCallCheck3['default'])(this, MentionGenerator);
this.contentState = contentState;
this.options = options;
}
MentionGenerator.prototype.generate = function generate() {
var contentRaw = (0, _draftJs.convertToRaw)(this.contentState);
return this.processContent(contentRaw);
};
MentionGenerator.prototype.processContent = function processContent(contentRaw) {
var blocks = contentRaw.blocks;
var encode = this.options.encode;
return blocks.map(function (block) {
return encode ? encodeContent(block.text) : block.text;
}).join(encode ? '<br />\n' : '\n');
};
return MentionGenerator;
}();
function exportContent(contentState) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new MentionGenerator(contentState, options).generate();
}
module.exports = exports['default'];