Skip to content

Commit a12c19f

Browse files
committed
Remove logic from createState
1 parent ed3983b commit a12c19f

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

lib/pages/chat_page.dart

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,15 @@ import '../widgets/widgets.dart';
1717
import 'pages.dart';
1818

1919
class ChatPage extends StatefulWidget {
20-
final String peerId;
21-
final String peerAvatar;
22-
final String peerNickname;
20+
ChatPage({Key? key, required this.arguments}) : super(key: key);
2321

24-
ChatPage({Key? key, required this.peerId, required this.peerAvatar, required this.peerNickname}) : super(key: key);
22+
final ChatPageArguments arguments;
2523

2624
@override
27-
State createState() => ChatPageState(
28-
peerId: this.peerId,
29-
peerAvatar: this.peerAvatar,
30-
peerNickname: this.peerNickname,
31-
);
25+
ChatPageState createState() => ChatPageState();
3226
}
3327

3428
class ChatPageState extends State<ChatPage> {
35-
ChatPageState({Key? key, required this.peerId, required this.peerAvatar, required this.peerNickname});
36-
37-
String peerId;
38-
String peerAvatar;
39-
String peerNickname;
4029
late String currentUserId;
4130

4231
List<QueryDocumentSnapshot> listMessage = [];
@@ -95,6 +84,7 @@ class ChatPageState extends State<ChatPage> {
9584
(Route<dynamic> route) => false,
9685
);
9786
}
87+
String peerId = widget.arguments.peerId;
9888
if (currentUserId.compareTo(peerId) > 0) {
9989
groupChatId = '$currentUserId-$peerId';
10090
} else {
@@ -153,7 +143,7 @@ class ChatPageState extends State<ChatPage> {
153143
void onSendMessage(String content, int type) {
154144
if (content.trim().isNotEmpty) {
155145
textEditingController.clear();
156-
chatProvider.sendMessage(content, type, groupChatId, currentUserId, peerId);
146+
chatProvider.sendMessage(content, type, groupChatId, currentUserId, widget.arguments.peerId);
157147
listScrollController.animateTo(0, duration: Duration(milliseconds: 300), curve: Curves.easeOut);
158148
} else {
159149
Fluttertoast.showToast(msg: 'Nothing to send', backgroundColor: ColorConstants.greyColor);
@@ -265,7 +255,7 @@ class ChatPageState extends State<ChatPage> {
265255
isLastMessageLeft(index)
266256
? Material(
267257
child: Image.network(
268-
peerAvatar,
258+
widget.arguments.peerAvatar,
269259
loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent? loadingProgress) {
270260
if (loadingProgress == null) return child;
271261
return Center(
@@ -438,7 +428,7 @@ class ChatPageState extends State<ChatPage> {
438428
return Scaffold(
439429
appBar: AppBar(
440430
title: Text(
441-
this.peerNickname,
431+
this.widget.arguments.peerNickname,
442432
style: TextStyle(color: ColorConstants.primaryColor),
443433
),
444434
centerTitle: true,
@@ -689,3 +679,11 @@ class ChatPageState extends State<ChatPage> {
689679
);
690680
}
691681
}
682+
683+
class ChatPageArguments {
684+
final String peerId;
685+
final String peerAvatar;
686+
final String peerNickname;
687+
688+
ChatPageArguments({required this.peerId, required this.peerAvatar, required this.peerNickname});
689+
}

lib/pages/home_page.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -474,9 +474,11 @@ class HomePageState extends State<HomePage> {
474474
context,
475475
MaterialPageRoute(
476476
builder: (context) => ChatPage(
477-
peerId: userChat.id,
478-
peerAvatar: userChat.photoUrl,
479-
peerNickname: userChat.nickname,
477+
arguments: ChatPageArguments(
478+
peerId: userChat.id,
479+
peerAvatar: userChat.photoUrl,
480+
peerNickname: userChat.nickname,
481+
),
480482
),
481483
),
482484
);

0 commit comments

Comments
 (0)