Skip to content

Commit 7e48048

Browse files
committed
Bug fix: Fixed a feature that detects and extracts the emoticon from the callout message
1 parent fc8d3a7 commit 7e48048

File tree

1 file changed

+35
-13
lines changed

1 file changed

+35
-13
lines changed

src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.ts

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -90,23 +90,48 @@ export class EyeeyeCatcherCardComponent implements OnInit {
9090
}
9191
}
9292

93+
// checkIsEmoji() {
94+
// let title = this.g.CALLOUT_TITLE_PLACEHOLDER.trim();
95+
// if (this.g.calloutTitle && this.g.calloutTitle !== '') {
96+
// title = this.g.calloutTitle.trim();
97+
// }
98+
// this.title = title;
99+
// const regex = emojiRegex();
100+
// let match: any;
101+
// // this.logger.debug('[EYEEYE-CATCHER-CARD]-->regex, emojiRegex', regex, emojiRegex)
102+
// while (match = regex.exec(title)) {
103+
// const emoji = match[0];
104+
// this.logger.debug('[EYEEYE-CATCHER-CARD]--> match', match)
105+
// if (title.indexOf(emoji) === 0) {
106+
// this.title = title.replace(emoji, '');
107+
// this.emoticon = emoji;
108+
// }
109+
// break;
110+
// }
111+
// }
112+
113+
93114
checkIsEmoji() {
94115
let title = this.g.CALLOUT_TITLE_PLACEHOLDER.trim();
95116
if (this.g.calloutTitle && this.g.calloutTitle !== '') {
96117
title = this.g.calloutTitle.trim();
97118
}
119+
120+
// Reset emoticon
121+
this.emoticon = null;
98122
this.title = title;
99-
const regex = emojiRegex();
100-
let match: any;
101-
// this.logger.debug('[EYEEYE-CATCHER-CARD]-->regex, emojiRegex', regex, emojiRegex)
102-
while (match = regex.exec(title)) {
123+
124+
// Regex per emoji Unicode (compatibile)
125+
const regex = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/;
126+
const match = title.match(regex);
127+
128+
if (match) {
103129
const emoji = match[0];
104-
this.logger.debug('[EYEEYE-CATCHER-CARD]--> match', match)
105-
if (title.indexOf(emoji) === 0) {
106-
this.title = title.replace(emoji, '');
107-
this.emoticon = emoji;
108-
}
109-
break;
130+
this.logger.debug('[EYEEYE-CATCHER-CARD]--> emoji trovata:', emoji);
131+
132+
// Estrai la prima emoji trovata e rimuovila dal testo
133+
this.title = title.replace(emoji, '').trim();
134+
this.emoticon = emoji;
110135
}
111136
}
112137

@@ -164,6 +189,3 @@ export class EyeeyeCatcherCardComponent implements OnInit {
164189
}
165190

166191

167-
export default function emojiRegex(): RegExp {
168-
return /(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u2700-\u27BF])|(?:\u24C2)|(?:[\u1F680-\u1F6FF])/g;
169-
}

0 commit comments

Comments
 (0)