notion-renderer
Version:
notion content react renderer
42 lines • 1.93 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = __importDefault(require("react"));
var BlankBlock_1 = __importDefault(require("./BlankBlock"));
var TextBlock = function (text) {
if (!text.properties) {
return react_1.default.createElement(BlankBlock_1.default, null);
}
var title = text.properties.title;
var output = title.map(function (_a, index) {
var value = _a[0], format = _a[1];
if (!format) {
return react_1.default.createElement("span", { key: index }, value);
}
return format.reduce(function (item, style) {
switch (style[0]) {
case 'b':
return react_1.default.createElement("b", { key: index }, item);
case 'i':
return react_1.default.createElement("i", { key: index }, item);
case '_':
return react_1.default.createElement("u", { key: index }, item);
case 's':
return react_1.default.createElement("s", { key: index }, item);
case 'c':
return (react_1.default.createElement("span", { key: index, className: "pt-1 pb-1 p-2 text-danger", style: {
backgroundColor: '#F0F0F0',
borderRadius: '3px'
} }, item));
case 'a':
return (react_1.default.createElement("span", { key: index },
react_1.default.createElement("a", { href: style[1], target: "_blank" }, item)));
}
}, value);
});
return react_1.default.createElement("p", null, output);
};
exports.default = TextBlock;
//# sourceMappingURL=TextBlock.js.map