fix(carousel): add carouselCardType HSCROLL_CARDS

fix(carousel): add carouselCardType HSCROLL_CARDS
This commit is contained in:
Renato Alcara
2026-02-06 14:05:12 -03:00
committed by GitHub
+8 -14
View File
@@ -654,22 +654,16 @@ export const generateCarouselMessage = async (
}, },
carouselMessage: { carouselMessage: {
cards: carouselCards, cards: carouselCards,
messageVersion: 1 messageVersion: 1,
carouselCardType: 1 // HSCROLL_CARDS - required for Web/Desktop to render carousel cards
} }
} }
// Wrap in viewOnceMessage - required for WhatsApp Web/Desktop rendering // Return as direct interactiveMessage (no viewOnceMessage wrapper)
// Without this wrapper, Web only shows the header/body text // viewOnceMessage causes error 479 rejection from linked devices (Web/Desktop)
// carouselCardType: 1 (HSCROLL_CARDS) tells Web how to render the cards
return { return {
viewOnceMessage: { interactiveMessage
message: {
messageContextInfo: {
deviceListMetadata: {},
deviceListMetadataVersion: 2
},
interactiveMessage
}
}
} }
} }
@@ -1166,8 +1160,8 @@ export const generateWAMessageContent = async (
} }
// Pass options for media processing if cards have images/videos // Pass options for media processing if cards have images/videos
const generated = await generateCarouselMessage(carouselOptions, options) const generated = await generateCarouselMessage(carouselOptions, options)
m.viewOnceMessage = generated.viewOnceMessage m.interactiveMessage = generated.interactiveMessage
options.logger?.info('Sending carouselMessage with viewOnceMessage wrapper') options.logger?.info('Sending carouselMessage with carouselCardType HSCROLL_CARDS')
} }
// Check for nativeList // Check for nativeList
else if (hasNonNullishProperty(message, 'nativeList')) { else if (hasNonNullishProperty(message, 'nativeList')) {