From adbc331eb43fdc16f2325756131dfb709b16b831 Mon Sep 17 00:00:00 2001 From: DouglasKosvoski Date: Tue, 16 Jul 2024 18:15:22 -0300 Subject: [PATCH 1/2] feat: disable copy when there are no text --- .../MessageActions/MessageActions.vue | 238 ------------------ 1 file changed, 238 deletions(-) delete mode 100644 src/lib/Room/RoomMessage/MessageActions/MessageActions.vue diff --git a/src/lib/Room/RoomMessage/MessageActions/MessageActions.vue b/src/lib/Room/RoomMessage/MessageActions/MessageActions.vue deleted file mode 100644 index 0ed95261..00000000 --- a/src/lib/Room/RoomMessage/MessageActions/MessageActions.vue +++ /dev/null @@ -1,238 +0,0 @@ - - - From 5bba3c719965d1b8c85acac0d7d5ba11a098126f Mon Sep 17 00:00:00 2001 From: DouglasKosvoski Date: Fri, 9 Aug 2024 14:17:24 -0300 Subject: [PATCH 2/2] feat: increase font size for emojis only message --- src/components/FormatMessage/FormatMessage.scss | 5 +++++ src/components/FormatMessage/FormatMessage.vue | 8 ++++++++ src/utils/emoji/index.js | 14 ++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 src/utils/emoji/index.js diff --git a/src/components/FormatMessage/FormatMessage.scss b/src/components/FormatMessage/FormatMessage.scss index 1889ca6d..4dcfa3bf 100644 --- a/src/components/FormatMessage/FormatMessage.scss +++ b/src/components/FormatMessage/FormatMessage.scss @@ -3,6 +3,11 @@ display: inline; } + .vac-emoji-message { + font-size: 3rem; + letter-spacing: 4px; + } + .vac-icon-deleted { height: 14px; width: 14px; diff --git a/src/components/FormatMessage/FormatMessage.vue b/src/components/FormatMessage/FormatMessage.vue index 312dd642..3625a82f 100644 --- a/src/components/FormatMessage/FormatMessage.vue +++ b/src/components/FormatMessage/FormatMessage.vue @@ -7,6 +7,7 @@
@@ -69,6 +70,7 @@ import SvgIcon from '../SvgIcon/SvgIcon' import markdown from '../../utils/markdown' import { IMAGE_TYPES } from '../../utils/constants' +import { containsOnlyEmojis } from '../../utils/emoji' export default { name: 'FormatMessage', @@ -126,6 +128,12 @@ export default { }, methods: { + containsOnlyEmojis(message) { + const div = document.createElement('div') + div.innerHTML = message.value + const text = div.textContent || div.innerText || '' + return text.length && containsOnlyEmojis(text) + }, checkType(message, type) { return message.types && message.types.indexOf(type) !== -1 }, diff --git a/src/utils/emoji/index.js b/src/utils/emoji/index.js new file mode 100644 index 00000000..94a4ef69 --- /dev/null +++ b/src/utils/emoji/index.js @@ -0,0 +1,14 @@ +export const emojiRegex = /\p{Extended_Pictographic}/ug + +export const hasEmoji = text => { + return emojiRegex.test(text.toString()) +} + +export const extractEmojis = text => { + return text.toString().match(emojiRegex)?.join('') || '' +} + +export const containsOnlyEmojis = text => { + const emojisOnly = extractEmojis(text) + return emojisOnly.length === text.toString().length && hasEmoji(emojisOnly) +}