diff --git a/src/Types/Message.ts b/src/Types/Message.ts index fcd9252a..1df1f129 100644 --- a/src/Types/Message.ts +++ b/src/Types/Message.ts @@ -467,6 +467,8 @@ export type CarouselCardInput = { export type CarouselMessageOptions = { /** Cards in the carousel (2-10 recommended) */ cards: CarouselCardInput[] + /** Header title (displayed once above the carousel) */ + title?: string /** Main body text */ text?: string /** Footer text */ diff --git a/src/Utils/messages.ts b/src/Utils/messages.ts index 1179be8b..c2e94832 100644 --- a/src/Utils/messages.ts +++ b/src/Utils/messages.ts @@ -591,7 +591,7 @@ export const generateCarouselMessage = async ( options: CarouselMessageOptions, mediaOptions?: MessageContentGenerationOptions ): Promise => { - const { cards, text, footer } = options + const { cards, title, text, footer } = options if (!cards || cards.length < 2) { throw new Boom('Carousel requires at least 2 cards', { statusCode: 400 }) @@ -689,7 +689,7 @@ export const generateCarouselMessage = async ( // - messageVersion: 1 in carouselMessage // - Body and footer at root level const interactiveMessage: proto.Message.IInteractiveMessage = { - header: { title: text || '', hasMediaAttachment: false }, + header: { title: title || ' ', hasMediaAttachment: false }, body: { text: text || '' }, footer: footer ? { text: footer } : undefined, carouselMessage: { @@ -1238,6 +1238,7 @@ export const generateWAMessageContent = async ( const carouselMsg = message as any const carouselOptions: CarouselMessageOptions = { cards: carouselMsg.nativeCarousel.cards, + title: carouselMsg.nativeCarousel.title || carouselMsg.title, text: carouselMsg.text, footer: carouselMsg.footer }