opt view opus images

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-05-02 12:03:12 +08:00
parent 469350c05f
commit 89c7d24c13
3 changed files with 13 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ import 'package:PiliPlus/http/dynamics.dart';
import 'package:PiliPlus/http/fav.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/common/image_preview_type.dart';
import 'package:PiliPlus/models/dynamics/article_content_model.dart'
show ArticleContentModel;
import 'package:PiliPlus/models/dynamics/result.dart';
@@ -43,6 +44,12 @@ class ArticleController extends CommonDynController {
List<ArticleContentModel>? get opus =>
opusData?.modules.moduleContent ?? articleData?.opus?.content;
List<SourceModel>? _images;
List<SourceModel> images() => _images ??= opus!
.where((e) => e.paraType == 2 && e.pic != null)
.map((e) => SourceModel(url: e.pic!.pics!.first.url!))
.toList();
@override
void onInit() {
super.onInit();

View File

@@ -171,6 +171,7 @@ class _ArticlePageState extends CommonDynPageState<ArticlePage> {
// if (kDebugMode) debugPrint('json page');
content = OpusContent(
opus: controller.opus!,
images: controller.images,
maxWidth: maxWidth,
);
} else if (controller.opusData?.modules.moduleBlocked != null) {

View File

@@ -33,11 +33,13 @@ import 'package:re_highlight/styles/github.dart';
class OpusContent extends StatelessWidget {
final List<ArticleContentModel> opus;
final ValueGetter<List<SourceModel>> images;
final double maxWidth;
const OpusContent({
super.key,
required this.opus,
required this.images,
required this.maxWidth,
});
@@ -240,9 +242,11 @@ class OpusContent extends StatelessWidget {
child: child,
);
}
final images = this.images();
return GestureDetector(
onTap: () => PageUtils.imageView(
imgList: [SourceModel(url: pic.url!)],
imgList: images,
initialPage: images.indexWhere((e) => e.url == pic.url),
quality: 60,
),
child: child,