From 2ebb05bb799f246502d98d140f0dedeb4988f236 Mon Sep 17 00:00:00 2001 From: Stein Milder Date: Wed, 9 Nov 2022 11:36:10 +0100 Subject: [PATCH] feat: indicator for uploading images --- .../lib/flutter_community_chat.dart | 29 +++++++++++++++++-- packages/flutter_community_chat/pubspec.lock | 2 +- .../lib/src/config/chat_translations.dart | 2 ++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/packages/flutter_community_chat/lib/flutter_community_chat.dart b/packages/flutter_community_chat/lib/flutter_community_chat.dart index fd982da..f367dbe 100644 --- a/packages/flutter_community_chat/lib/flutter_community_chat.dart +++ b/packages/flutter_community_chat/lib/flutter_community_chat.dart @@ -81,6 +81,27 @@ class _CommunityChatState extends State { ); } + void _beforeUploadingImage() => ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + duration: const Duration(minutes: 1), + content: Row( + children: [ + const SizedBox( + width: 25, + height: 25, + child: CircularProgressIndicator(color: Colors.grey), + ), + Padding( + padding: const EdgeInsets.only(left: 16.0), + child: Text(widget.translations.imageUploading), + ), + ], + ), + ), + ); + + _afterUploadingImage() => ScaffoldMessenger.of(context).hideCurrentSnackBar(); + Future _onPressSelectImage(BuildContext context, ChatModel chat) => showModalBottomSheet( context: context, @@ -97,10 +118,14 @@ class _CommunityChatState extends State { ), ), ).then( - (image) { + (image) async { + _beforeUploadingImage(); + if (image != null) { - return widget.dataProvider.sendImageMessage(image); + await widget.dataProvider.sendImageMessage(image); } + + _afterUploadingImage(); }, ); diff --git a/packages/flutter_community_chat/pubspec.lock b/packages/flutter_community_chat/pubspec.lock index 0dde4e5..7e98a8f 100644 --- a/packages/flutter_community_chat/pubspec.lock +++ b/packages/flutter_community_chat/pubspec.lock @@ -188,7 +188,7 @@ packages: description: path: "packages/flutter_community_chat_view" ref: HEAD - resolved-ref: adc7d063039e44e5a76275bed48d336b18271f3d + resolved-ref: d10857d28905114c481753cd6193d685b713f028 url: "https://github.com/Iconica-Development/flutter_community_chat.git" source: git version: "0.0.1" diff --git a/packages/flutter_community_chat_view/lib/src/config/chat_translations.dart b/packages/flutter_community_chat_view/lib/src/config/chat_translations.dart index 9a0233b..4bdc3d2 100644 --- a/packages/flutter_community_chat_view/lib/src/config/chat_translations.dart +++ b/packages/flutter_community_chat_view/lib/src/config/chat_translations.dart @@ -11,6 +11,7 @@ class ChatTranslations { this.searchPlaceholder = 'Search...', this.cancelImagePickerBtn = 'Cancel', this.messagePlaceholder = 'Write your message here...', + this.imageUploading = 'Image is uploading...', }); final String chatsTitle; @@ -20,4 +21,5 @@ class ChatTranslations { final String searchPlaceholder; final String cancelImagePickerBtn; final String messagePlaceholder; + final String imageUploading; }