Files
PiliPlus/lib/pages/mine/widgets/item.dart
dom b9b54ce4f7 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-23 13:08:32 +08:00

77 lines
2.1 KiB
Dart

import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/models_new/fav/fav_folder/list.dart';
import 'package:PiliPlus/utils/fav_utils.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class FavFolderItem extends StatelessWidget {
const FavFolderItem({
super.key,
required this.item,
required this.onPop,
required this.heroTag,
});
final FavFolderInfo item;
final VoidCallback onPop;
final String heroTag;
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
return GestureDetector(
onTap: () {
Get.toNamed(
'/favDetail',
arguments: item,
parameters: {
'mediaId': item.id.toString(),
'heroTag': heroTag,
},
)?.whenComplete(onPop);
},
behavior: HitTestBehavior.opaque,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
DecoratedBox(
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(12)),
boxShadow: [
BoxShadow(
color: theme.colorScheme.onInverseSurface.withValues(
alpha: 0.4,
),
offset: const Offset(6, -8),
blurRadius: 0.0,
spreadRadius: 0.0,
),
],
),
child: Hero(
tag: heroTag,
child: NetworkImgLayer(
src: item.cover,
width: 180,
height: 110,
),
),
),
const SizedBox(height: 8),
Text(
' ${item.title}',
overflow: TextOverflow.fade,
maxLines: 1,
),
Text(
'${item.mediaCount}条视频 · ${FavUtils.isPublicFavText(item.attr)}',
style: theme.textTheme.labelSmall!.copyWith(
color: theme.colorScheme.outline,
),
),
],
),
);
}
}