Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-02-24 16:54:58 +08:00
parent e88cd12dfa
commit 4a3d827f7a
10 changed files with 133 additions and 102 deletions

View File

@@ -9,14 +9,17 @@ import 'package:PiliPlus/pages/common/common_list_controller.dart';
import 'package:PiliPlus/services/account_service.dart';
import 'package:PiliPlus/utils/extension/scroll_controller_ext.dart';
import 'package:PiliPlus/utils/storage_pref.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart' show ScrollController;
import 'package:get/get.dart';
class PgcController
extends CommonListController<List<PgcIndexItem>?, PgcIndexItem>
with AccountMixin {
PgcController({required this.tabType});
PgcController({required this.tabType})
: indexType = tabType == HomeTabType.cinema ? 102 : null;
final HomeTabType tabType;
final int? indexType;
late final showPgcTimeline =
tabType == HomeTabType.bangumi && Pref.showPgcTimeline;
@@ -33,9 +36,6 @@ class PgcController
if (showPgcTimeline) {
queryPgcTimeline();
}
if (accountService.isLogin.value) {
followController = ScrollController();
}
}
@override
@@ -62,7 +62,7 @@ class PgcController
late bool followEnd = false;
late Rx<LoadingState<List<FavPgcItemModel>?>> followState =
LoadingState<List<FavPgcItemModel>?>.loading().obs;
ScrollController? followController;
final followController = ScrollController();
// timeline
late Rx<LoadingState<List<TimelineResult>?>> timelineState =
@@ -117,7 +117,7 @@ class PgcController
followEnd = true;
}
followState.value = Success(list);
followController?.animToTop();
followController.jumpToTop();
} else if (followState.value case Success(:final response)) {
final currentList = response!..addAll(list);
if (currentList.length >= followCount.value) {
@@ -135,12 +135,12 @@ class PgcController
@override
Future<LoadingState<List<PgcIndexItem>?>> customGetData() => PgcHttp.pgcIndex(
page: page,
indexType: tabType == HomeTabType.cinema ? 102 : null,
indexType: indexType,
);
@override
void onClose() {
followController?.dispose();
followController.dispose();
super.onClose();
}