import 'package:comunic/helpers/conversations_helper.dart'; import 'package:comunic/lists/users_list.dart'; import 'package:comunic/models/conversation.dart'; import 'package:comunic/utils/date_utils.dart'; import 'package:comunic/utils/intl_utils.dart'; import 'package:flutter/material.dart'; /// Single conversation tile /// /// @author Pierre HUBERT class ConversationTile extends StatelessWidget { final Conversation conversation; final UsersList usersList; const ConversationTile( {Key key, @required this.conversation, @required this.usersList}) : assert(conversation != null), assert(usersList != null), super(key: key); _buildSubInformation(IconData icon, String content) { return Row( children: [ Icon( icon, size: 15.0, color: Colors.grey, ), Text(" " + content), ], ); } @override Widget build(BuildContext context) { return ListTile( // Conversation name title: Text( ConversationsHelper.getConversationName( conversation, usersList, ), style: TextStyle( fontWeight: conversation.sawLastMessage ? null : FontWeight.bold, ), ), // Leading icon leading: Icon( conversation.sawLastMessage ? Icons.check_circle : Icons.lens, color: conversation.sawLastMessage ? null : Colors.blue, ), // Conversation information isThreeLine: true, subtitle: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ _buildSubInformation( Icons.access_time, diffTimeFromNowToStr(conversation.lastActive)), _buildSubInformation( Icons.group, conversation.members.length == 1 ? tr("1 member") : tr( "%num% members", args: { "num": conversation.members.length.toString(), }, ), ), ], ), ); } }