Skip to content

Commit

Permalink
Merge pull request #11 from SimCoderYoutube/lesson_11/display_user_in…
Browse files Browse the repository at this point in the history
…formation_in_list_of_posts

[Add] display users info
  • Loading branch information
SimCoderYoutube committed Mar 20, 2021
2 parents 7c4eeff + b0ec244 commit 455f745
Showing 1 changed file with 44 additions and 4 deletions.
48 changes: 44 additions & 4 deletions frontend/lib/screens/main/posts/list.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:twitter/models/post.dart';
import 'package:twitter/models/user.dart';
import 'package:twitter/services/user.dart';

class ListPosts extends StatefulWidget {
ListPosts({Key key}) : super(key: key);
Expand All @@ -10,6 +12,7 @@ class ListPosts extends StatefulWidget {
}

class _ListPostsState extends State<ListPosts> {
UserService _userService = UserService();
@override
Widget build(BuildContext context) {
final posts = Provider.of<List<PostModel>>(context) ?? [];
Expand All @@ -18,10 +21,47 @@ class _ListPostsState extends State<ListPosts> {
itemCount: posts.length,
itemBuilder: (context, index) {
final post = posts[index];
return ListTile(
title: Text(post.creator),
subtitle: Text(post.text),
);
return StreamBuilder(
stream: _userService.getUserInfo(post.creator),
builder: (BuildContext context, AsyncSnapshot<UserModel> snapshot) {
if (!snapshot.hasData) {
return Center(child: CircularProgressIndicator());
}
return ListTile(
title: Padding(
padding: EdgeInsets.fromLTRB(0, 15, 0, 15),
child: Row(
children: [
snapshot.data.profileImageUrl != ''
? CircleAvatar(
radius: 20,
backgroundImage:
NetworkImage(snapshot.data.profileImageUrl))
: Icon(Icons.person, size: 40),
SizedBox(width: 10),
Text(snapshot.data.name)
],
),
),
subtitle: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.fromLTRB(0, 15, 0, 15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(post.text),
SizedBox(height: 20),
Text(post.timestamp.toDate().toString())
],
),
),
Divider(),
],
),
);
});
},
);
}
Expand Down

0 comments on commit 455f745

Please sign in to comment.