react-email-builder
Version:
A simple React drag and drop email builder.
47 lines (46 loc) • 1.78 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.columnsBlock = void 0;
const react_1 = __importDefault(require("react"));
const Icon_1 = require("../../components/Icon");
const ColumnsBlock_1 = require("./ColumnsBlock");
const ColumnsBlockEditor_1 = require("./ColumnsBlockEditor");
const utils_1 = require("../../utils");
function columnsBlock() {
return {
type: 'columns',
name: 'Columns',
icon: react_1.default.createElement(Icon_1.Icon, { name: 'columns' }),
createBlock: (base) => {
const block = base;
block.attrs = { columns: [(0, utils_1.createColumn)(), (0, utils_1.createColumn)()] };
block.style.padding = [20, 0, 20, 0];
return block;
},
copyBlock: (block, config) => {
return {
...block,
id: (0, utils_1.generateId)(),
attrs: {
...block.attrs,
columns: block.attrs.columns.map((column) => ({
...column,
id: (0, utils_1.generateId)(),
blocks: column.blocks.map((columnBlock) => (0, utils_1.copyBlock)(columnBlock, config))
}))
}
};
},
blockComponent: ColumnsBlock_1.ColumnsBlock,
editorComponent: ColumnsBlockEditor_1.ColumnsBlockEditor,
renderMJML: () => {
// The `columns` block will be handled by `generateMJML`.
// So we do nothing here.
return '';
}
};
}
exports.columnsBlock = columnsBlock;
;