diff --git a/lib/src/message_widget.dart b/lib/src/message_widget.dart index 3632fca2..a883201a 100644 --- a/lib/src/message_widget.dart +++ b/lib/src/message_widget.dart @@ -1,7 +1,6 @@ import 'dart:math'; import 'dart:ui'; -import 'package:emojis/emoji.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -936,16 +935,7 @@ class _MessageWidgetState extends State { ); } - final _emojis = Emoji.all(); - bool get isOnlyEmoji => - widget.message.text.characters.isNotEmpty && - widget.message.text.trim().characters.every((c) => - _emojis.firstWhere( - (Emoji emoji) => emoji.char.contains(c), - orElse: () => null, - ) != - null) && - widget.message.text.characters.length < 4; + bool get isOnlyEmoji => textIsOnlyEmoji(widget.message.text); Color _getBackgroundColor() { if (hasQuotedMessage) { diff --git a/lib/src/quoted_message_widget.dart b/lib/src/quoted_message_widget.dart index c0439d46..7621174f 100644 --- a/lib/src/quoted_message_widget.dart +++ b/lib/src/quoted_message_widget.dart @@ -1,18 +1,17 @@ import 'dart:math'; import 'package:cached_network_image/cached_network_image.dart'; -import 'package:emojis/emoji.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat/stream_chat.dart'; import 'package:video_player/video_player.dart'; import 'attachment_error.dart'; +import 'extension.dart'; import 'image_attachment.dart'; import 'message_text.dart'; import 'stream_chat_theme.dart'; import 'user_avatar.dart'; import 'utils.dart'; -import 'extension.dart'; typedef QuotedMessageAttachmentThumbnailBuilder = Widget Function( BuildContext, @@ -126,8 +125,7 @@ class QuotedMessageWidget extends StatelessWidget { } Widget _buildMessage(BuildContext context) { - final isOnlyEmoji = - message.text.characters.every((c) => Emoji.byChar(c) != null); + final isOnlyEmoji = textIsOnlyEmoji(message.text); var msg = _hasAttachments && !_containsText ? message.copyWith(text: message.attachments.last?.title ?? '') : message; diff --git a/lib/src/utils.dart b/lib/src/utils.dart index f573b77b..be10263e 100644 --- a/lib/src/utils.dart +++ b/lib/src/utils.dart @@ -1,10 +1,10 @@ +import 'package:emojis/emoji.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat/stream_chat.dart'; import 'package:url_launcher/url_launcher.dart'; -import 'stream_svg_icon.dart'; - import '../stream_chat_flutter.dart'; +import 'stream_svg_icon.dart'; Future launchURL(BuildContext context, String url) async { if (await canLaunch(url)) { @@ -215,3 +215,16 @@ StreamSvgIcon getFileTypeImage(String type) { break; } } + +final _emojis = Emoji.all(); + +bool textIsOnlyEmoji(String text) { + return text.trim().characters.isNotEmpty && + text.trim().characters.every((c) => + _emojis.firstWhere( + (Emoji emoji) => emoji.char.contains(c), + orElse: () => null, + ) != + null) && + text.characters.length < 4; +}