@botonic/plugin-flow-builder 0.41.1-alpha.1 → 0.41.1-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/content-fields/flow-carousel.js +13 -3
- package/lib/cjs/content-fields/flow-carousel.js.map +1 -1
- package/lib/esm/content-fields/flow-carousel.js +14 -4
- package/lib/esm/content-fields/flow-carousel.js.map +1 -1
- package/package.json +1 -1
- package/src/content-fields/flow-carousel.tsx +37 -5
|
@@ -20,7 +20,7 @@ class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
|
20
20
|
return newCarousel;
|
|
21
21
|
}
|
|
22
22
|
static fromAIAgent(id, carouselMessage, request) {
|
|
23
|
-
const
|
|
23
|
+
const areAllButtonsValid = () => {
|
|
24
24
|
const isValid = !carouselMessage.content.elements.some(element => element.button.payload) &&
|
|
25
25
|
carouselMessage.content.elements.every(element => element.button.url);
|
|
26
26
|
if (!isValid) {
|
|
@@ -28,8 +28,13 @@ class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
|
28
28
|
}
|
|
29
29
|
return isValid;
|
|
30
30
|
};
|
|
31
|
-
if ((0, core_1.isWhatsapp)(request.session) &&
|
|
32
|
-
|
|
31
|
+
if ((0, core_1.isWhatsapp)(request.session) && areAllButtonsValid()) {
|
|
32
|
+
if (carouselMessage.content.elements.length === 1) {
|
|
33
|
+
const element = carouselMessage.content.elements[0];
|
|
34
|
+
console.log('displaying whatsapp cta url button with element', element);
|
|
35
|
+
// TODO: Add a new fromAIAgent method in FlowWhatsappCtaUrlButtonNode to create a WhatsappCTAUrlButton from an AIAgent message
|
|
36
|
+
return ((0, jsx_runtime_1.jsx)(react_1.WhatsappCTAUrlButton, { body: element.title, headerType: react_1.WhatsappCTAUrlHeaderType.Image, headerImage: element.image, footer: element.subtitle, displayText: element.button.text, url: element.button.url }, id));
|
|
37
|
+
}
|
|
33
38
|
return ((0, jsx_runtime_1.jsx)(react_1.WhatsappInteractiveMediaCarousel, { cards: carouselMessage.content.elements.map(element => {
|
|
34
39
|
const buttonText = element.button.text;
|
|
35
40
|
const buttonUrl = element.button.url;
|
|
@@ -44,6 +49,11 @@ class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
|
44
49
|
}
|
|
45
50
|
toBotonic(id, request) {
|
|
46
51
|
if ((0, core_1.isWhatsapp)(request.session)) {
|
|
52
|
+
// TODO: Improve this logic to ensure what to do if the buttons are not CTA URL buttons
|
|
53
|
+
if (this.elements.length === 1) {
|
|
54
|
+
const element = this.elements[0];
|
|
55
|
+
return ((0, jsx_runtime_1.jsx)(react_1.WhatsappCTAUrlButton, { body: element.title, headerType: react_1.WhatsappCTAUrlHeaderType.Image, headerImage: element.image, displayText: element.button.text, url: element.button.url }, id));
|
|
56
|
+
}
|
|
47
57
|
return ((0, jsx_runtime_1.jsx)(react_1.WhatsappInteractiveMediaCarousel, { cards: this.elements.map(element => {
|
|
48
58
|
var _a, _b;
|
|
49
59
|
const buttonText = ((_a = element.button) === null || _a === void 0 ? void 0 : _a.text) || '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":";;;;AAAA,wCAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { isWhatsapp } from '@botonic/core';
|
|
3
|
-
import { Carousel, WhatsappInteractiveMediaCarousel, } from '@botonic/react';
|
|
3
|
+
import { Carousel, WhatsappCTAUrlButton, WhatsappCTAUrlHeaderType, WhatsappInteractiveMediaCarousel, } from '@botonic/react';
|
|
4
4
|
import { ContentFieldsBase } from './content-fields-base';
|
|
5
5
|
import { FlowElement } from './flow-element';
|
|
6
6
|
const DEFAULT_TEXT_MESSAGE = 'These are the options';
|
|
@@ -17,7 +17,7 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
17
17
|
return newCarousel;
|
|
18
18
|
}
|
|
19
19
|
static fromAIAgent(id, carouselMessage, request) {
|
|
20
|
-
const
|
|
20
|
+
const areAllButtonsValid = () => {
|
|
21
21
|
const isValid = !carouselMessage.content.elements.some(element => element.button.payload) &&
|
|
22
22
|
carouselMessage.content.elements.every(element => element.button.url);
|
|
23
23
|
if (!isValid) {
|
|
@@ -25,8 +25,13 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
25
25
|
}
|
|
26
26
|
return isValid;
|
|
27
27
|
};
|
|
28
|
-
if (isWhatsapp(request.session) &&
|
|
29
|
-
|
|
28
|
+
if (isWhatsapp(request.session) && areAllButtonsValid()) {
|
|
29
|
+
if (carouselMessage.content.elements.length === 1) {
|
|
30
|
+
const element = carouselMessage.content.elements[0];
|
|
31
|
+
console.log('displaying whatsapp cta url button with element', element);
|
|
32
|
+
// TODO: Add a new fromAIAgent method in FlowWhatsappCtaUrlButtonNode to create a WhatsappCTAUrlButton from an AIAgent message
|
|
33
|
+
return (_jsx(WhatsappCTAUrlButton, { body: element.title, headerType: WhatsappCTAUrlHeaderType.Image, headerImage: element.image, footer: element.subtitle, displayText: element.button.text, url: element.button.url }, id));
|
|
34
|
+
}
|
|
30
35
|
return (_jsx(WhatsappInteractiveMediaCarousel, { cards: carouselMessage.content.elements.map(element => {
|
|
31
36
|
const buttonText = element.button.text;
|
|
32
37
|
const buttonUrl = element.button.url;
|
|
@@ -41,6 +46,11 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
41
46
|
}
|
|
42
47
|
toBotonic(id, request) {
|
|
43
48
|
if (isWhatsapp(request.session)) {
|
|
49
|
+
// TODO: Improve this logic to ensure what to do if the buttons are not CTA URL buttons
|
|
50
|
+
if (this.elements.length === 1) {
|
|
51
|
+
const element = this.elements[0];
|
|
52
|
+
return (_jsx(WhatsappCTAUrlButton, { body: element.title, headerType: WhatsappCTAUrlHeaderType.Image, headerImage: element.image, displayText: element.button.text, url: element.button.url }, id));
|
|
53
|
+
}
|
|
44
54
|
return (_jsx(WhatsappInteractiveMediaCarousel, { cards: this.elements.map(element => {
|
|
45
55
|
var _a, _b;
|
|
46
56
|
const buttonText = ((_a = element.button) === null || _a === void 0 ? void 0 : _a.text) || '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAmB,UAAU,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAEL,QAAQ,EACR,gCAAgC,GACjC,MAAM,gBAAgB,CAAA;AAIvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAG5C,MAAM,oBAAoB,GAAG,uBAAuB,CAAA;AACpD,MAAM,OAAO,YAAa,SAAQ,iBAAiB;IAAnD;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,aAAQ,GAAkB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,6 +2,8 @@ import { CarouselMessage, isWhatsapp } from '@botonic/core'
|
|
|
2
2
|
import {
|
|
3
3
|
ActionRequest,
|
|
4
4
|
Carousel,
|
|
5
|
+
WhatsappCTAUrlButton,
|
|
6
|
+
WhatsappCTAUrlHeaderType,
|
|
5
7
|
WhatsappInteractiveMediaCarousel,
|
|
6
8
|
} from '@botonic/react'
|
|
7
9
|
import React from 'react'
|
|
@@ -34,7 +36,7 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
34
36
|
carouselMessage: CarouselMessage,
|
|
35
37
|
request: ActionRequest
|
|
36
38
|
): JSX.Element {
|
|
37
|
-
const
|
|
39
|
+
const areAllButtonsValid = () => {
|
|
38
40
|
const isValid =
|
|
39
41
|
!carouselMessage.content.elements.some(
|
|
40
42
|
element => element.button.payload
|
|
@@ -50,10 +52,24 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
50
52
|
return isValid
|
|
51
53
|
}
|
|
52
54
|
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
if (isWhatsapp(request.session) && areAllButtonsValid()) {
|
|
56
|
+
if (carouselMessage.content.elements.length === 1) {
|
|
57
|
+
const element = carouselMessage.content.elements[0]
|
|
58
|
+
console.log('displaying whatsapp cta url button with element', element)
|
|
59
|
+
// TODO: Add a new fromAIAgent method in FlowWhatsappCtaUrlButtonNode to create a WhatsappCTAUrlButton from an AIAgent message
|
|
60
|
+
return (
|
|
61
|
+
<WhatsappCTAUrlButton
|
|
62
|
+
key={id}
|
|
63
|
+
body={element.title}
|
|
64
|
+
headerType={WhatsappCTAUrlHeaderType.Image}
|
|
65
|
+
headerImage={element.image}
|
|
66
|
+
footer={element.subtitle}
|
|
67
|
+
displayText={element.button.text}
|
|
68
|
+
url={element.button.url!}
|
|
69
|
+
/>
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
|
|
57
73
|
return (
|
|
58
74
|
<WhatsappInteractiveMediaCarousel
|
|
59
75
|
cards={carouselMessage.content.elements.map(element => {
|
|
@@ -83,6 +99,22 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
83
99
|
|
|
84
100
|
toBotonic(id: string, request: ActionRequest): JSX.Element {
|
|
85
101
|
if (isWhatsapp(request.session)) {
|
|
102
|
+
// TODO: Improve this logic to ensure what to do if the buttons are not CTA URL buttons
|
|
103
|
+
if (this.elements.length === 1) {
|
|
104
|
+
const element = this.elements[0]
|
|
105
|
+
|
|
106
|
+
return (
|
|
107
|
+
<WhatsappCTAUrlButton
|
|
108
|
+
key={id}
|
|
109
|
+
body={element.title}
|
|
110
|
+
headerType={WhatsappCTAUrlHeaderType.Image}
|
|
111
|
+
headerImage={element.image}
|
|
112
|
+
displayText={element.button!.text}
|
|
113
|
+
url={element.button!.url!}
|
|
114
|
+
/>
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
|
|
86
118
|
return (
|
|
87
119
|
<WhatsappInteractiveMediaCarousel
|
|
88
120
|
cards={this.elements.map(element => {
|