@react-slate/core
Version:
Write interactive CLI apps with React
58 lines • 1.89 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const Paragraph_1 = __importDefault(require("../host/nodes/Paragraph"));
const utils_1 = require("../utils");
function View(props) {
return (
// @ts-ignore
react_1.default.createElement(Paragraph_1.default.TAG, { onLayout: props.onLayout, onClick: props.onClick, onWheel: props.onWheel, style: {
color: props.color,
bgColor: props.bgColor,
modifiers: reduceModifiers(props),
} }, react_1.default.Children.map(props.children, child => {
if (react_1.default.isValidElement(child)) {
return react_1.default.cloneElement(child, {
textTransform: props.textTransform,
});
}
switch (props.textTransform) {
case 'capitalize': {
return utils_1.capitalize(child.toString());
}
case 'lowercase': {
return child.toString().toLowerCase();
}
case 'uppercase': {
return child.toString().toUpperCase();
}
case 'none':
default:
return child;
}
})));
}
exports.default = View;
function reduceModifiers(props) {
const modifiers = [];
if (props.bold) {
modifiers.push('bold');
}
if (props.italic) {
modifiers.push('italic');
}
if (props.dim) {
modifiers.push('dim');
}
if (props.underline) {
modifiers.push('underline');
}
if (props.lineThrough) {
modifiers.push('strikethrough');
}
return modifiers.length ? modifiers : undefined;
}
//# sourceMappingURL=Text.js.map