opt: FavVideoCardH

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-04-12 15:50:16 +08:00
parent 26ca69cb83
commit c13063b230
5 changed files with 24 additions and 27 deletions

View File

@@ -76,14 +76,17 @@ class _FavPageState extends State<FavPage> with SingleTickerProviderStateMixin {
final item = (_favController.loadingState.value as Success)
.response
.first;
Get.toNamed('/favSearch', arguments: {
'type': 1,
'mediaId': item.id,
'title': item.title,
'count': item.mediaCount,
'searchType': SearchType.fav,
'isOwner': true,
});
Get.toNamed(
'/favSearch',
arguments: {
'type': 1,
'mediaId': item.id,
'title': item.title,
'count': item.mediaCount,
'searchType': SearchType.fav,
'isOwner': true,
},
);
} catch (_) {}
}
},

View File

@@ -132,7 +132,6 @@ class _FavSortPageState extends State<FavSortPage> {
FavVideoCardH(
isSort: true,
videoItem: item,
isOwner: false,
),
if (BuildConfig.isDebug)
Positioned(

View File

@@ -475,11 +475,13 @@ class _FavDetailPageState extends State<FavDetailPage> {
Positioned.fill(
child: FavVideoCardH(
videoItem: item,
callFn: () => _favDetailController.onCancelFav(
index,
item.id!,
item.type!,
),
onDelFav: _favDetailController.isOwner.value
? () => _favDetailController.onCancelFav(
index,
item.id!,
item.type!,
)
: null,
onViewFav: () {
Utils.toViewPage(
'bvid=${item.bvid}&cid=${item.cid}',
@@ -514,7 +516,6 @@ class _FavDetailPageState extends State<FavDetailPage> {
}
}
: null,
isOwner: _favDetailController.isOwner.value,
),
),
Positioned(

View File

@@ -17,22 +17,18 @@ import '../../../common/widgets/badge.dart';
// 收藏视频卡片 - 水平布局
class FavVideoCardH extends StatelessWidget {
final FavDetailItemData videoItem;
final Function? callFn;
final int? searchType;
final GestureTapCallback? onTap;
final GestureLongPressCallback? onLongPress;
final bool isOwner;
final VoidCallback? onDelFav;
final VoidCallback? onViewFav;
final bool? isSort;
const FavVideoCardH({
super.key,
required this.videoItem,
this.callFn,
this.searchType,
this.onDelFav,
this.onTap,
this.onLongPress,
this.isOwner = false,
this.onViewFav,
this.isSort,
});
@@ -210,7 +206,7 @@ class FavVideoCardH extends StatelessWidget {
),
],
),
if (searchType != 1 && isOwner)
if (onDelFav != null)
Positioned(
right: 0,
bottom: 0,
@@ -237,9 +233,9 @@ class FavVideoCardH extends StatelessWidget {
),
),
TextButton(
onPressed: () async {
await callFn?.call();
onPressed: () {
Get.back();
onDelFav!();
},
child: const Text('确定取消'),
)

View File

@@ -96,9 +96,7 @@ class _FavSearchPageState extends State<FavSearchPage> {
return _favSearchCtr.searchType == SearchType.fav
? FavVideoCardH(
videoItem: item,
isOwner: _favSearchCtr.isOwner ?? false,
searchType: _favSearchCtr.type,
callFn: _favSearchCtr.type != 1
onDelFav: _favSearchCtr.isOwner == true
? () {
_favSearchCtr.onCancelFav(
index,