fix: Block users

This commit is contained in:
krille-chan 2023-12-01 17:58:04 +01:00
parent 43e8e0f0d4
commit f1b2040edb
No known key found for this signature in database
6 changed files with 24 additions and 30 deletions

View file

@ -986,26 +986,10 @@
"type": "text", "type": "text",
"placeholders": {} "placeholders": {}
}, },
"ignore": "Ignore", "block": "block",
"@ignore": { "blockedUsers": "Blocked users",
"type": "text", "blockListDescription": "You can block users who are disturbing you. You won't be able to receive any messages or room invites from the users on your personal block list.",
"placeholders": {} "blockUsername": "Ignore username",
},
"ignoredUsers": "Ignored users",
"@ignoredUsers": {
"type": "text",
"placeholders": {}
},
"ignoreListDescription": "You can ignore users who are disturbing you. You won't be able to receive any messages or room invites from the users on your personal ignore list.",
"@ignoreListDescription": {
"type": "text",
"placeholders": {}
},
"ignoreUsername": "Ignore username",
"@ignoreUsername": {
"type": "text",
"placeholders": {}
},
"iHaveClickedOnLink": "I have clicked on the link", "iHaveClickedOnLink": "I have clicked on the link",
"@iHaveClickedOnLink": { "@iHaveClickedOnLink": {
"type": "text", "type": "text",

View file

@ -281,10 +281,14 @@ abstract class AppRoutes {
), ),
GoRoute( GoRoute(
path: 'ignorelist', path: 'ignorelist',
pageBuilder: (context, state) => defaultPageBuilder( pageBuilder: (context, state) {
context, return defaultPageBuilder(
const SettingsIgnoreList(), context,
), SettingsIgnoreList(
initialUserId: state.extra?.toString(),
),
);
},
redirect: loggedOutRedirect, redirect: loggedOutRedirect,
), ),
GoRoute( GoRoute(

View file

@ -20,10 +20,12 @@ class SettingsIgnoreListView extends StatelessWidget {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
leading: const Center(child: BackButton()), leading: const Center(child: BackButton()),
title: Text(L10n.of(context)!.ignoredUsers), title: Text(L10n.of(context)!.blockedUsers),
), ),
body: MaxWidthBody( body: MaxWidthBody(
withScrolling: false,
child: Column( child: Column(
mainAxisSize: MainAxisSize.min,
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
@ -39,9 +41,9 @@ class SettingsIgnoreListView extends StatelessWidget {
border: const OutlineInputBorder(), border: const OutlineInputBorder(),
hintText: 'bad_guy:domain.abc', hintText: 'bad_guy:domain.abc',
prefixText: '@', prefixText: '@',
labelText: L10n.of(context)!.ignoreUsername, labelText: L10n.of(context)!.blockUsername,
suffixIcon: IconButton( suffixIcon: IconButton(
tooltip: L10n.of(context)!.ignore, tooltip: L10n.of(context)!.block,
icon: const Icon(Icons.done_outlined), icon: const Icon(Icons.done_outlined),
onPressed: () => controller.ignoreUser(context), onPressed: () => controller.ignoreUser(context),
), ),
@ -49,7 +51,7 @@ class SettingsIgnoreListView extends StatelessWidget {
), ),
const SizedBox(height: 16), const SizedBox(height: 16),
Text( Text(
L10n.of(context)!.ignoreListDescription, L10n.of(context)!.blockListDescription,
style: const TextStyle(color: Colors.orange), style: const TextStyle(color: Colors.orange),
), ),
], ],

View file

@ -31,7 +31,7 @@ class SettingsSecurityView extends StatelessWidget {
ListTile( ListTile(
leading: const Icon(Icons.block_outlined), leading: const Icon(Icons.block_outlined),
trailing: const Icon(Icons.chevron_right_outlined), trailing: const Icon(Icons.chevron_right_outlined),
title: Text(L10n.of(context)!.ignoredUsers), title: Text(L10n.of(context)!.blockedUsers),
onTap: () => context.go('/rooms/settings/security/ignorelist'), onTap: () => context.go('/rooms/settings/security/ignorelist'),
), ),
ListTile( ListTile(

View file

@ -237,7 +237,10 @@ class UserBottomSheetController extends State<UserBottomSheet> {
widget.outerContext.go('/rooms/$roomId'); widget.outerContext.go('/rooms/$roomId');
break; break;
case UserBottomSheetAction.ignore: case UserBottomSheetAction.ignore:
context.go('/rooms/settings/security/ignorelist'); Navigator.of(context).pop();
final userId = user?.id ?? widget.profile?.userId;
widget.outerContext
.go('/rooms/settings/security/ignorelist', extra: userId);
} }
} }

View file

@ -93,6 +93,7 @@ class UserBottomSheetView extends StatelessWidget {
padding: const EdgeInsets.only(right: 8.0), padding: const EdgeInsets.only(right: 8.0),
child: IconButton( child: IconButton(
icon: const Icon(Icons.block_outlined), icon: const Icon(Icons.block_outlined),
tooltip: L10n.of(context)!.block,
onPressed: () => controller onPressed: () => controller
.participantAction(UserBottomSheetAction.ignore), .participantAction(UserBottomSheetAction.ignore),
), ),