Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-07-23 16:47:11 +08:00
parent 148e0872b4
commit 418a1e8d39
821 changed files with 29467 additions and 25520 deletions

View File

@@ -34,8 +34,8 @@ class FavController extends CommonListController<FavFolderData, FavFolderInfo> {
@override
Future<LoadingState<FavFolderData>> customGetData() => FavHttp.userfavFolder(
pn: page,
ps: 20,
mid: accountService.mid,
);
pn: page,
ps: 20,
mid: accountService.mid,
);
}

View File

@@ -51,54 +51,55 @@ class _FavVideoPageState extends State<FavVideoPage>
Widget _buildBody(LoadingState<List<FavFolderInfo>?> loadingState) {
return switch (loadingState) {
Loading() => SliverGrid(
gridDelegate: Grid.videoCardHDelegate(context),
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return const VideoCardHSkeleton();
},
childCount: 10,
),
gridDelegate: Grid.videoCardHDelegate(context),
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return const VideoCardHSkeleton();
},
childCount: 10,
),
Success(:var response) => response?.isNotEmpty == true
? SliverGrid(
gridDelegate: Grid.videoCardHDelegate(context),
delegate: SliverChildBuilderDelegate(
childCount: response!.length,
(BuildContext context, int index) {
if (index == response.length - 1) {
_favController.onLoadMore();
}
final item = response[index];
String heroTag = Utils.makeHeroTag(item.fid);
return FavVideoItem(
heroTag: heroTag,
item: item,
onTap: () async {
var res = await Get.toNamed(
'/favDetail',
arguments: item,
parameters: {
'heroTag': heroTag,
'mediaId': item.id.toString(),
},
);
if (res == true) {
_favController.loadingState
..value.data!.removeAt(index)
..refresh();
}
},
);
},
),
Success(:var response) =>
response?.isNotEmpty == true
? SliverGrid(
gridDelegate: Grid.videoCardHDelegate(context),
delegate: SliverChildBuilderDelegate(
childCount: response!.length,
(BuildContext context, int index) {
if (index == response.length - 1) {
_favController.onLoadMore();
}
final item = response[index];
String heroTag = Utils.makeHeroTag(item.fid);
return FavVideoItem(
heroTag: heroTag,
item: item,
onTap: () async {
var res = await Get.toNamed(
'/favDetail',
arguments: item,
parameters: {
'heroTag': heroTag,
'mediaId': item.id.toString(),
},
);
if (res == true) {
_favController.loadingState
..value.data!.removeAt(index)
..refresh();
}
},
);
},
),
)
: HttpError(
onReload: _favController.onReload,
),
)
: HttpError(
onReload: _favController.onReload,
),
Error(:var errMsg) => HttpError(
errMsg: errMsg,
onReload: _favController.onReload,
),
errMsg: errMsg,
onReload: _favController.onReload,
),
};
}
}

View File

@@ -25,13 +25,14 @@ class FavVideoItem extends StatelessWidget {
type: MaterialType.transparency,
child: InkWell(
onTap: onTap,
onLongPress: onLongPress ??
onLongPress:
onLongPress ??
(onTap == null
? null
: () => imageSaveDialog(
title: item.title,
cover: item.cover,
)),
title: item.title,
cover: item.cover,
)),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 5),
child: Row(