@botonic/react
Version:
Build Chatbots using React
54 lines • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Text = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const core_1 = require("@botonic/core");
const react_1 = require("react");
const react_2 = require("../util/react");
const constants_1 = require("./constants");
const markdown_1 = require("./markdown");
const message_1 = require("./message");
const serializeText = children => {
children = Array.isArray(children) ? children : [children];
const text = children
.filter(e => !e.type)
.map(e => {
if (Array.isArray(e)) {
return serializeText(e);
}
else {
return String(e);
}
})
.join('');
return text;
};
const serialize = (textProps) => {
if (!textProps.markdown) {
return {
text: serializeText(textProps.children),
};
}
return { text: (0, markdown_1.serializeMarkdown)(textProps.children) };
};
const Text = (props) => {
const defaultTextProps = {
markdown: props.markdown === undefined ? true : props.markdown,
feedbackEnabled: props.feedbackEnabled,
inferenceId: props.inferenceId,
botInteractionId: props.botInteractionId,
};
const textProps = (0, react_2.mapObjectNonBooleanValues)({
...props,
...defaultTextProps,
...{ children: react_1.Children.toArray(props.children) },
});
if (!textProps.markdown) {
return ((0, jsx_runtime_1.jsx)(message_1.Message, { json: serialize(textProps), ...textProps, type: core_1.INPUT.TEXT, children: textProps.children }));
}
return ((0, jsx_runtime_1.jsx)(message_1.Message, { json: serialize(textProps), ...textProps, type: core_1.INPUT.TEXT, children: (0, markdown_1.toMarkdownChildren)(textProps.children) }));
};
exports.Text = Text;
exports.Text.displayName = constants_1.COMPONENT_DISPLAY_NAMES.Text;
exports.Text.serialize = serialize;
//# sourceMappingURL=text.js.map