fix: dyn: temp ban

Closes #829

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-05-08 12:01:10 +08:00
parent b28882cff5
commit 222070feba
5 changed files with 49 additions and 39 deletions

View File

@@ -25,7 +25,7 @@ class DynamicsController extends GetxController
RxInt mid = (-1).obs;
Rx<UpItem> upInfo = UpItem().obs;
late TabController tabController;
RxList<int> tempBannedList = <int>[].obs;
Set<int> tempBannedList = <int>{};
late List<Widget> tabsPageList;
RxInt initialValue = 0.obs;
RxBool isLogin = false.obs;

View File

@@ -23,9 +23,10 @@ class AuthorPanel extends StatelessWidget {
final DynamicItemModel item;
final Function? addBannedList;
final String? source;
final Function? onRemove;
final ValueChanged? onRemove;
final bool isSave;
final Function(bool isTop, dynamic dynId)? onSetTop;
final VoidCallback? onBlock;
const AuthorPanel({
super.key,
@@ -35,6 +36,7 @@ class AuthorPanel extends StatelessWidget {
this.onRemove,
this.isSave = false,
this.onSetTop,
this.onBlock,
});
Widget _buildAvatar() {
@@ -364,11 +366,14 @@ class AuthorPanel extends StatelessWidget {
leading: const Icon(Icons.visibility_off_outlined, size: 19),
onTap: () {
Get.back();
Get.find<DynamicsController>()
.tempBannedList
.add(item.modules.moduleAuthor!.mid!);
SmartDialog.showToast(
'已临时屏蔽${item.modules.moduleAuthor?.name}(${item.modules.moduleAuthor!.mid}),重启恢复');
onBlock?.call();
try {
Get.find<DynamicsController>()
.tempBannedList
.add(item.modules.moduleAuthor!.mid!);
SmartDialog.showToast(
'已临时屏蔽${item.modules.moduleAuthor?.name}(${item.modules.moduleAuthor!.mid!}),重启恢复');
} catch (_) {}
},
minLeadingWidth: 0,
),
@@ -424,7 +429,7 @@ class AuthorPanel extends StatelessWidget {
TextButton(
onPressed: () {
Get.back();
onRemove?.call(item.idStr);
onRemove!(item.idStr);
},
child: const Text('确定'),
),

View File

@@ -12,10 +12,11 @@ import 'package:get/get.dart';
class DynamicPanel extends StatelessWidget {
final DynamicItemModel item;
final String? source;
final Function? onRemove;
final ValueChanged? onRemove;
final Function(List<String>, int)? callback;
final bool isSave;
final Function(bool isTop, dynamic dynId)? onSetTop;
final VoidCallback? onBlock;
const DynamicPanel({
super.key,
@@ -25,6 +26,7 @@ class DynamicPanel extends StatelessWidget {
this.callback,
this.isSave = false,
this.onSetTop,
this.onBlock,
});
@override
@@ -36,6 +38,7 @@ class DynamicPanel extends StatelessWidget {
onRemove: onRemove,
isSave: isSave,
onSetTop: onSetTop,
onBlock: onBlock,
);
final child = Material(
elevation: 0,