mirror of
https://github.com/wgh136/pixes.git
synced 2025-09-27 12:57:24 +00:00
48 lines
1.4 KiB
Dart
48 lines
1.4 KiB
Dart
import 'package:fluent_ui/fluent_ui.dart';
|
|
import 'package:pixes/components/animated_image.dart';
|
|
import 'package:pixes/foundation/app.dart';
|
|
import 'package:pixes/foundation/image_provider.dart';
|
|
import 'package:pixes/network/models.dart';
|
|
|
|
import '../pages/illust_page.dart';
|
|
|
|
class IllustWidget extends StatelessWidget {
|
|
const IllustWidget(this.illust, {super.key});
|
|
|
|
final Illust illust;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return LayoutBuilder(builder: (context, constrains) {
|
|
final width = constrains.maxWidth;
|
|
final height = illust.height * width / illust.width;
|
|
return Container(
|
|
width: width,
|
|
height: height,
|
|
padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 8.0),
|
|
child: Card(
|
|
padding: EdgeInsets.zero,
|
|
margin: EdgeInsets.zero,
|
|
child: MouseRegion(
|
|
cursor: SystemMouseCursors.click,
|
|
child: GestureDetector(
|
|
onTap: (){
|
|
context.to(() => IllustPage(illust));
|
|
},
|
|
child: ClipRRect(
|
|
borderRadius: BorderRadius.circular(4.0),
|
|
child: AnimatedImage(
|
|
image: CachedImageProvider(illust.images.first.medium),
|
|
fit: BoxFit.cover,
|
|
width: width-16.0,
|
|
height: height-16.0,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
});
|
|
}
|
|
}
|