refactor dyn uplist

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-06-27 09:45:18 +08:00
parent 840f8d5a25
commit 5d15bf5e59
9 changed files with 228 additions and 275 deletions

View File

@@ -16,9 +16,10 @@ class DynamicsTabController
with AccountMixin {
DynamicsTabController({required this.dynamicsType});
final DynamicsTabType dynamicsType;
String offset = '';
int? mid;
late final MainController mainController = Get.find<MainController>();
String? offset;
late final mainController = Get.find<MainController>();
final dynamicsController = Get.find<DynamicsController>();
@override
@@ -29,25 +30,25 @@ class DynamicsTabController
@override
Future<void> onRefresh() {
if (dynamicsType == DynamicsTabType.all) {
if (dynamicsType == .all) {
mainController.setDynCount();
}
offset = '';
offset = null;
return super.onRefresh();
}
@override
List<DynamicItemModel>? getDataList(DynamicsDataModel response) {
offset = response.offset ?? '';
offset = response.offset;
return response.items;
}
@override
Future<LoadingState<DynamicsDataModel>> customGetData() =>
DynamicsHttp.followDynamic(
type: dynamicsType,
offset: offset,
mid: mid,
type: dynamicsType,
hostMid: dynamicsController.hostMid,
tempBannedList: dynamicsController.tempBannedList,
);
@@ -70,7 +71,7 @@ class DynamicsTabController
}
void onBlock(int index) {
if (dynamicsType != DynamicsTabType.up) {
if (dynamicsType != .up) {
loadingState
..value.data!.removeAt(index)
..refresh();

View File

@@ -27,9 +27,7 @@ class DynamicsTabPage extends StatefulWidget {
class _DynamicsTabPageState extends State<DynamicsTabPage>
with AutomaticKeepAliveClientMixin, DynMixin {
StreamSubscription? _listener;
DynamicsController dynamicsController = Get.putOrFind(DynamicsController.new);
final dynamicsController = Get.putOrFind(DynamicsController.new);
late final DynamicsTabController controller;
@override
@@ -38,38 +36,22 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
@override
void initState() {
controller = Get.putOrFind(
() =>
DynamicsTabController(dynamicsType: widget.dynamicsType)
..mid = dynamicsController.mid.value,
() => DynamicsTabController(dynamicsType: widget.dynamicsType),
tag: widget.dynamicsType.name,
);
super.initState();
if (widget.dynamicsType == DynamicsTabType.up) {
_listener = dynamicsController.mid.listen((mid) {
if (mid != -1) {
controller
..mid = mid
..onReload();
}
});
}
}
@override
void dispose() {
_listener?.cancel();
dynamicsController.mid.close();
super.dispose();
Future<void> onRefresh() {
dynamicsController.singleRefresh();
return controller.onRefresh();
}
@override
Widget build(BuildContext context) {
super.build(context);
return refreshIndicator(
onRefresh: () {
dynamicsController.queryFollowUp();
return controller.onRefresh();
},
onRefresh: onRefresh,
child: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(),
controller: controller.scrollController,