From 8b1bec6ed281d8939933cf304b58257677e6f49b Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Wed, 5 Mar 2025 23:02:29 +0800 Subject: [PATCH] mod: blacklist item Closes #390 Signed-off-by: bggRGjQaUbCoE --- lib/pages/blacklist/index.dart | 40 +++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/lib/pages/blacklist/index.dart b/lib/pages/blacklist/index.dart index c6176ecdf..92604f7ac 100644 --- a/lib/pages/blacklist/index.dart +++ b/lib/pages/blacklist/index.dart @@ -1,3 +1,4 @@ +import 'package:PiliPlus/common/widgets/dialog.dart'; import 'package:PiliPlus/common/widgets/loading_widget.dart'; import 'package:PiliPlus/common/widgets/refresh_indicator.dart'; import 'package:PiliPlus/http/loading_state.dart'; @@ -59,7 +60,10 @@ class _BlackListPageState extends State { _blackListController.onLoadMore(); } return ListTile( - onTap: () {}, + onTap: () { + Get.toNamed( + '/member?mid=${loadingState.response[index].mid}'); + }, leading: NetworkImgLayer( width: 45, height: 45, @@ -81,8 +85,11 @@ class _BlackListPageState extends State { ), dense: true, trailing: TextButton( - onPressed: () => _blackListController - .removeBlack(loadingState.response[index].mid), + onPressed: () => _blackListController.removeBlack( + context, + loadingState.response[index].uname, + loadingState.response[index].mid, + ), child: const Text('移除'), ), ); @@ -130,16 +137,23 @@ class BlackListController extends CommonController { return true; } - Future removeBlack(mid) async { - var result = await BlackHttp.removeBlack(fid: mid); - if (result['status']) { - List list = (loadingState.value as Success).response; - list.removeWhere((e) => e.mid == mid); - total.value = total.value - 1; - loadingState.value = - LoadingState.success(list.isNotEmpty ? list : []); - SmartDialog.showToast(result['msg']); - } + Future removeBlack(context, name, mid) async { + showConfirmDialog( + context: context, + title: '确定将 $name 移出黑名单?', + onConfirm: () async { + Get.back(); + var result = await BlackHttp.removeBlack(fid: mid); + if (result['status']) { + List list = (loadingState.value as Success).response; + list.removeWhere((e) => e.mid == mid); + total.value = total.value - 1; + loadingState.value = + LoadingState.success(list.isNotEmpty ? list : []); + SmartDialog.showToast(result['msg']); + } + }, + ); } @override