mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 11:08:03 +08:00
@@ -1,16 +1,24 @@
|
||||
import 'dart:math' as math;
|
||||
|
||||
import 'package:PiliPlus/common/constants.dart';
|
||||
import 'package:PiliPlus/models_new/article/article_view/ops.dart';
|
||||
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
|
||||
import 'package:PiliPlus/utils/app_scheme.dart';
|
||||
import 'package:PiliPlus/utils/extension/num_ext.dart';
|
||||
import 'package:PiliPlus/utils/image_utils.dart';
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class ArticleOpus extends StatelessWidget {
|
||||
const ArticleOpus({super.key, required List<ArticleOps>? ops}) : _ops = ops;
|
||||
const ArticleOpus({
|
||||
super.key,
|
||||
required List<ArticleOps>? ops,
|
||||
required this.maxWidth,
|
||||
}) : _ops = ops;
|
||||
|
||||
final List<ArticleOps>? _ops;
|
||||
final double maxWidth;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -29,6 +37,13 @@ class ArticleOpus extends StatelessWidget {
|
||||
case Insert(:final card):
|
||||
if (card != null) {
|
||||
if (card.url?.isNotEmpty == true) {
|
||||
double? width = card.width == null
|
||||
? null
|
||||
: math.min(maxWidth, card.width!);
|
||||
final height = width == null || card.height == null
|
||||
? null
|
||||
: width * card.height! / card.width!;
|
||||
width ??= maxWidth;
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
switch (item.attributes?.clazz) {
|
||||
@@ -55,6 +70,9 @@ class ArticleOpus extends StatelessWidget {
|
||||
child: ClipRRect(
|
||||
borderRadius: StyleString.mdRadius,
|
||||
child: CachedNetworkImage(
|
||||
width: width,
|
||||
height: height,
|
||||
memCacheWidth: width.cacheSize(context),
|
||||
imageUrl: ImageUtils.thumbnailUrl(card.url, 60),
|
||||
placeholder: (_, _) => const SizedBox.shrink(),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user