UNPKG

@botonic/plugin-flow-builder

Version:

Use Flow Builder to show your contents

81 lines 4.68 kB
import { __awaiter } from "tslib"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { isWhatsapp } from '@botonic/core'; import { Button, Text, WhatsappCTAUrlButton, WhatsappCTAUrlHeaderType, } from '@botonic/react'; import { trackOneContent } from '../tracking'; import { ContentFieldsBase } from './content-fields-base'; import { FlowButton } from './flow-button'; export class FlowWhatsappCtaUrlButtonNode extends 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 = FlowButton.fromHubtypeCMS(component.content.button, locale, cmsApi); whatsappCtaUrlButton.displayText = button.text; const urlId = 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 = WhatsappCTAUrlHeaderType.Text; } whatsappCtaUrlButton.headerType = component.content .header_type; if (component.content.header_type === WhatsappCTAUrlHeaderType.Text) { whatsappCtaUrlButton.header = this.getTextByLocale(locale, component.content.header); } if (component.content.header_type === WhatsappCTAUrlHeaderType.Image && component.content.header_image) { whatsappCtaUrlButton.headerImage = this.getAssetByLocale(locale, component.content.header_image); } if (component.content.header_type === WhatsappCTAUrlHeaderType.Video && component.content.header_video) { whatsappCtaUrlButton.headerVideo = this.getAssetByLocale(locale, component.content.header_video); } if (component.content.header_type === WhatsappCTAUrlHeaderType.Document && component.content.header_document) { whatsappCtaUrlButton.headerDocument = this.getAssetByLocale(locale, component.content.header_document); } } trackFlow(request) { return __awaiter(this, void 0, void 0, function* () { yield trackOneContent(request, this); }); } toBotonic(id, request) { if (!isWhatsapp(request.session)) { return (_jsxs(Text, { children: [this.text, _jsx(Button, Object.assign({ url: this.url }, { children: this.displayText }))] })); } if (this.headerType === WhatsappCTAUrlHeaderType.Image && this.headerImage) { return (_jsx(WhatsappCTAUrlButton, { body: this.text, headerType: this.headerType, headerImage: this.headerImage, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } if (this.headerType === WhatsappCTAUrlHeaderType.Video && this.headerVideo) { return (_jsx(WhatsappCTAUrlButton, { body: this.text, headerType: this.headerType, headerVideo: this.headerVideo, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } if (this.headerType === WhatsappCTAUrlHeaderType.Document && this.headerDocument) { return (_jsx(WhatsappCTAUrlButton, { body: this.text, headerType: this.headerType, headerDocument: this.headerDocument, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } if (this.headerType === WhatsappCTAUrlHeaderType.Text && this.header) { return (_jsx(WhatsappCTAUrlButton, { body: this.text, header: this.header, headerType: this.headerType, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } return (_jsx(WhatsappCTAUrlButton, { body: this.text, footer: this.footer, displayText: this.displayText, url: this.url }, id)); } } //# sourceMappingURL=flow-whatsapp-cta-url-button.js.map