У меня есть пользовательский канал, который преобразует имя смайлика (например: wink :) в родной смайлик (например, ?), чтобы пользователь мог видеть смайлики вместо текста.
Но когда пользователь щелкает сообщение, мне нужно отправлять текст на сервер, а не смайлики. Как я могу показать эмодзи внутри текстовой области, но отправить текст?
private emojiObj = new Map();
constructor(private emojiService: EmojiService) {
emojis.forEach((el) => {
this.emojiObj.set(el.shortName, el.unified);
})
transform(value: any): any {
if (!value.length) {
return '';
} else {
return this.match(value);
}
}
match(value: any): any {
const findShortNames = new RegExp(':(.*?):', 'g');
if (value.match(findShortNames)) {
return value.replace(findShortNames, this.emojiService.unifiedToNative(this.emojiObj.get(Array.from(value.matchAll(findShortNames))[0][1])));
} else {
return value;
}