4
2
Fork 0
frontend_flutter/lib/src/ui/home/widgets/conversation_list.dart

48 lines
1.3 KiB
Dart
Raw Normal View History

import "package:flutter/material.dart";
2019-02-28 16:33:18 +08:00
import "../../../models/conversation_model.dart";
import "../../../blocs/conversation_bloc.dart";
import "conversation_item.dart";
class ConversationList extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _ConversationListState();
}
}
class _ConversationListState extends State<ConversationList> {
@override
initState() {
super.initState();
2019-05-25 09:46:21 +08:00
conversationsBloc.fetchConversations();
}
@override
Widget build(BuildContext context) {
2019-05-19 11:05:27 +08:00
return Padding(
padding: EdgeInsets.only(top: 10.0),
child: StreamBuilder(
2019-05-25 09:46:21 +08:00
stream: conversationsBloc.conversations,
2019-05-19 11:05:27 +08:00
builder: (context, AsyncSnapshot<List<Conversation>> snapshot) {
if (snapshot.hasData) {
return buildList(snapshot.data);
} else if (snapshot.hasError) {
return Text(snapshot.error.toString());
}
return Center(child: CircularProgressIndicator());
}));
}
Widget buildList(List<Conversation> data) {
return ListView.builder(
padding: EdgeInsets.only(top: 0.0),
itemCount: data.length,
itemBuilder: (context, index) {
return ConversationItem(conversation: data[index]);
},
);
}
}