fix: fav search

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-03-24 10:16:01 +08:00
parent 8ddf42fff1
commit f110c2a55f
2 changed files with 32 additions and 20 deletions

View File

@@ -52,13 +52,17 @@ class FavSearchController extends CommonController {
List? dataList = searchType == SearchType.fav List? dataList = searchType == SearchType.fav
? (currentPage == 1 ? (currentPage == 1
? response.response.medias ? response.response.medias
: currentList + response.response.medias) : response.response.medias != null
? currentList + response.response.medias
: currentList)
: (currentPage == 1 : (currentPage == 1
? response.response.list ? response.response.list
: currentList + response.response.list); : response.response.list != null
? currentList + response.response.list
: currentList);
isEnd = searchType == SearchType.fav isEnd = searchType == SearchType.fav
? response.response.hasMore == false ? response.response.hasMore == false
: response.response.list.isEmpty; : response.response.list == null || response.response.list.isEmpty;
loadingState.value = LoadingState.success(dataList); loadingState.value = LoadingState.success(dataList);
return true; return true;
} }

View File

@@ -123,6 +123,9 @@ class _FavSearchPageState extends State<FavSearchPage> {
) )
: _favSearchCtr.searchType == SearchType.follow : _favSearchCtr.searchType == SearchType.follow
? ListView.builder( ? ListView.builder(
padding: EdgeInsets.only(
bottom: MediaQuery.of(context).padding.bottom + 80,
),
controller: _favSearchCtr.scrollController, controller: _favSearchCtr.scrollController,
itemCount: loadingState.response.length, itemCount: loadingState.response.length,
itemBuilder: ((context, index) { itemBuilder: ((context, index) {
@@ -138,24 +141,29 @@ class _FavSearchPageState extends State<FavSearchPage> {
physics: const AlwaysScrollableScrollPhysics(), physics: const AlwaysScrollableScrollPhysics(),
controller: _favSearchCtr.scrollController, controller: _favSearchCtr.scrollController,
slivers: [ slivers: [
SliverGrid( SliverPadding(
gridDelegate: SliverGridDelegateWithExtentAndRatio( padding: EdgeInsets.only(
mainAxisSpacing: 2, bottom: MediaQuery.of(context).padding.bottom + 80,
maxCrossAxisExtent: Grid.mediumCardWidth * 2,
childAspectRatio: StyleString.aspectRatio * 2.2,
), ),
delegate: SliverChildBuilderDelegate( sliver: SliverGrid(
(context, index) { gridDelegate: SliverGridDelegateWithExtentAndRatio(
if (index == loadingState.response.length - 1) { mainAxisSpacing: 2,
_favSearchCtr.onLoadMore(); maxCrossAxisExtent: Grid.mediumCardWidth * 2,
} childAspectRatio: StyleString.aspectRatio * 2.2,
return HistoryItem( ),
videoItem: loadingState.response[index], delegate: SliverChildBuilderDelegate(
ctr: _favSearchCtr, (context, index) {
onChoose: null, if (index == loadingState.response.length - 1) {
); _favSearchCtr.onLoadMore();
}, }
childCount: loadingState.response.length, return HistoryItem(
videoItem: loadingState.response[index],
ctr: _favSearchCtr,
onChoose: null,
);
},
childCount: loadingState.response.length,
),
), ),
), ),
], ],