mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-10-31 02:04:52 +00:00 
			
		
		
		
	Can report group
This commit is contained in:
		| @@ -1,4 +1,8 @@ | ||||
| import 'package:comunic/enums/report_target_type.dart'; | ||||
| import 'package:comunic/models/advanced_group_info.dart'; | ||||
| import 'package:comunic/models/group.dart'; | ||||
| import 'package:comunic/models/report_target.dart'; | ||||
| import 'package:comunic/ui/dialogs/report_dialog.dart'; | ||||
| import 'package:comunic/ui/routes/main_route/main_route.dart'; | ||||
| import 'package:comunic/ui/screens/group_sections/about_group_section.dart'; | ||||
| import 'package:comunic/ui/screens/group_sections/forez_presence_section.dart'; | ||||
| @@ -65,7 +69,10 @@ class _AuthorizedGroupPageScreenState | ||||
|  | ||||
|         // About the group | ||||
|         _GroupPageTab( | ||||
|           widget: (c) => AboutGroupSection(group: _group), | ||||
|           widget: (c) => AboutGroupSection( | ||||
|             group: _group, | ||||
|             onReportGroup: _reportGroup, | ||||
|           ), | ||||
|           label: tr("About")!, | ||||
|         ), | ||||
|  | ||||
| @@ -197,6 +204,10 @@ class _AuthorizedGroupPageScreenState | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
|  | ||||
|   /// Report group | ||||
|   void _reportGroup(Group g) => showReportDialog( | ||||
|       ctx: context, target: ReportTarget(ReportTargetType.Group, g.id)); | ||||
| } | ||||
|  | ||||
| class _GroupPageTab { | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| import 'package:comunic/helpers/server_config_helper.dart'; | ||||
| import 'package:comunic/models/advanced_group_info.dart'; | ||||
| import 'package:comunic/models/group.dart'; | ||||
| import 'package:comunic/utils/date_utils.dart'; | ||||
| @@ -11,10 +12,12 @@ import 'package:url_launcher/url_launcher.dart'; | ||||
|  | ||||
| class AboutGroupSection extends StatelessWidget { | ||||
|   final AdvancedGroupInfo group; | ||||
|   final Function(Group) onReportGroup; | ||||
|  | ||||
|   const AboutGroupSection({ | ||||
|     Key? key, | ||||
|     required this.group, | ||||
|     required this.onReportGroup, | ||||
|   }) : super(key: key); | ||||
|  | ||||
|   @override | ||||
| @@ -103,6 +106,15 @@ class AboutGroupSection extends StatelessWidget { | ||||
|                   subtitle: Text(tr("Forez special features enabled")!), | ||||
|                 ) | ||||
|               : Container(), | ||||
|           // Report group | ||||
|           srvConfig!.isReportingEnabled | ||||
|               ? ListTile( | ||||
|                   textColor: Colors.red, | ||||
|                   leading: Icon(Icons.flag, color: Colors.red), | ||||
|                   title: Text(tr("Report abuse")!), | ||||
|                   onTap: () => onReportGroup(group), | ||||
|                 ) | ||||
|               : Container(), | ||||
|         ], | ||||
|       ); | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,10 @@ | ||||
| import 'package:comunic/enums/report_target_type.dart'; | ||||
| import 'package:comunic/helpers/groups_helper.dart'; | ||||
| import 'package:comunic/helpers/server_config_helper.dart'; | ||||
| import 'package:comunic/lists/groups_list.dart'; | ||||
| import 'package:comunic/models/group.dart'; | ||||
| import 'package:comunic/models/report_target.dart'; | ||||
| import 'package:comunic/ui/dialogs/report_dialog.dart'; | ||||
| import 'package:comunic/ui/routes/main_route/main_route.dart'; | ||||
| import 'package:comunic/ui/widgets/group_icon_widget.dart'; | ||||
| import 'package:comunic/ui/widgets/group_membership_widget.dart'; | ||||
| @@ -70,9 +74,28 @@ class _GroupsListScreenState extends SafeState<GroupsListScreen> { | ||||
|                     group: g, | ||||
|                     onUpdated: () => _refreshIndicatorKey.currentState!.show(), | ||||
|                   ), | ||||
|                   trailing: IconButton( | ||||
|                   trailing: IntrinsicWidth( | ||||
|                     child: Row( | ||||
|                       children: [ | ||||
|                         // Remove membership | ||||
|                         IconButton( | ||||
|                             icon: Icon(Icons.delete), | ||||
|                             onPressed: () => _deleteGroup(g)), | ||||
|  | ||||
|                         // Report button | ||||
|                         srvConfig!.isReportingEnabled | ||||
|                             ? IconButton( | ||||
|                                 visualDensity: VisualDensity.compact, | ||||
|                                 onPressed: () => _reportGroup(g), | ||||
|                                 icon: Icon( | ||||
|                                   Icons.flag, | ||||
|                                   size: 15.0, | ||||
|                                 ), | ||||
|                               ) | ||||
|                             : Container() | ||||
|                       ], | ||||
|                     ), | ||||
|                   ), | ||||
|                   onTap: () => MainController.of(context)!.openGroup(g.id), | ||||
|                 )) | ||||
|             .toList(), | ||||
| @@ -122,6 +145,10 @@ class _GroupsListScreenState extends SafeState<GroupsListScreen> { | ||||
|     _refreshIndicatorKey.currentState!.show(); | ||||
|   } | ||||
|  | ||||
|   /// Report a group | ||||
|   void _reportGroup(Group g) => showReportDialog( | ||||
|       ctx: context, target: ReportTarget(ReportTargetType.Group, g.id)); | ||||
|  | ||||
|   /// Add a group | ||||
|   void _createGroup() async { | ||||
|     try { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user