mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-20 16:55:17 +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