diff --git a/packages/stream_chat_flutter/example/lib/tutorial_part_1.dart b/packages/stream_chat_flutter/example/lib/tutorial_part_1.dart index 7c73693e..94524ebb 100644 --- a/packages/stream_chat_flutter/example/lib/tutorial_part_1.dart +++ b/packages/stream_chat_flutter/example/lib/tutorial_part_1.dart @@ -1,4 +1,5 @@ // ignore_for_file: public_member_api_docs +// ignore_for_file: prefer_expression_function_bodies import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; @@ -67,10 +68,8 @@ class MyApp extends StatelessWidget { final Channel channel; @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { return MaterialApp( - // ignore: prefer_expression_function_bodies builder: (context, widget) { return StreamChat( client: client, diff --git a/packages/stream_chat_flutter/example/lib/tutorial_part_2.dart b/packages/stream_chat_flutter/example/lib/tutorial_part_2.dart index 8f2ba8b1..15f7914c 100644 --- a/packages/stream_chat_flutter/example/lib/tutorial_part_2.dart +++ b/packages/stream_chat_flutter/example/lib/tutorial_part_2.dart @@ -1,4 +1,6 @@ // ignore_for_file: public_member_api_docs +// ignore_for_file: prefer_expression_function_bodies + import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; @@ -14,7 +16,7 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'; /// > Note: the SDK uses Flutter’s [Navigator] to move from one route to /// another. This allows us to avoid any boiler-plate code. /// > Of course, you can take total control of how navigation works by -/// customizing widgets like [Channel] and [ChannelList]. +/// customizing widgets like [StreamChannel] and [StreamChannelListView]. /// /// If you run the application, you will see that the first screen shows a /// list of conversations, you can open each by tapping and go back to the list. @@ -56,7 +58,6 @@ class MyApp extends StatelessWidget { final StreamChatClient client; @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { return MaterialApp( builder: (context, child) => StreamChat( @@ -92,6 +93,12 @@ class _ChannelListPageState extends State { sort: const [SortOption('last_message_at')], ); + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) => Scaffold( body: RefreshIndicator( diff --git a/packages/stream_chat_flutter/example/lib/tutorial_part_3.dart b/packages/stream_chat_flutter/example/lib/tutorial_part_3.dart index aec63c57..122c62a3 100644 --- a/packages/stream_chat_flutter/example/lib/tutorial_part_3.dart +++ b/packages/stream_chat_flutter/example/lib/tutorial_part_3.dart @@ -1,4 +1,5 @@ // ignore_for_file: public_member_api_docs +// ignore_for_file: prefer_expression_function_bodies import 'package:collection/collection.dart' show IterableExtension; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; @@ -16,8 +17,8 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'; /// and include the number of unread messages for each. /// /// We're passing a custom widget -/// to [StreamChannelListView.channelPreviewBuilder]; -/// this will override the default [StreamChannelPreview] and allows you +/// to [StreamChannelListView.itemBuilder]; +/// this will override the default [StreamChannelListTile] and allows you /// to create one yourself. /// /// There are a couple interesting things we do in this widget: @@ -57,7 +58,6 @@ class MyApp extends StatelessWidget { final StreamChatClient client; @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { return MaterialApp( builder: (context, child) => StreamChat( @@ -89,6 +89,12 @@ class _ChannelListPageState extends State { limit: 20, ); + @override + void dispose() { + _listController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) => Scaffold( body: StreamChannelListView( @@ -160,7 +166,6 @@ class ChannelPage extends StatelessWidget { }) : super(key: key); @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { return Scaffold( appBar: const StreamChannelHeader(), diff --git a/packages/stream_chat_flutter/example/lib/tutorial_part_4.dart b/packages/stream_chat_flutter/example/lib/tutorial_part_4.dart index 5a4d13fe..209af7ea 100644 --- a/packages/stream_chat_flutter/example/lib/tutorial_part_4.dart +++ b/packages/stream_chat_flutter/example/lib/tutorial_part_4.dart @@ -1,4 +1,6 @@ // ignore_for_file: public_member_api_docs +// ignore_for_file: prefer_expression_function_bodies + import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; @@ -43,7 +45,6 @@ class MyApp extends StatelessWidget { final StreamChatClient client; @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { return MaterialApp( builder: (context, child) => StreamChat( @@ -75,6 +76,12 @@ class _ChannelListPageState extends State { limit: 20, ); + @override + void dispose() { + _listController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) => Scaffold( body: StreamChannelListView( @@ -125,7 +132,6 @@ class ThreadPage extends StatelessWidget { final Message? parent; @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { return Scaffold( appBar: StreamThreadHeader( diff --git a/packages/stream_chat_flutter/example/lib/tutorial_part_5.dart b/packages/stream_chat_flutter/example/lib/tutorial_part_5.dart index fd6081f7..7977d3be 100644 --- a/packages/stream_chat_flutter/example/lib/tutorial_part_5.dart +++ b/packages/stream_chat_flutter/example/lib/tutorial_part_5.dart @@ -1,4 +1,5 @@ // ignore_for_file: public_member_api_docs +// ignore_for_file: prefer_expression_function_bodies import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; @@ -47,7 +48,6 @@ class MyApp extends StatelessWidget { final StreamChatClient client; @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { return MaterialApp( builder: (context, child) => StreamChat( @@ -79,6 +79,12 @@ class _ChannelListPageState extends State { limit: 20, ); + @override + void dispose() { + _listController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) => Scaffold( body: StreamChannelListView( @@ -103,7 +109,6 @@ class ChannelPage extends StatelessWidget { }) : super(key: key); @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { return Scaffold( appBar: const StreamChannelHeader(), diff --git a/packages/stream_chat_flutter/example/lib/tutorial_part_6.dart b/packages/stream_chat_flutter/example/lib/tutorial_part_6.dart index 6ff1bb64..a872fb6e 100644 --- a/packages/stream_chat_flutter/example/lib/tutorial_part_6.dart +++ b/packages/stream_chat_flutter/example/lib/tutorial_part_6.dart @@ -1,4 +1,6 @@ // ignore_for_file: public_member_api_docs +// ignore_for_file: prefer_expression_function_bodies + import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; @@ -112,6 +114,13 @@ class _ChannelListPageState extends State { sort: const [SortOption('last_message_at')], limit: 20, ); + + @override + void dispose() { + _listController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) => Scaffold( body: StreamChannelListView( @@ -162,7 +171,6 @@ class ThreadPage extends StatelessWidget { final Message? parent; @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { return Scaffold( appBar: StreamThreadHeader( diff --git a/packages/stream_chat_flutter/lib/src/channel_avatar.dart b/packages/stream_chat_flutter/lib/src/channel_avatar.dart index 077302dd..cf0c74b1 100644 --- a/packages/stream_chat_flutter/lib/src/channel_avatar.dart +++ b/packages/stream_chat_flutter/lib/src/channel_avatar.dart @@ -24,7 +24,7 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'; /// child: StreamChannel( /// channel: channel, /// child: Center( -/// child: ChannelImage( +/// child: ChannelAvatar( /// channel: channel, /// ), /// ), diff --git a/packages/stream_chat_flutter/lib/src/message_list_view.dart b/packages/stream_chat_flutter/lib/src/message_list_view.dart index 0bf2e44d..f4a8fef8 100644 --- a/packages/stream_chat_flutter/lib/src/message_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/message_list_view.dart @@ -136,29 +136,25 @@ typedef MessageListView = StreamMessageListView; /// ```dart /// class ChannelPage extends StatelessWidget { /// const ChannelPage({ -/// Key key, +/// Key? key, /// }) : super(key: key); /// /// @override -/// Widget build(BuildContext context) { -/// return Scaffold( -/// appBar: ChannelHeader(), -/// body: Column( -/// children: [ -/// Expanded( -/// child: MessageListView( -/// threadBuilder: (_, parentMessage) { -/// return ThreadPage( +/// Widget build(BuildContext context) => Scaffold( +/// appBar: const StreamChannelHeader(), +/// body: Column( +/// children: [ +/// Expanded( +/// child: StreamMessageListView( +/// threadBuilder: (_, parentMessage) => ThreadPage( /// parent: parentMessage, -/// ); -/// }, +/// ), +/// ), /// ), -/// ), -/// MessageInput(), -/// ], -/// ), -/// ); -/// } +/// const StreamMessageInput(), +/// ], +/// ), +/// ); /// } /// ``` /// @@ -172,7 +168,7 @@ typedef MessageListView = StreamMessageListView; /// Modify it to change the widget appearance. /// {@endtemplate} class StreamMessageListView extends StatefulWidget { - /// Instantiate a new MessageListView + /// Instantiate a new StreamMessageListView. const StreamMessageListView({ Key? key, this.showScrollToBottom = true, diff --git a/packages/stream_chat_flutter/lib/src/v4/message_input/stream_message_input.dart b/packages/stream_chat_flutter/lib/src/v4/message_input/stream_message_input.dart index 085b021a..321ea3bc 100644 --- a/packages/stream_chat_flutter/lib/src/v4/message_input/stream_message_input.dart +++ b/packages/stream_chat_flutter/lib/src/v4/message_input/stream_message_input.dart @@ -144,29 +144,25 @@ const _kDefaultMaxAttachmentSize = 20971520; // 20MB in Bytes /// ```dart /// class ChannelPage extends StatelessWidget { /// const ChannelPage({ -/// Key key, +/// Key? key, /// }) : super(key: key); /// /// @override -/// Widget build(BuildContext context) { -/// return Scaffold( -/// appBar: ChannelHeader(), -/// body: Column( -/// children: [ -/// Expanded( -/// child: MessageListView( -/// threadBuilder: (_, parentMessage) { -/// return ThreadPage( +/// Widget build(BuildContext context) => Scaffold( +/// appBar: const StreamChannelHeader(), +/// body: Column( +/// children: [ +/// Expanded( +/// child: StreamMessageListView( +/// threadBuilder: (_, parentMessage) => ThreadPage( /// parent: parentMessage, -/// ); -/// }, +/// ), +/// ), /// ), -/// ), -/// MessageInput(), -/// ], -/// ), -/// ); -/// } +/// const StreamMessageInput(), +/// ], +/// ), +/// ); /// } /// ``` /// diff --git a/packages/stream_chat_flutter/lib/src/v4/stream_channel_avatar.dart b/packages/stream_chat_flutter/lib/src/v4/stream_channel_avatar.dart index 95cc14f2..448e39d8 100644 --- a/packages/stream_chat_flutter/lib/src/v4/stream_channel_avatar.dart +++ b/packages/stream_chat_flutter/lib/src/v4/stream_channel_avatar.dart @@ -24,7 +24,7 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'; /// child: StreamChannel( /// channel: channel, /// child: Center( -/// child: ChannelImage( +/// child: StreamChannelAvatar( /// channel: channel, /// ), /// ),