UNPKG

@botonic/plugin-flow-builder

Version:

Use Flow Builder to show your contents

85 lines 5.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FlowWhatsappCtaUrlButtonNode = void 0; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const core_1 = require("@botonic/core"); const react_1 = require("@botonic/react"); const tracking_1 = require("../tracking"); const content_fields_base_1 = require("./content-fields-base"); const flow_button_1 = require("./flow-button"); class FlowWhatsappCtaUrlButtonNode extends content_fields_base_1.ContentFieldsBase { constructor() { super(...arguments); this.text = ''; this.displayText = ''; this.url = ''; } static fromHubtypeCMS(component, locale, cmsApi) { const whatsappCtaUrlButton = new FlowWhatsappCtaUrlButtonNode(component.id); whatsappCtaUrlButton.code = component.code; whatsappCtaUrlButton.text = this.getTextByLocale(locale, component.content.text); FlowWhatsappCtaUrlButtonNode.setHeader(whatsappCtaUrlButton, component, locale); whatsappCtaUrlButton.footer = this.getTextByLocale(locale, component.content.footer); const button = flow_button_1.FlowButton.fromHubtypeCMS(component.content.button, locale, cmsApi); whatsappCtaUrlButton.displayText = button.text; const urlId = flow_button_1.FlowButton.getUrlId(component.content.button, locale); if (urlId) { const urlNode = cmsApi.getNodeById(urlId); whatsappCtaUrlButton.url = urlNode.content.url; } whatsappCtaUrlButton.followUp = component.follow_up; return whatsappCtaUrlButton; } static setHeader(whatsappCtaUrlButton, component, locale) { // If header is set, set header_type to text, this is need to be compatible with the old version of the component if (component.content.header.length > 0) { component.content.header_type = react_1.WhatsappCTAUrlHeaderType.Text; } whatsappCtaUrlButton.headerType = component.content .header_type; if (component.content.header_type === react_1.WhatsappCTAUrlHeaderType.Text) { whatsappCtaUrlButton.header = this.getTextByLocale(locale, component.content.header); } if (component.content.header_type === react_1.WhatsappCTAUrlHeaderType.Image && component.content.header_image) { whatsappCtaUrlButton.headerImage = this.getAssetByLocale(locale, component.content.header_image); } if (component.content.header_type === react_1.WhatsappCTAUrlHeaderType.Video && component.content.header_video) { whatsappCtaUrlButton.headerVideo = this.getAssetByLocale(locale, component.content.header_video); } if (component.content.header_type === react_1.WhatsappCTAUrlHeaderType.Document && component.content.header_document) { whatsappCtaUrlButton.headerDocument = this.getAssetByLocale(locale, component.content.header_document); } } trackFlow(request) { return tslib_1.__awaiter(this, void 0, void 0, function* () { yield (0, tracking_1.trackOneContent)(request, this); }); } toBotonic(id, request) { if (!(0, core_1.isWhatsapp)(request.session)) { return ((0, jsx_runtime_1.jsxs)(react_1.Text, { children: [this.text, (0, jsx_runtime_1.jsx)(react_1.Button, Object.assign({ url: this.url }, { children: this.displayText }))] })); } if (this.headerType === react_1.WhatsappCTAUrlHeaderType.Image && this.headerImage) { return ((0, jsx_runtime_1.jsx)(react_1.WhatsappCTAUrlButton, { body: this.text, headerType: this.headerType, headerImage: this.headerImage, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } if (this.headerType === react_1.WhatsappCTAUrlHeaderType.Video && this.headerVideo) { return ((0, jsx_runtime_1.jsx)(react_1.WhatsappCTAUrlButton, { body: this.text, headerType: this.headerType, headerVideo: this.headerVideo, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } if (this.headerType === react_1.WhatsappCTAUrlHeaderType.Document && this.headerDocument) { return ((0, jsx_runtime_1.jsx)(react_1.WhatsappCTAUrlButton, { body: this.text, headerType: this.headerType, headerDocument: this.headerDocument, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } if (this.headerType === react_1.WhatsappCTAUrlHeaderType.Text && this.header) { return ((0, jsx_runtime_1.jsx)(react_1.WhatsappCTAUrlButton, { body: this.text, header: this.header, headerType: this.headerType, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } return ((0, jsx_runtime_1.jsx)(react_1.WhatsappCTAUrlButton, { body: this.text, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } } exports.FlowWhatsappCtaUrlButtonNode = FlowWhatsappCtaUrlButtonNode; //# sourceMappingURL=flow-whatsapp-cta-url-button.js.map