import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/widgets/image_save.dart'; import 'package:PiliPlus/common/widgets/network_img_layer.dart'; import 'package:PiliPlus/utils/utils.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; class MemberFavItem extends StatelessWidget { const MemberFavItem({super.key, required this.item}); final dynamic item; @override Widget build(BuildContext context) { return Material( color: Colors.transparent, child: InkWell( onTap: () { if (item['type'] == 2) { Get.toNamed( '/favDetail', parameters: { 'mediaId': item['media_id'].toString(), 'heroTag': Utils.makeHeroTag(item['media_id']), }, ); } }, onLongPress: () { imageSaveDialog( title: item['title'], cover: item['cover'], ); }, child: Padding( padding: const EdgeInsets.symmetric( horizontal: StyleString.safeSpace, vertical: 5, ), child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ AspectRatio( aspectRatio: StyleString.aspectRatio, child: LayoutBuilder( builder: (context, boxConstraints) { return NetworkImgLayer( src: item['cover'], width: boxConstraints.maxWidth, height: boxConstraints.maxHeight, ); }, ), ), const SizedBox(width: 10), Expanded( child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( item['title'] ?? '', maxLines: 2, overflow: TextOverflow.ellipsis, ), const Spacer(), Text( '${item['count']}个内容 · ${item['is_public'] == 1 ? '私密' : '公开'}', style: TextStyle( fontSize: 12, color: Theme.of(context).colorScheme.outline, ), ), ], ), ), ], ), ), ), ); } }