diff --git a/packages/chatty/lib/data/local/image_picker_impl.dart b/packages/chatty/lib/data/local/image_picker_impl.dart index 2bd82dd..14a1ca3 100644 --- a/packages/chatty/lib/data/local/image_picker_impl.dart +++ b/packages/chatty/lib/data/local/image_picker_impl.dart @@ -6,7 +6,7 @@ class ImagePickerImpl extends ImagePickerRepository { @override Future pickImage() async { final picker = ImagePicker(); - final pickedFile = await picker.getImage( + final pickedFile = await picker.pickImage( source: ImageSource.gallery, maxWidth: 400, ); diff --git a/packages/chatty/lib/data/local/stream_api_local_impl.dart b/packages/chatty/lib/data/local/stream_api_local_impl.dart index 4a84e35..519db0a 100644 --- a/packages/chatty/lib/data/local/stream_api_local_impl.dart +++ b/packages/chatty/lib/data/local/stream_api_local_impl.dart @@ -8,7 +8,7 @@ class StreamApiLocalImpl extends StreamApiRepository { final StreamChatClient _client; @override - Future connectUser(ChatUser user, String? token) async { + Future connectUser(ChatUser user, String token) async { Map extraData = {}; if (user.image != null) { extraData['image'] = user.image; @@ -16,7 +16,7 @@ class StreamApiLocalImpl extends StreamApiRepository { if (user.name != null) { extraData['name'] = user.name; } - await _client.disconnect(); + await _client.disconnectUser(); await _client.connectUser( User(id: user.id!, extraData: extraData as Map), token, @@ -28,7 +28,7 @@ class StreamApiLocalImpl extends StreamApiRepository { Future> getChatUsers() async { final result = await _client.queryUsers(); final chatUsers = result.users - .where((element) => element.id != _client.state.user!.id) + .where((element) => element.id != _client.state.currentUser!.id) .map( (e) => ChatUser( id: e.id, @@ -42,7 +42,7 @@ class StreamApiLocalImpl extends StreamApiRepository { @override Future getToken(String userId) async { - return _client.devToken(userId); + return _client.devToken(userId).rawValue; } @override @@ -52,7 +52,7 @@ class StreamApiLocalImpl extends StreamApiRepository { final channel = _client.channel('messaging', id: channelId, extraData: { 'name': name!, 'image': image!, - 'members': [_client.state.user!.id, ...members!], + 'members': [_client.state.currentUser!.id, ...members!], }); await channel.watch(); return channel; @@ -61,11 +61,11 @@ class StreamApiLocalImpl extends StreamApiRepository { @override Future createSimpleChat(String? friendId) async { final channel = _client.channel('messaging', - id: '${_client.state.user!.id.hashCode}${friendId.hashCode}', + id: '${_client.state.currentUser!.id.hashCode}${friendId.hashCode}', extraData: { 'members': [ friendId, - _client.state.user!.id, + _client.state.currentUser!.id, ], }); await channel.watch(); @@ -74,7 +74,7 @@ class StreamApiLocalImpl extends StreamApiRepository { @override Future logout() { - return _client.disconnect(); + return _client.disconnectUser(); } @override @@ -84,6 +84,6 @@ class StreamApiLocalImpl extends StreamApiRepository { User(id: userId), token, ); - return _client.state.user!.name != userId; + return _client.state.currentUser!.name != userId; } } diff --git a/packages/chatty/lib/data/prod/stream_api_impl.dart b/packages/chatty/lib/data/prod/stream_api_impl.dart index fa65e76..20b8ad7 100644 --- a/packages/chatty/lib/data/prod/stream_api_impl.dart +++ b/packages/chatty/lib/data/prod/stream_api_impl.dart @@ -11,7 +11,7 @@ class StreamApiImpl extends StreamApiRepository { final StreamChatClient _client; @override - Future connectUser(ChatUser user, String? token) async { + Future connectUser(ChatUser user, String token) async { Map extraData = {}; if (user.image != null) { extraData['image'] = user.image; @@ -19,7 +19,7 @@ class StreamApiImpl extends StreamApiRepository { if (user.name != null) { extraData['name'] = user.name; } - await _client.disconnect(); + await _client.disconnectUser(); await _client.connectUser( User(id: user.id!, extraData: extraData as Map), token, @@ -31,7 +31,7 @@ class StreamApiImpl extends StreamApiRepository { Future> getChatUsers() async { final result = await _client.queryUsers(); final chatUsers = result.users - .where((element) => element.id != _client.state.user!.id) + .where((element) => element.id != _client.state.currentUser!.id) .map( (e) => ChatUser( id: e.id, @@ -44,7 +44,7 @@ class StreamApiImpl extends StreamApiRepository { } @override - Future getToken(String userId) async { + Future getToken(String userId) async { //TODO: use your own implementation in Production final response = await http.post( Uri.parse('your_backend_url'), @@ -62,12 +62,13 @@ class StreamApiImpl extends StreamApiRepository { } @override - Future createGroupChat(String id, String? name, List? members, + Future createGroupChat( + String id, String? name, List? members, {String? image}) async { final channel = _client.channel('messaging', id: id, extraData: { 'name': name!, 'image': image!, - 'members': [_client.state.user!.id, ...members!], + 'members': [_client.state.currentUser!.id, ...members!], }); await channel.watch(); return channel; @@ -76,11 +77,11 @@ class StreamApiImpl extends StreamApiRepository { @override Future createSimpleChat(String? friendId) async { final channel = _client.channel('messaging', - id: '${_client.state.user!.id.hashCode}${friendId.hashCode}', + id: '${_client.state.currentUser!.id.hashCode}${friendId.hashCode}', extraData: { 'members': [ friendId, - _client.state.user!.id, + _client.state.currentUser!.id, ], }); await channel.watch(); @@ -89,7 +90,7 @@ class StreamApiImpl extends StreamApiRepository { @override Future logout() async { - return _client.disconnect(); + return _client.disconnectUser(); } @override @@ -99,6 +100,6 @@ class StreamApiImpl extends StreamApiRepository { User(id: userId), token, ); - return _client.state.user!.name != userId; + return _client.state.currentUser!.name != userId; } } diff --git a/packages/chatty/lib/data/stream_api_repository.dart b/packages/chatty/lib/data/stream_api_repository.dart index b722932..1e0e881 100644 --- a/packages/chatty/lib/data/stream_api_repository.dart +++ b/packages/chatty/lib/data/stream_api_repository.dart @@ -3,12 +3,21 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'; abstract class StreamApiRepository { Future> getChatUsers(); - Future getToken(String userId); + + Future getToken(String userId); + Future connectIfExist(String userId); - Future connectUser(ChatUser user, String? token); + + Future connectUser(ChatUser user, String token); + Future createGroupChat( - String channelId, String? name, List? members, - {String? image}); + String channelId, + String? name, + List? members, { + String? image, + }); + Future createSimpleChat(String? friendId); + Future logout(); } diff --git a/packages/chatty/lib/domain/usecases/profile_sign_in_usecase.dart b/packages/chatty/lib/domain/usecases/profile_sign_in_usecase.dart index 19969d6..330d123 100644 --- a/packages/chatty/lib/domain/usecases/profile_sign_in_usecase.dart +++ b/packages/chatty/lib/domain/usecases/profile_sign_in_usecase.dart @@ -9,6 +9,7 @@ import '../exceptions/auth_exception.dart'; class ProfileInput { ProfileInput({this.imageFile, this.name}); + final File? imageFile; final String? name; } @@ -36,11 +37,12 @@ class ProfileSignInUseCase { input.imageFile, 'users/${auth.id}'); } await _streamApiRepository.connectUser( - ChatUser( - name: input.name, - id: auth.id, - image: image, - ), - token); + ChatUser( + name: input.name, + id: auth.id, + image: image, + ), + token, + ); } } diff --git a/packages/chatty/lib/main.dart b/packages/chatty/lib/main.dart index 817010d..22323d6 100644 --- a/packages/chatty/lib/main.dart +++ b/packages/chatty/lib/main.dart @@ -19,7 +19,10 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]); + SystemChrome.setEnabledSystemUIMode( + SystemUiMode.manual, + overlays: [SystemUiOverlay.bottom], + ); return MultiRepositoryProvider( providers: buildRepositories(_streamChatClient), @@ -36,9 +39,9 @@ class MyApp extends StatelessWidget { client: _streamChatClient, streamChatThemeData: StreamChatThemeData.fromTheme(Theme.of(context)).copyWith( - ownMessageTheme: MessageTheme( + ownMessageTheme: MessageThemeData( messageBackgroundColor: Theme.of(context).accentColor, - messageText: TextStyle(color: Colors.white), + messageTextStyle: TextStyle(color: Colors.white), ), ), ); diff --git a/packages/chatty/lib/ui/common/my_channel_preview.dart b/packages/chatty/lib/ui/common/my_channel_preview.dart index 2e168b5..ea83412 100644 --- a/packages/chatty/lib/ui/common/my_channel_preview.dart +++ b/packages/chatty/lib/ui/common/my_channel_preview.dart @@ -80,7 +80,7 @@ class MyChannelPreview extends StatelessWidget { tag: heroTag!, child: StreamChannel( channel: channel, - child: ChannelImage( + child: ChannelAvatar( onTap: onImageTap, ), ), @@ -91,8 +91,9 @@ class MyChannelPreview extends StatelessWidget { children: [ Flexible( child: ChannelName( - textStyle: - StreamChatTheme.of(context).channelPreviewTheme.title, + textStyle: StreamChatTheme.of(context) + .channelPreviewTheme + .titleStyle, ), ), StreamBuilder>( @@ -102,7 +103,8 @@ class MyChannelPreview extends StatelessWidget { if (!snapshot.hasData || snapshot.data!.isEmpty || !snapshot.data!.any((Member e) => - e.user!.id == channel.client.state.user!.id)) { + e.user!.id == + channel.client.state.currentUser!.id)) { return SizedBox(); } return ChannelUnreadIndicator( @@ -122,7 +124,7 @@ class MyChannelPreview extends StatelessWidget { (m) => !m.isDeleted && m.shadowed != true, ); if (lastMessage?.user?.id == - StreamChat.of(context).user!.id) { + StreamChat.of(context).currentUser!.id) { return Padding( padding: const EdgeInsets.only(right: 4.0), child: SendingIndicator( @@ -131,9 +133,9 @@ class MyChannelPreview extends StatelessWidget { .channelPreviewTheme .indicatorIconSize, isMessageRead: channel.state!.read - ?.where((element) => + .where((element) => element.user.id != - channel.client.state.user!.id) + channel.client.state.currentUser!.id) .where((element) => element.lastRead .isAfter(lastMessage.createdAt)) .isNotEmpty == @@ -181,7 +183,9 @@ class MyChannelPreview extends StatelessWidget { return Text( stringDate, - style: StreamChatTheme.of(context).channelPreviewTheme.lastMessageAt, + style: StreamChatTheme.of(context) + .channelPreviewTheme + .lastMessageAtStyle, ); }, ); @@ -199,23 +203,29 @@ class MyChannelPreview extends StatelessWidget { ' Channel is muted', style: StreamChatTheme.of(context) .channelPreviewTheme - .subtitle! + .subtitleStyle! .copyWith( color: StreamChatTheme.of(context) .channelPreviewTheme - .subtitle! + .subtitleStyle! .color, ), ), ], ); } + // TODO return TypingIndicator( channel: channel, alternativeWidget: _buildLastMessage(context), - style: StreamChatTheme.of(context).channelPreviewTheme.subtitle!.copyWith( - color: - StreamChatTheme.of(context).channelPreviewTheme.subtitle!.color, + style: StreamChatTheme.of(context) + .channelPreviewTheme + .subtitleStyle! + .copyWith( + color: StreamChatTheme.of(context) + .channelPreviewTheme + .subtitleStyle! + .color, ), ); } @@ -255,23 +265,31 @@ class MyChannelPreview extends StatelessWidget { text, lastMessage.mentionedUsers, lastMessage.attachments, - StreamChatTheme.of(context).channelPreviewTheme.subtitle!.copyWith( - color: StreamChatTheme.of(context) - .channelPreviewTheme - .subtitle! - .color, - fontStyle: (lastMessage.isSystem || lastMessage.isDeleted) - ? FontStyle.italic - : FontStyle.normal), - StreamChatTheme.of(context).channelPreviewTheme.subtitle!.copyWith( - color: StreamChatTheme.of(context) - .channelPreviewTheme - .subtitle! - .color, - fontStyle: (lastMessage.isSystem || lastMessage.isDeleted) - ? FontStyle.italic - : FontStyle.normal, - fontWeight: FontWeight.bold), + StreamChatTheme.of(context) + .channelPreviewTheme + .subtitleStyle! + .copyWith( + color: + StreamChatTheme.of(context) + .channelPreviewTheme + .subtitleStyle! + .color, + fontStyle: (lastMessage.isSystem || lastMessage.isDeleted) + ? FontStyle.italic + : FontStyle.normal), + StreamChatTheme.of(context) + .channelPreviewTheme + .subtitleStyle! + .copyWith( + color: + StreamChatTheme.of(context) + .channelPreviewTheme + .subtitleStyle! + .color, + fontStyle: (lastMessage.isSystem || lastMessage.isDeleted) + ? FontStyle.italic + : FontStyle.normal, + fontWeight: FontWeight.bold), ), maxLines: 1, overflow: TextOverflow.ellipsis, diff --git a/packages/chatty/lib/ui/home/chat/chat_view.dart b/packages/chatty/lib/ui/home/chat/chat_view.dart index 0bed83a..911a7db 100644 --- a/packages/chatty/lib/ui/home/chat/chat_view.dart +++ b/packages/chatty/lib/ui/home/chat/chat_view.dart @@ -25,7 +25,7 @@ class ChatView extends StatelessWidget { child: ChannelListView( filter: Filter.in_( 'members', - [StreamChat.of(context).user!.id], + [StreamChat.of(context).currentUser!.id], ), sort: [SortOption('last_message_at')], channelPreviewBuilder: (context, channel) { @@ -37,10 +37,11 @@ class ChatView extends StatelessWidget { onImageTap: () { String? name; String? image; - final currentUser = StreamChat.of(context).client.state.user; + final currentUser = + StreamChat.of(context).client.state.currentUser; if (channel.isGroup) { - name = channel.extraData['name']; - image = channel.extraData['image']; + name = channel.extraData['name'] as String?; + image = channel.extraData['image'] as String?; } else { final friend = channel.state!.members .where((element) => element.userId != currentUser!.id) diff --git a/packages/chatty/lib/ui/home/settings/settings_view.dart b/packages/chatty/lib/ui/home/settings/settings_view.dart index 4347749..cd12ada 100644 --- a/packages/chatty/lib/ui/home/settings/settings_view.dart +++ b/packages/chatty/lib/ui/home/settings/settings_view.dart @@ -10,9 +10,9 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'; class SettingsView extends StatelessWidget { @override Widget build(BuildContext context) { - final user = StreamChat.of(context).client.state.user!; + final user = StreamChat.of(context).client.state.currentUser!; final image = user.extraData['image']; - final textColor = Theme.of(context).appBarTheme.color; + final textColor = Theme.of(context).appBarTheme.backgroundColor; return MultiBlocProvider( providers: [ BlocProvider( diff --git a/packages/chatty/pubspec.yaml b/packages/chatty/pubspec.yaml index c0f4552..28aaaa3 100644 --- a/packages/chatty/pubspec.yaml +++ b/packages/chatty/pubspec.yaml @@ -10,17 +10,17 @@ dependencies: flutter: sdk: flutter - flutter_bloc: ^7.0.0 - stream_chat_flutter: ^2.0.0-nullsafety.3 - uuid: ^3.0.4 + flutter_bloc: ^7.1.0 + stream_chat_flutter: ^3.0.0 + uuid: ^3.0.5 - firebase_core: ^1.2.0 - google_sign_in: ^5.0.3 - firebase_auth: ^1.2.0 - firebase_storage: ^8.1.0 - shared_preferences: ^2.0.5 + firebase_core: ^1.7.0 + google_sign_in: ^5.1.1 + firebase_auth: ^3.1.2 + firebase_storage: ^10.0.4 + shared_preferences: ^2.0.8 http: any - collection: ^1.15.0-nullsafety.4 + collection: ^1.15.0 dev_dependencies: flutter_test: diff --git a/packages/imessage/lib/main.dart b/packages/imessage/lib/main.dart index ec5a59a..7763692 100644 --- a/packages/imessage/lib/main.dart +++ b/packages/imessage/lib/main.dart @@ -26,7 +26,9 @@ Future main() async { class IMessage extends StatelessWidget { final StreamChatClient client; + IMessage({required this.client}); + @override Widget build(BuildContext context) { initializeDateFormatting('en_US', null); @@ -58,9 +60,7 @@ class ChatLoader extends StatelessWidget { Filter.equal('type', 'messaging'), ]), sort: [SortOption('last_message_at')], - pagination: PaginationParams( - limit: 20, - ), + limit: 20, emptyBuilder: (BuildContext context) { return Center( child: Text('Looks like you are not in any channels'), diff --git a/packages/imessage/pubspec.yaml b/packages/imessage/pubspec.yaml index 4af86c3..c2605f6 100644 --- a/packages/imessage/pubspec.yaml +++ b/packages/imessage/pubspec.yaml @@ -24,20 +24,20 @@ dependencies: flutter: sdk: flutter intl: ^0.17.0 - stream_chat_flutter: ^2.2.0 - animations: ^2.0.0 + stream_chat_flutter: ^3.0.0 + animations: ^2.0.1 collection: ^1.15.0 - cached_network_image: ^3.0.0 + cached_network_image: ^3.1.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.0 + cupertino_icons: ^1.0.3 dev_dependencies: flutter_test: sdk: flutter - pedantic: ^1.9.0 + pedantic: ^1.11.1 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/stream_chat_v1/lib/channel_file_display_screen.dart b/packages/stream_chat_v1/lib/channel_file_display_screen.dart index 33394cf..c6bd84c 100644 --- a/packages/stream_chat_v1/lib/channel_file_display_screen.dart +++ b/packages/stream_chat_v1/lib/channel_file_display_screen.dart @@ -13,14 +13,14 @@ class ChannelFileDisplayScreen extends StatefulWidget { /// limit: the number of users to return (max is 30) /// offset: the offset (max is 1000) /// message_limit: how many messages should be included to each channel - final PaginationParams? paginationParams; + final PaginationParams paginationParams; /// The builder used when the file list is empty. final WidgetBuilder? emptyBuilder; const ChannelFileDisplayScreen({ this.sortOptions, - this.paginationParams, + this.paginationParams = const PaginationParams(limit: 20), this.emptyBuilder, }); @@ -151,7 +151,7 @@ class _ChannelFileDisplayScreenState extends State { ['file'], ), sort: widget.sortOptions, - pagination: widget.paginationParams!.copyWith( + pagination: widget.paginationParams.copyWith( offset: messageSearchBloc.messageResponses?.length ?? 0, ), ), diff --git a/packages/stream_chat_v1/lib/channel_list.dart b/packages/stream_chat_v1/lib/channel_list.dart index 0586b92..d675fba 100644 --- a/packages/stream_chat_v1/lib/channel_list.dart +++ b/packages/stream_chat_v1/lib/channel_list.dart @@ -90,7 +90,7 @@ class _ChannelList extends State { ), ], pullToRefresh: false, - paginationParams: PaginationParams(limit: 20), + limit: 20, emptyBuilder: (_) { return LayoutBuilder( builder: (context, viewportConstraints) { @@ -160,9 +160,7 @@ class _ChannelList extends State { swipeToAction: true, filter: Filter.in_('members', [user!.id]), presence: true, - pagination: PaginationParams( - limit: 20, - ), + limit: 20, onViewInfoTap: (channel) { Navigator.pop(context); if (channel.memberCount == 2 && channel.isDistinct) { diff --git a/packages/stream_chat_v1/lib/channel_media_display_screen.dart b/packages/stream_chat_v1/lib/channel_media_display_screen.dart index 9435718..d7fc81b 100644 --- a/packages/stream_chat_v1/lib/channel_media_display_screen.dart +++ b/packages/stream_chat_v1/lib/channel_media_display_screen.dart @@ -14,7 +14,7 @@ class ChannelMediaDisplayScreen extends StatefulWidget { /// limit: the number of users to return (max is 30) /// offset: the offset (max is 1000) /// message_limit: how many messages should be included to each channel - final PaginationParams? paginationParams; + final PaginationParams paginationParams; /// The builder used when the file list is empty. final WidgetBuilder? emptyBuilder; @@ -26,7 +26,7 @@ class ChannelMediaDisplayScreen extends StatefulWidget { const ChannelMediaDisplayScreen({ required this.messageTheme, this.sortOptions, - this.paginationParams, + this.paginationParams = const PaginationParams(limit: 20), this.emptyBuilder, this.onShowMessage, }); @@ -163,7 +163,7 @@ class _ChannelMediaDisplayScreenState extends State { ['image', 'video'], ), sort: widget.sortOptions, - pagination: widget.paginationParams!.copyWith( + pagination: widget.paginationParams.copyWith( offset: messageSearchBloc.messageResponses?.length ?? 0, ), ), diff --git a/packages/stream_chat_v1/lib/chat_info_screen.dart b/packages/stream_chat_v1/lib/chat_info_screen.dart index 9190479..3ef0814 100644 --- a/packages/stream_chat_v1/lib/chat_info_screen.dart +++ b/packages/stream_chat_v1/lib/chat_info_screen.dart @@ -235,7 +235,6 @@ class _ChatInfoScreenState extends State { direction: SortOption.ASC, ), ], - paginationParams: PaginationParams(limit: 20), onShowMessage: (m, c) async { final client = StreamChat.of(context).client; final message = m; @@ -296,7 +295,6 @@ class _ChatInfoScreenState extends State { direction: SortOption.ASC, ), ], - paginationParams: PaginationParams(limit: 20), onShowMessage: (m, c) async { final client = StreamChat.of(context).client; final message = m; @@ -356,7 +354,6 @@ class _ChatInfoScreenState extends State { direction: SortOption.ASC, ), ], - paginationParams: PaginationParams(limit: 20), ), ), ), diff --git a/packages/stream_chat_v1/lib/group_info_screen.dart b/packages/stream_chat_v1/lib/group_info_screen.dart index 9b1c881..eb28936 100644 --- a/packages/stream_chat_v1/lib/group_info_screen.dart +++ b/packages/stream_chat_v1/lib/group_info_screen.dart @@ -525,7 +525,6 @@ class _GroupInfoScreenState extends State { direction: SortOption.ASC, ), ], - paginationParams: PaginationParams(limit: 20), onShowMessage: (m, c) async { final client = StreamChat.of(context).client; final message = m; @@ -737,9 +736,7 @@ class _GroupInfoScreenState extends State { setState(() {}); }, crossAxisCount: 4, - pagination: PaginationParams( - limit: 25, - ), + limit: 25, filter: Filter.and( [ if (_searchController!.text.isNotEmpty) diff --git a/packages/stream_chat_v1/lib/new_chat_screen.dart b/packages/stream_chat_v1/lib/new_chat_screen.dart index c0829d0..461aa7c 100644 --- a/packages/stream_chat_v1/lib/new_chat_screen.dart +++ b/packages/stream_chat_v1/lib/new_chat_screen.dart @@ -303,9 +303,7 @@ class _NewChatScreenState extends State { _chipInputTextFieldState!.removeItem(user); } }, - pagination: PaginationParams( - limit: 25, - ), + limit: 25, filter: Filter.and([ if (_userNameQuery.isNotEmpty) Filter.autoComplete('name', _userNameQuery), diff --git a/packages/stream_chat_v1/lib/new_group_chat_screen.dart b/packages/stream_chat_v1/lib/new_group_chat_screen.dart index c9c7c08..2d0842a 100644 --- a/packages/stream_chat_v1/lib/new_group_chat_screen.dart +++ b/packages/stream_chat_v1/lib/new_group_chat_screen.dart @@ -244,9 +244,7 @@ class _NewGroupChatScreenState extends State { }); } }, - pagination: PaginationParams( - limit: 25, - ), + limit: 25, filter: Filter.and([ if (_userNameQuery.isNotEmpty) Filter.autoComplete('name', _userNameQuery), diff --git a/packages/stream_chat_v1/lib/pinned_messages_screen.dart b/packages/stream_chat_v1/lib/pinned_messages_screen.dart index bfbb2f6..da335ba 100644 --- a/packages/stream_chat_v1/lib/pinned_messages_screen.dart +++ b/packages/stream_chat_v1/lib/pinned_messages_screen.dart @@ -14,7 +14,7 @@ class PinnedMessagesScreen extends StatefulWidget { /// limit: the number of users to return (max is 30) /// offset: the offset (max is 1000) /// message_limit: how many messages should be included to each channel - final PaginationParams? paginationParams; + final PaginationParams paginationParams; /// The builder used when the file list is empty. final WidgetBuilder? emptyBuilder; @@ -26,7 +26,7 @@ class PinnedMessagesScreen extends StatefulWidget { const PinnedMessagesScreen({ required this.messageTheme, this.sortOptions, - this.paginationParams, + this.paginationParams = const PaginationParams(limit: 20), this.emptyBuilder, this.onShowMessage, }); @@ -156,7 +156,7 @@ class _PinnedMessagesScreenState extends State { true, ), sort: widget.sortOptions, - pagination: widget.paginationParams!.copyWith( + pagination: widget.paginationParams.copyWith( offset: messageSearchBloc.messageResponses?.length ?? 0, ), ), diff --git a/packages/stream_chat_v1/lib/user_mentions_page.dart b/packages/stream_chat_v1/lib/user_mentions_page.dart index b10df76..fa2d834 100644 --- a/packages/stream_chat_v1/lib/user_mentions_page.dart +++ b/packages/stream_chat_v1/lib/user_mentions_page.dart @@ -23,7 +23,7 @@ class UserMentionsPage extends StatelessWidget { direction: SortOption.ASC, ), ], - paginationParams: PaginationParams(limit: 20), + limit: 20, showResultCount: false, emptyBuilder: (_) { return LayoutBuilder( diff --git a/packages/stream_chat_v1/pubspec.yaml b/packages/stream_chat_v1/pubspec.yaml index b236a85..21cb538 100644 --- a/packages/stream_chat_v1/pubspec.yaml +++ b/packages/stream_chat_v1/pubspec.yaml @@ -7,7 +7,7 @@ environment: sdk: '>=2.12.0 <3.0.0' dependencies: - flutter_app_badger: ^1.2.0 + flutter_app_badger: ^1.3.0 flutter: sdk: flutter stream_chat_flutter: @@ -25,17 +25,17 @@ dependencies: url: https://github.com/GetStream/stream-chat-flutter.git ref: develop path: packages/stream_chat_localizations - flutter_local_notifications: ^5.0.0+4 + flutter_local_notifications: ^8.2.0 flutter_svg: ^0.22.0 - flutter_secure_storage: ^4.2.0 + flutter_secure_storage: ^4.2.1 yaml: ^3.1.0 - uuid: ^3.0.4 + uuid: ^3.0.5 streaming_shared_preferences: ^2.0.0 - lottie: ^1.0.1 - collection: ^1.15.0-nullsafety.4 + lottie: ^1.2.1 + collection: ^1.15.0 dev_dependencies: - flutter_launcher_icons: ^0.9.0 + flutter_launcher_icons: ^0.9.2 test: any dependency_overrides: