From 03e584f59103c8dda960c64637bd7ee40e8186f7 Mon Sep 17 00:00:00 2001 From: kanat <> Date: Wed, 26 Apr 2023 15:32:51 -0700 Subject: [PATCH] [1505] fix emoji regexp to exclude non-emoji chars --- .../stream_chat_flutter/lib/src/utils/extensions.dart | 2 +- .../test/src/utils/extension_test.dart | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/stream_chat_flutter/lib/src/utils/extensions.dart b/packages/stream_chat_flutter/lib/src/utils/extensions.dart index 67b622db..06b02aae 100644 --- a/packages/stream_chat_flutter/lib/src/utils/extensions.dart +++ b/packages/stream_chat_flutter/lib/src/utils/extensions.dart @@ -34,7 +34,7 @@ extension StringExtension on String { if (trimmedString.isEmpty) return false; if (trimmedString.characters.length > 3) return false; final emojiRegex = RegExp( - r'^(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])+$', + r'^(\u00a9|\u00ae|\u200d|[\ufe00-\ufe0f]|[\u2600-\u27FF]|[\u2300-\u2bFF]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])+$', multiLine: true, caseSensitive: false, ); diff --git a/packages/stream_chat_flutter/test/src/utils/extension_test.dart b/packages/stream_chat_flutter/test/src/utils/extension_test.dart index 26980727..c8e75f81 100644 --- a/packages/stream_chat_flutter/test/src/utils/extension_test.dart +++ b/packages/stream_chat_flutter/test/src/utils/extension_test.dart @@ -1,3 +1,4 @@ +import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; @@ -81,6 +82,16 @@ void main() { expect('🌢1'.isOnlyEmoji, false); expect('πŸ‘¨β€πŸ‘¨πŸ‘¨β€πŸ‘¨'.isOnlyEmoji, true); expect('πŸ‘¨β€πŸ‘¨πŸ‘¨β€πŸ‘¨ '.isOnlyEmoji, true); + expect('πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨'.isOnlyEmoji, false); + expect('⭐⭐⭐'.isOnlyEmoji, true); + expect('⭕⭕⭐'.isOnlyEmoji, true); + expect('βœ…'.isOnlyEmoji, true); + expect('☺️'.isOnlyEmoji, true); + }); + + test('korean symbols', () { + expect('γ…Žγ…Žγ…Ž'.isOnlyEmoji, false); + expect('γ…Žγ…Žγ…Žγ…Ž'.isOnlyEmoji, false); }); }); }