Skip to content

Commit b0ec244

Browse files
[Add] display users info
1 parent 7187f1c commit b0ec244

File tree

1 file changed

+44
-4
lines changed

1 file changed

+44
-4
lines changed

Diff for: frontend/lib/screens/main/posts/list.dart

+44-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import 'package:flutter/material.dart';
22
import 'package:provider/provider.dart';
33
import 'package:twitter/models/post.dart';
4+
import 'package:twitter/models/user.dart';
5+
import 'package:twitter/services/user.dart';
46

57
class ListPosts extends StatefulWidget {
68
ListPosts({Key key}) : super(key: key);
@@ -10,6 +12,7 @@ class ListPosts extends StatefulWidget {
1012
}
1113

1214
class _ListPostsState extends State<ListPosts> {
15+
UserService _userService = UserService();
1316
@override
1417
Widget build(BuildContext context) {
1518
final posts = Provider.of<List<PostModel>>(context) ?? [];
@@ -18,10 +21,47 @@ class _ListPostsState extends State<ListPosts> {
1821
itemCount: posts.length,
1922
itemBuilder: (context, index) {
2023
final post = posts[index];
21-
return ListTile(
22-
title: Text(post.creator),
23-
subtitle: Text(post.text),
24-
);
24+
return StreamBuilder(
25+
stream: _userService.getUserInfo(post.creator),
26+
builder: (BuildContext context, AsyncSnapshot<UserModel> snapshot) {
27+
if (!snapshot.hasData) {
28+
return Center(child: CircularProgressIndicator());
29+
}
30+
return ListTile(
31+
title: Padding(
32+
padding: EdgeInsets.fromLTRB(0, 15, 0, 15),
33+
child: Row(
34+
children: [
35+
snapshot.data.profileImageUrl != ''
36+
? CircleAvatar(
37+
radius: 20,
38+
backgroundImage:
39+
NetworkImage(snapshot.data.profileImageUrl))
40+
: Icon(Icons.person, size: 40),
41+
SizedBox(width: 10),
42+
Text(snapshot.data.name)
43+
],
44+
),
45+
),
46+
subtitle: Column(
47+
crossAxisAlignment: CrossAxisAlignment.start,
48+
children: [
49+
Padding(
50+
padding: EdgeInsets.fromLTRB(0, 15, 0, 15),
51+
child: Column(
52+
crossAxisAlignment: CrossAxisAlignment.start,
53+
children: [
54+
Text(post.text),
55+
SizedBox(height: 20),
56+
Text(post.timestamp.toDate().toString())
57+
],
58+
),
59+
),
60+
Divider(),
61+
],
62+
),
63+
);
64+
});
2565
},
2666
);
2767
}

0 commit comments

Comments
 (0)