mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-22 00:58:40 +00:00
feat: later page: multi select
feat: fav detail page: multi select opt: reply item opt: load more Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -2,7 +2,6 @@ import 'package:PiliPalaX/http/loading_state.dart';
|
||||
import 'package:PiliPalaX/http/member.dart';
|
||||
import 'package:PiliPalaX/pages/common/common_controller.dart';
|
||||
import 'package:PiliPalaX/pages/fav_search/view.dart' show SearchType;
|
||||
import 'package:PiliPalaX/utils/extension.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -16,12 +15,10 @@ class FavSearchController extends CommonController {
|
||||
RxString searchKeyWord = ''.obs; // 搜索词
|
||||
String hintText = '搜索'; // 默认
|
||||
RxString loadingText = '加载中...'.obs; // 加载提示
|
||||
bool hasMore = false;
|
||||
int? type;
|
||||
int? mediaId;
|
||||
int? mid;
|
||||
late SearchType searchType;
|
||||
RxBool enableMultiple = false.obs;
|
||||
|
||||
int count = 0; // 总数
|
||||
|
||||
@@ -49,7 +46,6 @@ class FavSearchController extends CommonController {
|
||||
if (controller.value.text.isEmpty) {
|
||||
return Future.value();
|
||||
}
|
||||
hasMore = true;
|
||||
return super.onRefresh();
|
||||
}
|
||||
|
||||
@@ -57,14 +53,6 @@ class FavSearchController extends CommonController {
|
||||
searchKeyWord.value = value;
|
||||
}
|
||||
|
||||
@override
|
||||
Future queryData([bool isRefresh = true]) {
|
||||
if (isRefresh.not && hasMore.not) {
|
||||
return Future.value();
|
||||
}
|
||||
return super.queryData(isRefresh);
|
||||
}
|
||||
|
||||
@override
|
||||
bool customHandleResponse(Success response) {
|
||||
List currentList = loadingState.value is Success
|
||||
@@ -78,9 +66,9 @@ class FavSearchController extends CommonController {
|
||||
? response.response.list
|
||||
: currentList + response.response.list);
|
||||
loadingState.value = LoadingState.success(dataList);
|
||||
hasMore = searchType == SearchType.fav
|
||||
? response.response.hasMore
|
||||
: response.response.list.isNotEmpty;
|
||||
isEnd = searchType == SearchType.fav
|
||||
? !response.response.hasMore
|
||||
: response.response.list.isEmpty;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import 'package:PiliPalaX/http/loading_state.dart';
|
||||
import 'package:PiliPalaX/pages/follow/widgets/follow_item.dart';
|
||||
import 'package:PiliPalaX/pages/history/widgets/item.dart';
|
||||
import 'package:PiliPalaX/utils/grid.dart';
|
||||
import 'package:easy_debounce/easy_throttle.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:PiliPalaX/pages/fav_detail/widget/fav_video_card.dart';
|
||||
@@ -23,27 +22,6 @@ class FavSearchPage extends StatefulWidget {
|
||||
class _FavSearchPageState extends State<FavSearchPage> {
|
||||
final FavSearchController _favSearchCtr = Get.put(FavSearchController());
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_favSearchCtr.scrollController.addListener(
|
||||
() {
|
||||
if (_favSearchCtr.scrollController.position.pixels >=
|
||||
_favSearchCtr.scrollController.position.maxScrollExtent - 300) {
|
||||
EasyThrottle.throttle('fav', const Duration(seconds: 1), () {
|
||||
_favSearchCtr.onLoadMore();
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_favSearchCtr.scrollController.removeListener(() {});
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
@@ -93,6 +71,7 @@ class _FavSearchPageState extends State<FavSearchPage> {
|
||||
itemCount: loadingState.response.length + 1,
|
||||
itemBuilder: (context, index) {
|
||||
if (index == loadingState.response.length) {
|
||||
_favSearchCtr.onLoadMore();
|
||||
return Container(
|
||||
height: MediaQuery.of(context).padding.bottom + 60,
|
||||
padding: EdgeInsets.only(
|
||||
|
||||
Reference in New Issue
Block a user