@botonic/plugin-flow-builder 0.42.0-alpha.4 → 0.42.0
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.d.ts +4 -0
- package/lib/cjs/content-fields/flow-carousel.js +14 -8
- package/lib/cjs/content-fields/flow-carousel.js.map +1 -1
- package/lib/esm/content-fields/flow-carousel.d.ts +4 -0
- package/lib/esm/content-fields/flow-carousel.js +14 -8
- package/lib/esm/content-fields/flow-carousel.js.map +1 -1
- package/package.json +3 -3
- package/src/content-fields/flow-carousel.tsx +20 -10
|
@@ -10,6 +10,10 @@ export declare class FlowCarousel extends ContentFieldsBase {
|
|
|
10
10
|
static fromHubtypeCMS(component: HtCarouselNode, locale: string, cmsApi: FlowBuilderApi): FlowCarousel;
|
|
11
11
|
trackFlow(request: ActionRequest): Promise<void>;
|
|
12
12
|
static areElementsValidForWhatsapp: (carouselMessage: CarouselMessage) => boolean;
|
|
13
|
+
static generateWhatsappElementText(element: {
|
|
14
|
+
title: string;
|
|
15
|
+
subtitle?: string;
|
|
16
|
+
}): string;
|
|
13
17
|
static fromAIAgent(id: string, carouselMessage: CarouselMessage, request: ActionRequest): JSX.Element;
|
|
14
18
|
private toCarouselMessage;
|
|
15
19
|
toBotonic(id: string, request: ActionRequest): JSX.Element;
|
|
@@ -29,12 +29,17 @@ class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
+
static generateWhatsappElementText(element) {
|
|
33
|
+
if (element.subtitle) {
|
|
34
|
+
return `*${element.title}*\n${element.subtitle}`;
|
|
35
|
+
}
|
|
36
|
+
return element.title;
|
|
37
|
+
}
|
|
32
38
|
static fromAIAgent(id, carouselMessage, request) {
|
|
33
39
|
if ((0, core_1.isWhatsapp)(request.session) &&
|
|
34
40
|
FlowCarousel.areElementsValidForWhatsapp(carouselMessage)) {
|
|
35
41
|
if (carouselMessage.content.elements.length === 1) {
|
|
36
42
|
const element = carouselMessage.content.elements[0];
|
|
37
|
-
console.log('displaying whatsapp cta url button with element', element);
|
|
38
43
|
// TODO: Add a new fromAIAgent method in FlowWhatsappCtaUrlButtonNode to create a WhatsappCTAUrlButton from an AIAgent message
|
|
39
44
|
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));
|
|
40
45
|
}
|
|
@@ -42,8 +47,9 @@ class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
|
42
47
|
const buttonText = element.button.text;
|
|
43
48
|
const buttonUrl = element.button.url;
|
|
44
49
|
const imageLink = element.image;
|
|
50
|
+
const text = FlowCarousel.generateWhatsappElementText(element);
|
|
45
51
|
return {
|
|
46
|
-
text
|
|
52
|
+
text,
|
|
47
53
|
action: { buttonText, buttonUrl, imageLink },
|
|
48
54
|
};
|
|
49
55
|
}), textMessage: carouselMessage.content.text || DEFAULT_TEXT_MESSAGE }));
|
|
@@ -79,12 +85,12 @@ class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
|
79
85
|
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));
|
|
80
86
|
}
|
|
81
87
|
return ((0, jsx_runtime_1.jsx)(react_1.WhatsappInteractiveMediaCarousel, { cards: this.elements.map(element => {
|
|
82
|
-
|
|
83
|
-
const buttonText =
|
|
84
|
-
const buttonUrl =
|
|
85
|
-
const imageLink = element.image
|
|
88
|
+
const text = FlowCarousel.generateWhatsappElementText(element);
|
|
89
|
+
const buttonText = element.button.text;
|
|
90
|
+
const buttonUrl = element.button.url;
|
|
91
|
+
const imageLink = element.image;
|
|
86
92
|
return {
|
|
87
|
-
text
|
|
93
|
+
text,
|
|
88
94
|
action: { buttonText, buttonUrl, imageLink },
|
|
89
95
|
};
|
|
90
96
|
}),
|
|
@@ -96,7 +102,7 @@ class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
|
96
102
|
}
|
|
97
103
|
exports.FlowCarousel = FlowCarousel;
|
|
98
104
|
FlowCarousel.areElementsValidForWhatsapp = (carouselMessage) => {
|
|
99
|
-
const isValid =
|
|
105
|
+
const isValid = carouselMessage.content.elements.every(element => element.button.url);
|
|
100
106
|
if (!isValid) {
|
|
101
107
|
console.warn('Cannot use WhatsappInteractiveMediaCarousel for Whatsapp created by AIAgent', carouselMessage.content);
|
|
102
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":";;;;;AAAA,wCAA2D;AAC3D,0CAMuB;AAIvB,0CAA6C;AAC7C,+DAAyD;AACzD,iDAA4C;AAG5C,MAAM,oBAAoB,GAAG,uBAAuB,CAAA;AACpD,MAAa,YAAa,SAAQ,uCAAiB;IAAnD;;QACS,aAAQ,GAAkB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":";;;;;AAAA,wCAA2D;AAC3D,0CAMuB;AAIvB,0CAA6C;AAC7C,+DAAyD;AACzD,iDAA4C;AAG5C,MAAM,oBAAoB,GAAG,uBAAuB,CAAA;AACpD,MAAa,YAAa,SAAQ,uCAAiB;IAAnD;;QACS,aAAQ,GAAkB,EAAE,CAAA;IAsKrC,CAAC;IApKC,MAAM,CAAC,cAAc,CACnB,SAAyB,EACzB,MAAc,EACd,MAAsB;QAEtB,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAClD,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;QACjC,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAC9D,0BAAW,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CACpD,CAAA;QACD,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAA;QAE1C,OAAO,WAAW,CAAA;IACpB,CAAC;IAEK,SAAS,CAAC,OAAsB;;YACpC,MAAM,IAAA,0BAAe,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACpC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;aACjC;QACH,CAAC;KAAA;IAgBD,MAAM,CAAC,2BAA2B,CAAC,OAGlC;QACC,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,OAAO,IAAI,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;SACjD;QACD,OAAO,OAAO,CAAC,KAAK,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,EAAU,EACV,eAAgC,EAChC,OAAsB;QAEtB,IACE,IAAA,iBAAU,EAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,YAAY,CAAC,2BAA2B,CAAC,eAAe,CAAC,EACzD;YACA,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACnD,8HAA8H;gBAC9H,OAAO,CACL,uBAAC,4BAAoB,IAEnB,IAAI,EAAE,OAAO,CAAC,KAAK,EACnB,UAAU,EAAE,gCAAwB,CAAC,KAAK,EAC1C,WAAW,EAAE,OAAO,CAAC,KAAK,EAC1B,MAAM,EAAE,OAAO,CAAC,QAAQ,EACxB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAI,IANnB,EAAE,CAOP,CACH,CAAA;aACF;YAED,OAAO,CACL,uBAAC,wCAAgC,IAC/B,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACpD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA;oBACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,GAAI,CAAA;oBACrC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAA;oBAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAA;oBAE9D,OAAO;wBACL,IAAI;wBACJ,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE;qBAC7C,CAAA;gBACH,CAAC,CAAC,EACF,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,oBAAoB,GACjE,CACH,CAAA;SACF;QACD,OAAO,CACL,uBAAC,gBAAQ,cACN,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACvD,0BAAW,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC,SAAS,CAClE,EAAE,CACH,CACF,IALY,EAAE,CAMN,CACZ,CAAA;IACH,CAAC;IAEO,iBAAiB,CAAC,QAAuB;QAC/C,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE;gBACP,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;;oBAC/B,OAAO;wBACL,MAAM,EAAE;4BACN,IAAI,EAAE,CAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,IAAI,KAAI,EAAE;4BAChC,OAAO,EAAE,MAAA,OAAO,CAAC,MAAM,0CAAE,OAAO;4BAChC,GAAG,EAAE,MAAA,OAAO,CAAC,MAAM,0CAAE,GAAG;yBACzB;wBACD,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;qBACrB,CAAA;gBACH,CAAC,CAAC;aACH;SACF,CAAA;IACH,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,OAAsB;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7D,IACE,IAAA,iBAAU,EAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,YAAY,CAAC,2BAA2B,CAAC,eAAe,CAAC,EACzD;YACA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAEhC,OAAO,CACL,uBAAC,4BAAoB,IAEnB,IAAI,EAAE,OAAO,CAAC,KAAK,EACnB,UAAU,EAAE,gCAAwB,CAAC,KAAK,EAC1C,WAAW,EAAE,OAAO,CAAC,KAAK,EAC1B,WAAW,EAAE,OAAO,CAAC,MAAO,CAAC,IAAI,EACjC,GAAG,EAAE,OAAO,CAAC,MAAO,CAAC,GAAI,IALpB,EAAE,CAMP,CACH,CAAA;aACF;YAED,OAAO,CACL,uBAAC,wCAAgC,IAC/B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACjC,MAAM,IAAI,GAAG,YAAY,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAA;oBAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAO,CAAC,IAAK,CAAA;oBACxC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAO,CAAC,GAAI,CAAA;oBACtC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAM,CAAA;oBAEhC,OAAO;wBACL,IAAI;wBACJ,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE;qBAC7C,CAAA;gBACH,CAAC,CAAC;gBACF,kHAAkH;gBAClH,WAAW,EAAE,oBAAoB,GACjC,CACH,CAAA;SACF;QACD,OAAO,CACL,uBAAC,gBAAQ,cACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IADvC,EAAE,CAEN,CACZ,CAAA;IACH,CAAC;;AAtKH,oCAuKC;AA9IQ,wCAA2B,GAAG,CAAC,eAAgC,EAAE,EAAE;IACxE,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CACpD,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAC9B,CAAA;IAED,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,CAAC,IAAI,CACV,6EAA6E,EAC7E,eAAe,CAAC,OAAO,CACxB,CAAA;KACF;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -10,6 +10,10 @@ export declare class FlowCarousel extends ContentFieldsBase {
|
|
|
10
10
|
static fromHubtypeCMS(component: HtCarouselNode, locale: string, cmsApi: FlowBuilderApi): FlowCarousel;
|
|
11
11
|
trackFlow(request: ActionRequest): Promise<void>;
|
|
12
12
|
static areElementsValidForWhatsapp: (carouselMessage: CarouselMessage) => boolean;
|
|
13
|
+
static generateWhatsappElementText(element: {
|
|
14
|
+
title: string;
|
|
15
|
+
subtitle?: string;
|
|
16
|
+
}): string;
|
|
13
17
|
static fromAIAgent(id: string, carouselMessage: CarouselMessage, request: ActionRequest): JSX.Element;
|
|
14
18
|
private toCarouselMessage;
|
|
15
19
|
toBotonic(id: string, request: ActionRequest): JSX.Element;
|
|
@@ -26,12 +26,17 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
+
static generateWhatsappElementText(element) {
|
|
30
|
+
if (element.subtitle) {
|
|
31
|
+
return `*${element.title}*\n${element.subtitle}`;
|
|
32
|
+
}
|
|
33
|
+
return element.title;
|
|
34
|
+
}
|
|
29
35
|
static fromAIAgent(id, carouselMessage, request) {
|
|
30
36
|
if (isWhatsapp(request.session) &&
|
|
31
37
|
FlowCarousel.areElementsValidForWhatsapp(carouselMessage)) {
|
|
32
38
|
if (carouselMessage.content.elements.length === 1) {
|
|
33
39
|
const element = carouselMessage.content.elements[0];
|
|
34
|
-
console.log('displaying whatsapp cta url button with element', element);
|
|
35
40
|
// TODO: Add a new fromAIAgent method in FlowWhatsappCtaUrlButtonNode to create a WhatsappCTAUrlButton from an AIAgent message
|
|
36
41
|
return (_jsx(WhatsappCTAUrlButton, { body: element.title, headerType: WhatsappCTAUrlHeaderType.Image, headerImage: element.image, footer: element.subtitle, displayText: element.button.text, url: element.button.url }, id));
|
|
37
42
|
}
|
|
@@ -39,8 +44,9 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
39
44
|
const buttonText = element.button.text;
|
|
40
45
|
const buttonUrl = element.button.url;
|
|
41
46
|
const imageLink = element.image;
|
|
47
|
+
const text = FlowCarousel.generateWhatsappElementText(element);
|
|
42
48
|
return {
|
|
43
|
-
text
|
|
49
|
+
text,
|
|
44
50
|
action: { buttonText, buttonUrl, imageLink },
|
|
45
51
|
};
|
|
46
52
|
}), textMessage: carouselMessage.content.text || DEFAULT_TEXT_MESSAGE }));
|
|
@@ -76,12 +82,12 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
76
82
|
return (_jsx(WhatsappCTAUrlButton, { body: element.title, headerType: WhatsappCTAUrlHeaderType.Image, headerImage: element.image, displayText: element.button.text, url: element.button.url }, id));
|
|
77
83
|
}
|
|
78
84
|
return (_jsx(WhatsappInteractiveMediaCarousel, { cards: this.elements.map(element => {
|
|
79
|
-
|
|
80
|
-
const buttonText =
|
|
81
|
-
const buttonUrl =
|
|
82
|
-
const imageLink = element.image
|
|
85
|
+
const text = FlowCarousel.generateWhatsappElementText(element);
|
|
86
|
+
const buttonText = element.button.text;
|
|
87
|
+
const buttonUrl = element.button.url;
|
|
88
|
+
const imageLink = element.image;
|
|
83
89
|
return {
|
|
84
|
-
text
|
|
90
|
+
text,
|
|
85
91
|
action: { buttonText, buttonUrl, imageLink },
|
|
86
92
|
};
|
|
87
93
|
}),
|
|
@@ -92,7 +98,7 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
92
98
|
}
|
|
93
99
|
}
|
|
94
100
|
FlowCarousel.areElementsValidForWhatsapp = (carouselMessage) => {
|
|
95
|
-
const isValid =
|
|
101
|
+
const isValid = carouselMessage.content.elements.every(element => element.button.url);
|
|
96
102
|
if (!isValid) {
|
|
97
103
|
console.warn('Cannot use WhatsappInteractiveMediaCarousel for Whatsapp created by AIAgent', carouselMessage.content);
|
|
98
104
|
}
|
|
@@ -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,oBAAoB,EACpB,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,gBAAgB,CAAA;AAIvB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,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,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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-flow-builder",
|
|
3
|
-
"version": "0.42.0
|
|
3
|
+
"version": "0.42.0",
|
|
4
4
|
"main": "./lib/cjs/index.js",
|
|
5
5
|
"module": "./lib/esm/index.js",
|
|
6
6
|
"description": "Use Flow Builder to show your contents",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"lint_core": "../../node_modules/.bin/eslint_d --cache --quiet 'src/**/*.ts*'"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@botonic/react": "0.42.0
|
|
17
|
+
"@botonic/react": "^0.42.0",
|
|
18
18
|
"axios": "^1.12.2",
|
|
19
19
|
"uuid": "^10.0.0"
|
|
20
20
|
},
|
|
@@ -50,4 +50,4 @@
|
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@types/uuid": "^10.0.0"
|
|
52
52
|
}
|
|
53
|
-
}
|
|
53
|
+
}
|
|
@@ -41,10 +41,9 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
static areElementsValidForWhatsapp = (carouselMessage: CarouselMessage) => {
|
|
44
|
-
const isValid =
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
) && carouselMessage.content.elements.every(element => element.button.url)
|
|
44
|
+
const isValid = carouselMessage.content.elements.every(
|
|
45
|
+
element => element.button.url
|
|
46
|
+
)
|
|
48
47
|
|
|
49
48
|
if (!isValid) {
|
|
50
49
|
console.warn(
|
|
@@ -55,6 +54,16 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
55
54
|
return isValid
|
|
56
55
|
}
|
|
57
56
|
|
|
57
|
+
static generateWhatsappElementText(element: {
|
|
58
|
+
title: string
|
|
59
|
+
subtitle?: string
|
|
60
|
+
}): string {
|
|
61
|
+
if (element.subtitle) {
|
|
62
|
+
return `*${element.title}*\n${element.subtitle}`
|
|
63
|
+
}
|
|
64
|
+
return element.title
|
|
65
|
+
}
|
|
66
|
+
|
|
58
67
|
static fromAIAgent(
|
|
59
68
|
id: string,
|
|
60
69
|
carouselMessage: CarouselMessage,
|
|
@@ -66,7 +75,6 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
66
75
|
) {
|
|
67
76
|
if (carouselMessage.content.elements.length === 1) {
|
|
68
77
|
const element = carouselMessage.content.elements[0]
|
|
69
|
-
console.log('displaying whatsapp cta url button with element', element)
|
|
70
78
|
// TODO: Add a new fromAIAgent method in FlowWhatsappCtaUrlButtonNode to create a WhatsappCTAUrlButton from an AIAgent message
|
|
71
79
|
return (
|
|
72
80
|
<WhatsappCTAUrlButton
|
|
@@ -87,9 +95,10 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
87
95
|
const buttonText = element.button.text
|
|
88
96
|
const buttonUrl = element.button.url!
|
|
89
97
|
const imageLink = element.image
|
|
98
|
+
const text = FlowCarousel.generateWhatsappElementText(element)
|
|
90
99
|
|
|
91
100
|
return {
|
|
92
|
-
text
|
|
101
|
+
text,
|
|
93
102
|
action: { buttonText, buttonUrl, imageLink },
|
|
94
103
|
}
|
|
95
104
|
})}
|
|
@@ -152,12 +161,13 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
152
161
|
return (
|
|
153
162
|
<WhatsappInteractiveMediaCarousel
|
|
154
163
|
cards={this.elements.map(element => {
|
|
155
|
-
const
|
|
156
|
-
const
|
|
157
|
-
const
|
|
164
|
+
const text = FlowCarousel.generateWhatsappElementText(element)
|
|
165
|
+
const buttonText = element.button!.text!
|
|
166
|
+
const buttonUrl = element.button!.url!
|
|
167
|
+
const imageLink = element.image!
|
|
158
168
|
|
|
159
169
|
return {
|
|
160
|
-
text
|
|
170
|
+
text,
|
|
161
171
|
action: { buttonText, buttonUrl, imageLink },
|
|
162
172
|
}
|
|
163
173
|
})}
|