import 'package:comunic/models/advanced_group_info.dart'; import 'package:comunic/models/group.dart'; import 'package:comunic/utils/date_utils.dart'; import 'package:comunic/utils/intl_utils.dart'; import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; /// About group section /// /// @author Pierre Hubert class AboutGroupSection extends StatelessWidget { final AdvancedGroupInfo group; const AboutGroupSection({ Key key, @required this.group, }) : assert(group != null), super(key: key); @override Widget build(BuildContext context) => ListView( children: [ // URL, if any group.hasURL ? ListTile( leading: Icon(Icons.link), title: Text(tr("URL")), subtitle: Text(group.url), onTap: () => launch(group.url), ) : Container(), // Description, if any group.hasDescription ? ListTile( leading: Icon(Icons.note), title: Text(tr("Description")), subtitle: Text(group.description), ) : Container(), // Time create ListTile( leading: Icon(Icons.access_time), title: Text("Created"), subtitle: Text(diffTimeFromNowToStr(group.timeCreate)), ), // Number of members ListTile( leading: Icon(Icons.group), title: Text(tr("Members")), subtitle: Text( tr("%1% members", args: {"1": group.numberMembers.toString()})), ), // Who can create posts ListTile( leading: Icon(Icons.add), title: Text(tr("Who can create posts")), subtitle: Text( group.postCreationLevel == GroupPostCreationLevel.MEMBERS ? tr("Every members") : tr("Only moderators and administrators")), ), // Registration process ListTile( leading: Icon(Icons.login), title: Text(tr("Registration process")), subtitle: Text(group.registrationLevel == GroupRegistrationLevel.CLOSED ? tr("On invitation only") : (group.registrationLevel == GroupRegistrationLevel.MODERATED ? tr("A moderator has to approve requests") : tr("Anyone can join the group without approval"))), ), // Group visibility ListTile( leading: Icon(Icons.remove_red_eye), title: Text(tr("Visibility")), subtitle: Text(group.visibilityLevel == GroupVisibilityLevel.SECRETE ? tr("Secrete group") : (group.visibilityLevel == GroupVisibilityLevel.PRIVATE ? tr("Private group") : tr("Open group"))), ), // Group members visibility ListTile( leading: Icon(Icons.remove_red_eye), title: Text(tr("Members list visibility")), subtitle: Text(group.isMembersListPublic ? tr("Public") : tr("Private")), ), group.isForezGroup ? // Group members visibility ListTile( leading: Icon(Icons.info_outline), title: Text(tr("Forez group")), subtitle: Text(tr("Forez special features enabled")), ) : Container(), ], ); }