mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Start to build report dialog
This commit is contained in:
		@@ -1,3 +1,4 @@
 | 
			
		||||
import 'package:comunic/helpers/server_config_helper.dart';
 | 
			
		||||
import 'package:comunic/models/friend.dart';
 | 
			
		||||
import 'package:comunic/models/user.dart';
 | 
			
		||||
import 'package:comunic/ui/widgets/account_image_widget.dart';
 | 
			
		||||
@@ -10,11 +11,17 @@ import 'package:flutter/material.dart';
 | 
			
		||||
///
 | 
			
		||||
/// @author Pierre HUBERT
 | 
			
		||||
 | 
			
		||||
enum _FriendMenuChoices { REMOVE, TOGGLE_FOLLOWING, PRIVATE_CONVERSATION }
 | 
			
		||||
enum _FriendMenuChoices {
 | 
			
		||||
  REMOVE,
 | 
			
		||||
  TOGGLE_FOLLOWING,
 | 
			
		||||
  PRIVATE_CONVERSATION,
 | 
			
		||||
  REPORT
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
typedef OnRequestDeleteFriend = void Function(Friend);
 | 
			
		||||
typedef OnSetFollowing = void Function(Friend, bool);
 | 
			
		||||
typedef OnOpenPrivateConversation = void Function(Friend);
 | 
			
		||||
typedef OnReportFriend = void Function(Friend);
 | 
			
		||||
 | 
			
		||||
class AcceptedFriendTile extends StatelessWidget {
 | 
			
		||||
  final Friend friend;
 | 
			
		||||
@@ -22,6 +29,7 @@ class AcceptedFriendTile extends StatelessWidget {
 | 
			
		||||
  final OnRequestDeleteFriend onRequestDelete;
 | 
			
		||||
  final OnSetFollowing onSetFollowing;
 | 
			
		||||
  final OnOpenPrivateConversation onOpenPrivateConversation;
 | 
			
		||||
  final OnReportFriend onReportFriend;
 | 
			
		||||
 | 
			
		||||
  const AcceptedFriendTile({
 | 
			
		||||
    Key? key,
 | 
			
		||||
@@ -30,6 +38,7 @@ class AcceptedFriendTile extends StatelessWidget {
 | 
			
		||||
    required this.onRequestDelete,
 | 
			
		||||
    required this.onSetFollowing,
 | 
			
		||||
    required this.onOpenPrivateConversation,
 | 
			
		||||
    required this.onReportFriend,
 | 
			
		||||
  }) : super(key: key);
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
@@ -75,7 +84,15 @@ class AcceptedFriendTile extends StatelessWidget {
 | 
			
		||||
            child: Text(tr("Remove")!),
 | 
			
		||||
            value: _FriendMenuChoices.REMOVE,
 | 
			
		||||
          ),
 | 
			
		||||
        ],
 | 
			
		||||
        ]..addAll(srvConfig!.isReportingEnabled
 | 
			
		||||
            ? [
 | 
			
		||||
                // Report user
 | 
			
		||||
                PopupMenuItem(
 | 
			
		||||
                  child: Text(tr("Report abuse")!),
 | 
			
		||||
                  value: _FriendMenuChoices.REPORT,
 | 
			
		||||
                ),
 | 
			
		||||
              ]
 | 
			
		||||
            : []),
 | 
			
		||||
        onSelected: _selectedMenuOption,
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
@@ -97,6 +114,10 @@ class AcceptedFriendTile extends StatelessWidget {
 | 
			
		||||
      case _FriendMenuChoices.REMOVE:
 | 
			
		||||
        onRequestDelete(friend);
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case _FriendMenuChoices.REPORT:
 | 
			
		||||
        onReportFriend(friend);
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
import 'package:comunic/helpers/server_config_helper.dart';
 | 
			
		||||
import 'package:comunic/models/friend.dart';
 | 
			
		||||
import 'package:comunic/models/user.dart';
 | 
			
		||||
import 'package:comunic/ui/tiles/accepted_friend_tile.dart';
 | 
			
		||||
import 'package:comunic/ui/widgets/account_image_widget.dart';
 | 
			
		||||
import 'package:comunic/utils/intl_utils.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
@@ -14,13 +16,15 @@ class PendingFriendTile extends StatelessWidget {
 | 
			
		||||
  final Friend friend;
 | 
			
		||||
  final User user;
 | 
			
		||||
  final RespondFriendshipRequestCallback onRespond;
 | 
			
		||||
  final OnReportFriend onReport;
 | 
			
		||||
 | 
			
		||||
  const PendingFriendTile(
 | 
			
		||||
      {Key? key,
 | 
			
		||||
      required this.friend,
 | 
			
		||||
      required this.user,
 | 
			
		||||
      required this.onRespond})
 | 
			
		||||
      : super(key: key);
 | 
			
		||||
  const PendingFriendTile({
 | 
			
		||||
    Key? key,
 | 
			
		||||
    required this.friend,
 | 
			
		||||
    required this.user,
 | 
			
		||||
    required this.onRespond,
 | 
			
		||||
    required this.onReport,
 | 
			
		||||
  }) : super(key: key);
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
@@ -56,7 +60,19 @@ class PendingFriendTile extends StatelessWidget {
 | 
			
		||||
              style: ButtonStyle(
 | 
			
		||||
                  backgroundColor: MaterialStateProperty.all(Colors.red)),
 | 
			
		||||
              onPressed: () => onRespond(friend, false),
 | 
			
		||||
            )
 | 
			
		||||
            ),
 | 
			
		||||
 | 
			
		||||
            // Report button
 | 
			
		||||
            srvConfig!.isReportingEnabled
 | 
			
		||||
                ? IconButton(
 | 
			
		||||
                    visualDensity: VisualDensity.compact,
 | 
			
		||||
                    onPressed: () => onReport(friend),
 | 
			
		||||
                    icon: Icon(
 | 
			
		||||
                      Icons.flag,
 | 
			
		||||
                      size: 15.0,
 | 
			
		||||
                    ),
 | 
			
		||||
                  )
 | 
			
		||||
                : Container()
 | 
			
		||||
          ],
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user