+4
-39
@@ -1240,22 +1240,7 @@
|
||||
const t = ev.target;
|
||||
if (t && t.dataset && t.dataset.emoji) {
|
||||
ev.stopPropagation();
|
||||
// Normalize alias -> emoji on client side too
|
||||
const alias = t.dataset.emoji;
|
||||
const clientEmojiMap = {
|
||||
'corazon': '❤️','heart':'❤️','<3':'❤️',
|
||||
'like':'👍','thumbs_up':'👍','thumbsup':'👍',
|
||||
'laugh':'😂','risa':'😂','joy':'😂',
|
||||
'wow':'😮','surprised':'😮',
|
||||
'sad':'😢','triste':'😢',
|
||||
'clap':'👏','applause':'👏',
|
||||
'party':'🎉','celebrate':'🎉',
|
||||
'fire':'🔥','pray':'🙏'
|
||||
};
|
||||
let emoji = alias;
|
||||
const key = (alias || '').toLowerCase().replace(/[^a-z0-9_\-]/g,'');
|
||||
if (clientEmojiMap[key]) emoji = clientEmojiMap[key];
|
||||
|
||||
const emoji = t.dataset.emoji;
|
||||
const mid = this._pendingReactionMessage;
|
||||
if (!mid) return;
|
||||
try {
|
||||
@@ -2828,34 +2813,14 @@
|
||||
if (!container) return;
|
||||
const el = container.querySelector(`[data-message-id="${messageId}"]`);
|
||||
if (!el) return;
|
||||
|
||||
// normalize emoji aliases (fallback mapping)
|
||||
const clientEmojiMap = {
|
||||
'corazon': '❤️','heart':'❤️','<3':'❤️',
|
||||
'like':'👍','thumbs_up':'👍','thumbsup':'👍',
|
||||
'laugh':'😂','risa':'😂','joy':'😂',
|
||||
'wow':'😮','surprised':'😮','sad':'😢','triste':'😢',
|
||||
'clap':'👏','party':'🎉','fire':'🔥','pray':'🙏'
|
||||
};
|
||||
|
||||
let display = emoji || '';
|
||||
if (display && /^[a-z0-9_\-]+$/i.test(display)) {
|
||||
const key = display.toLowerCase();
|
||||
if (clientEmojiMap[key]) display = clientEmojiMap[key];
|
||||
} else {
|
||||
// if it's a longer string, attempt to extract the first emoji char
|
||||
const m = (display || '').match(/[\x{1F300}-\x{1F6FF}\x{1F900}-\x{1F9FF}\x{2600}-\x{26FF}\x{2700}-\x{27BF}]/u);
|
||||
if (m && m[0]) display = m[0];
|
||||
}
|
||||
|
||||
let badge = el.querySelector('.reaction-badge');
|
||||
if (display) {
|
||||
if (emoji) {
|
||||
if (badge) {
|
||||
badge.textContent = display;
|
||||
badge.textContent = emoji;
|
||||
} else {
|
||||
const div = document.createElement('div');
|
||||
div.className = 'reaction-badge';
|
||||
div.textContent = display;
|
||||
div.textContent = emoji;
|
||||
const bubble = el.querySelector('.message-bubble');
|
||||
if (bubble) bubble.insertBefore(div, bubble.querySelector('.message-actions'));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user