@botonic/react
Version:
Build Chatbots using React
61 lines • 3.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WhatsappCTAUrlButton = exports.WhatsappCTAUrlHeaderType = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const core_1 = require("@botonic/core");
const util_1 = require("../util");
const react_1 = require("../util/react");
const webviews_1 = require("../util/webviews");
const message_1 = require("./message");
const constants_1 = require("./multichannel/whatsapp/constants");
const markdown_meta_1 = require("./multichannel/whatsapp/markdown-meta");
var WhatsappCTAUrlHeaderType;
(function (WhatsappCTAUrlHeaderType) {
WhatsappCTAUrlHeaderType["Document"] = "document";
WhatsappCTAUrlHeaderType["Image"] = "image";
WhatsappCTAUrlHeaderType["Text"] = "text";
WhatsappCTAUrlHeaderType["Video"] = "video";
})(WhatsappCTAUrlHeaderType || (exports.WhatsappCTAUrlHeaderType = WhatsappCTAUrlHeaderType = {}));
const serialize = _whatsappCTAUrlButtonProps => {
// TODO: Implement to have data persistence in localStorage, not needed for this WhatsApp development
return {};
};
const WhatsappCTAUrlButton = (props) => {
const renderBrowser = () => {
// Return a dummy message for browser
const message = `${JSON.stringify(props)}`;
return ((0, jsx_runtime_1.jsx)(message_1.Message, { json: serialize(message), ...props, type: core_1.INPUT.WHATSAPP_CTA_URL_BUTTON, children: message }));
};
const renderNode = () => {
const validatedProps = {
...props,
headerType: props.headerType,
header: props.headerType === WhatsappCTAUrlHeaderType.Text && props.header
? (0, util_1.truncateText)(props.header, constants_1.WHATSAPP_MAX_HEADER_CHARS)
: undefined,
headerImage: props.headerType === WhatsappCTAUrlHeaderType.Image
? props.headerImage
: undefined,
headerVideo: props.headerType === WhatsappCTAUrlHeaderType.Video
? props.headerVideo
: undefined,
headerDocument: props.headerType === WhatsappCTAUrlHeaderType.Document
? props.headerDocument
: undefined,
body: (0, util_1.truncateText)((0, markdown_meta_1.convertToMarkdownMeta)(props.body), constants_1.WHATSAPP_MAX_BODY_CHARS),
footer: props.footer
? (0, util_1.truncateText)((0, markdown_meta_1.convertToMarkdownMeta)(props.footer), constants_1.WHATSAPP_MAX_FOOTER_CHARS)
: undefined,
displayText: (0, util_1.truncateText)(props.displayText, constants_1.WHATSAPP_MAX_BUTTON_CHARS),
url: 'webview' in props
? (0, webviews_1.generateWebviewUrlWithParams)(props.webview, props.params)
: props.url,
};
return (
// @ts-expect-error Property 'message' does not exist on type 'JSX.IntrinsicElements'.
(0, jsx_runtime_1.jsx)("message", { ...validatedProps, type: core_1.INPUT.WHATSAPP_CTA_URL_BUTTON }));
};
return (0, react_1.renderComponent)({ renderBrowser, renderNode });
};
exports.WhatsappCTAUrlButton = WhatsappCTAUrlButton;
//# sourceMappingURL=whatsapp-cta-url-button.js.map