feat: add support for super stickers in chat and overlay components, including image display, accessibility labels, and backend parsing enhancements

This commit is contained in:
Yusuf İpek
2025-10-12 21:37:53 +03:00
parent da1499733f
commit 1678117d16
10 changed files with 138 additions and 15 deletions
+13
View File
@@ -651,6 +651,19 @@ function ChatItem({ message, isSelected, onSelect, onLinkClick, isPreviouslySele
<MessageText text={message.text} onLinkClick={onLinkClick} />
</p>
)}
{message.superChat?.stickerUrl && (
<div className="chatItem__sticker">
<img
src={proxyImageUrl(message.superChat.stickerUrl)}
alt={message.superChat.stickerAlt || 'Super Sticker'}
className="chatItem__stickerImage"
onError={(e) => {
// Hide image on error
e.currentTarget.style.display = 'none';
}}
/>
</div>
)}
</button>
);
}
+34
View File
@@ -1043,6 +1043,40 @@ main {
display: inline-block;
}
/* Super sticker images */
.chatItem__sticker {
display: flex;
justify-content: center;
margin-top: 0.75rem;
padding-top: 0.75rem;
border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.chatItem__stickerImage {
max-width: 144px;
max-height: 144px;
width: auto;
height: auto;
border-radius: 8px;
object-fit: contain;
}
.overlay__sticker {
display: flex;
justify-content: center;
margin-top: 0.75rem;
padding-top: 0.75rem;
}
.overlay__stickerImage {
max-width: 144px;
max-height: 144px;
width: auto;
height: auto;
border-radius: 8px;
object-fit: contain;
}
/* Message links */
.message-link {
color: #60a5fa;
+13
View File
@@ -117,6 +117,19 @@ export default function OverlayPage() {
) : displayMessage.text && displayMessage.text !== 'N/A' && (
<p className="overlay__superchat-text">{displayMessage.text}</p>
)}
{displayMessage.superChat.stickerUrl && (
<div className="overlay__sticker">
<img
src={proxyImageUrl(displayMessage.superChat.stickerUrl)}
alt={displayMessage.superChat.stickerAlt || 'Super Sticker'}
className="overlay__stickerImage"
onError={(e) => {
// Hide image on error
e.currentTarget.style.display = 'none';
}}
/>
</div>
)}
</>
) : (displayMessage.membershipGift || displayMessage.membershipGiftPurchase) ? (
<>