fix all helpers
This commit is contained in:
parent
d0b148ad5b
commit
788900d852
2 changed files with 30 additions and 28 deletions
|
|
@ -1,17 +1,23 @@
|
||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
import "package:nexus/helpers/extensions/show_context_menu.dart";
|
import "package:nexus/helpers/extensions/show_context_menu.dart";
|
||||||
import "package:nexus/models/membership.dart";
|
import "package:nexus/models/content/membership.dart";
|
||||||
import "package:nexus/widgets/chat_page/user_popover.dart";
|
import "package:nexus/widgets/chat_page/user_popover.dart";
|
||||||
|
|
||||||
extension ShowUserPopover on BuildContext {
|
extension ShowUserPopover on BuildContext {
|
||||||
void showUserPopover(Membership member, {required Offset globalPosition}) =>
|
void showUserPopover(
|
||||||
showContextMenu(
|
MembershipContent member,
|
||||||
|
String userId, {
|
||||||
|
required Offset globalPosition,
|
||||||
|
}) => showContextMenu(
|
||||||
globalPosition: globalPosition,
|
globalPosition: globalPosition,
|
||||||
children: [
|
children: [
|
||||||
PopupMenuItem(
|
PopupMenuItem(
|
||||||
enabled: false,
|
enabled: false,
|
||||||
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||||
child: IconTheme(data: IconThemeData(), child: UserPopover(member)),
|
child: IconTheme(
|
||||||
|
data: IconThemeData(),
|
||||||
|
child: UserPopover(member, userId),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import "package:nexus/controllers/profile_controller.dart";
|
||||||
import "package:nexus/controllers/selected_room_controller.dart";
|
import "package:nexus/controllers/selected_room_controller.dart";
|
||||||
import "package:nexus/helpers/extensions/better_when.dart";
|
import "package:nexus/helpers/extensions/better_when.dart";
|
||||||
import "package:nexus/models/configs/power_level_config.dart";
|
import "package:nexus/models/configs/power_level_config.dart";
|
||||||
import "package:nexus/models/membership.dart";
|
import "package:nexus/models/content/membership.dart";
|
||||||
import "package:nexus/models/membership_status.dart";
|
import "package:nexus/models/membership_status.dart";
|
||||||
import "package:nexus/models/requests/membership_action.dart";
|
import "package:nexus/models/requests/membership_action.dart";
|
||||||
import "package:nexus/models/requests/set_membership_request.dart";
|
import "package:nexus/models/requests/set_membership_request.dart";
|
||||||
|
|
@ -19,8 +19,9 @@ import "package:nexus/widgets/chat_page/expandable_image.dart";
|
||||||
import "package:nexus/widgets/form_text_input.dart";
|
import "package:nexus/widgets/form_text_input.dart";
|
||||||
|
|
||||||
class UserPopover extends ConsumerWidget {
|
class UserPopover extends ConsumerWidget {
|
||||||
final Membership member;
|
final MembershipContent member;
|
||||||
const UserPopover(this.member, {super.key});
|
final String userId;
|
||||||
|
const UserPopover(this.member, this.userId, {super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
|
@ -37,16 +38,12 @@ class UserPopover extends ConsumerWidget {
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
final actionReasonController = useTextEditingController();
|
final actionReasonController = useTextEditingController();
|
||||||
return AlertDialog(
|
return AlertDialog(
|
||||||
title: Text(
|
title: Text("${toBeginningOfSentenceCase(action.name)} $userId"),
|
||||||
"${toBeginningOfSentenceCase(action.name)} ${member.userId}",
|
|
||||||
),
|
|
||||||
content: Column(
|
content: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text("Are you sure you want to ${action.name} $userId?"),
|
||||||
"Are you sure you want to ${action.name} ${member.userId}?",
|
|
||||||
),
|
|
||||||
SizedBox(height: 12),
|
SizedBox(height: 12),
|
||||||
FormTextInput(
|
FormTextInput(
|
||||||
required: false,
|
required: false,
|
||||||
|
|
@ -67,7 +64,7 @@ class UserPopover extends ConsumerWidget {
|
||||||
client
|
client
|
||||||
.setMembership(
|
.setMembership(
|
||||||
SetMembershipRequest(
|
SetMembershipRequest(
|
||||||
userId: member.userId,
|
userId: userId,
|
||||||
roomId: roomId!,
|
roomId: roomId!,
|
||||||
action: action,
|
action: action,
|
||||||
reason: actionReasonController.text,
|
reason: actionReasonController.text,
|
||||||
|
|
@ -107,10 +104,10 @@ class UserPopover extends ConsumerWidget {
|
||||||
member.displayName,
|
member.displayName,
|
||||||
style: textTheme.headlineSmall,
|
style: textTheme.headlineSmall,
|
||||||
),
|
),
|
||||||
SelectableText(member.userId, style: textTheme.titleSmall),
|
SelectableText(userId, style: textTheme.titleSmall),
|
||||||
SizedBox(height: 4),
|
SizedBox(height: 4),
|
||||||
ref
|
ref
|
||||||
.watch(ProfileController.provider(member.userId))
|
.watch(ProfileController.provider(userId))
|
||||||
.betterWhen(
|
.betterWhen(
|
||||||
loading: SizedBox.shrink,
|
loading: SizedBox.shrink,
|
||||||
data: (profile) => Wrap(
|
data: (profile) => Wrap(
|
||||||
|
|
@ -145,8 +142,7 @@ class UserPopover extends ConsumerWidget {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
if (member.userId !=
|
if (userId != ref.watch(ClientStateController.provider)?.userId &&
|
||||||
ref.watch(ClientStateController.provider)?.userId &&
|
|
||||||
roomId != null)
|
roomId != null)
|
||||||
Wrap(
|
Wrap(
|
||||||
spacing: 8,
|
spacing: 8,
|
||||||
|
|
@ -160,7 +156,7 @@ class UserPopover extends ConsumerWidget {
|
||||||
eventType: "m.room.member",
|
eventType: "m.room.member",
|
||||||
action: MembershipAction.kick,
|
action: MembershipAction.kick,
|
||||||
isStateEvent: true,
|
isStateEvent: true,
|
||||||
targetUser: member.userId,
|
targetUser: userId,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
) &&
|
) &&
|
||||||
|
|
@ -184,7 +180,7 @@ class UserPopover extends ConsumerWidget {
|
||||||
eventType: "m.room.member",
|
eventType: "m.room.member",
|
||||||
action: MembershipAction.ban,
|
action: MembershipAction.ban,
|
||||||
isStateEvent: true,
|
isStateEvent: true,
|
||||||
targetUser: member.userId,
|
targetUser: userId,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
))
|
))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue