mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 03:06:59 +08:00
fix: dyn: temp ban
Closes #829 Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -4,6 +4,7 @@ import 'package:PiliPlus/http/msg.dart';
|
||||
import 'package:PiliPlus/models/common/dynamic/dynamics_type.dart';
|
||||
import 'package:PiliPlus/models/dynamics/result.dart';
|
||||
import 'package:PiliPlus/pages/common/common_list_controller.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/controller.dart';
|
||||
import 'package:PiliPlus/pages/main/controller.dart';
|
||||
import 'package:PiliPlus/utils/extension.dart';
|
||||
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||
@@ -16,6 +17,7 @@ class DynamicsTabController
|
||||
String offset = '';
|
||||
int? mid;
|
||||
late final MainController mainController = Get.find<MainController>();
|
||||
final dynamicsController = Get.find<DynamicsController>();
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
@@ -34,6 +36,11 @@ class DynamicsTabController
|
||||
|
||||
@override
|
||||
List<DynamicItemModel>? getDataList(DynamicsDataModel response) {
|
||||
if (dynamicsType != DynamicsTabType.up &&
|
||||
dynamicsController.tempBannedList.isNotEmpty) {
|
||||
response.items?.removeWhere((e) => dynamicsController.tempBannedList
|
||||
.contains(e.modules.moduleAuthor?.mid));
|
||||
}
|
||||
return response.items;
|
||||
}
|
||||
|
||||
@@ -52,11 +59,12 @@ class DynamicsTabController
|
||||
mid: mid,
|
||||
);
|
||||
|
||||
Future<void> onRemove(dynamic dynamicId) async {
|
||||
Future<void> onRemove(int index, dynamic dynamicId) async {
|
||||
var res = await MsgHttp.removeDynamic(dynIdStr: dynamicId);
|
||||
if (res['status']) {
|
||||
loadingState.value.data!.removeWhere((item) => item.idStr == dynamicId);
|
||||
loadingState.refresh();
|
||||
loadingState
|
||||
..value.data!.removeAt(index)
|
||||
..refresh();
|
||||
SmartDialog.showToast('删除成功');
|
||||
} else {
|
||||
SmartDialog.showToast(res['msg']);
|
||||
@@ -77,4 +85,10 @@ class DynamicsTabController
|
||||
scrollController.jumpToTop();
|
||||
return super.onReload();
|
||||
}
|
||||
|
||||
void onBlock(int index) {
|
||||
loadingState
|
||||
..value.data!.removeAt(index)
|
||||
..refresh();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,22 +151,15 @@ class _DynamicsTabPageState
|
||||
: LastChildLayoutType.none;
|
||||
},
|
||||
children: [
|
||||
if (dynamicsController.tabController.index == 4 &&
|
||||
dynamicsController.mid.value != -1) ...[
|
||||
for (var i in loadingState.response!)
|
||||
DynamicPanel(
|
||||
item: i,
|
||||
onRemove: controller.onRemove,
|
||||
),
|
||||
] else ...[
|
||||
for (var i in loadingState.response!)
|
||||
if (!dynamicsController.tempBannedList
|
||||
.contains(i.modules.moduleAuthor?.mid))
|
||||
DynamicPanel(
|
||||
item: i,
|
||||
onRemove: controller.onRemove,
|
||||
),
|
||||
]
|
||||
for (int index = 0;
|
||||
index < loadingState.response!.length;
|
||||
index++)
|
||||
DynamicPanel(
|
||||
item: loadingState.response![index],
|
||||
onRemove: (idStr) =>
|
||||
controller.onRemove(index, idStr),
|
||||
onBlock: () => controller.onBlock(index),
|
||||
)
|
||||
],
|
||||
)
|
||||
: SliverCrossAxisGroup(
|
||||
@@ -180,17 +173,12 @@ class _DynamicsTabPageState
|
||||
controller.onLoadMore();
|
||||
}
|
||||
final item = loadingState.response![index];
|
||||
if ((dynamicsController.tabController.index ==
|
||||
4 &&
|
||||
dynamicsController.mid.value != -1) ||
|
||||
!dynamicsController.tempBannedList.contains(
|
||||
item.modules.moduleAuthor?.mid)) {
|
||||
return DynamicPanel(
|
||||
item: item,
|
||||
onRemove: controller.onRemove,
|
||||
);
|
||||
}
|
||||
return const SizedBox.shrink();
|
||||
return DynamicPanel(
|
||||
item: item,
|
||||
onRemove: (idStr) =>
|
||||
controller.onRemove(index, idStr),
|
||||
onBlock: () => controller.onBlock(index),
|
||||
);
|
||||
},
|
||||
itemCount: loadingState.response!.length,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user