* opt: cache

* opt: MediaListPanel

* feat: nested replyreply panel

* tweaks

* opt: abstract class

* opt: PageStorageKey

* opt: contextExt

* opt: EpisodePanel

* opt

* opt: context instead GlobalKey

* feat: jump to reply

* refa: reply_reply

* fix: jump

* fix: index

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt: keepalive

* reapply: nested replyreply

* mod: spacing

* opt: CommonSlidePageState

* fix drag bottomsheet

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt reply jump

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt reply2reply

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* reapply: jumpToReply

* fix: padding

* fix: anim

* fix some panels

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt: implements Scaffold

* opt: remove keepalive

* revert: GlobalKey

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2025-09-15 18:45:28 +08:00
committed by GitHub
parent b9a55ccbce
commit 37fb63c3b1
75 changed files with 6300 additions and 1140 deletions

View File

@@ -145,7 +145,6 @@ class _ArticlePageState extends CommonDynPageState<ArticlePage> {
child: Padding(
padding: EdgeInsets.only(right: padding),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Colors.transparent,
resizeToAvoidBottomInset: false,
body: refreshIndicator(
@@ -179,7 +178,6 @@ class _ArticlePageState extends CommonDynPageState<ArticlePage> {
// if (kDebugMode) debugPrint('json page');
content = OpusContent(
opus: controller.opus!,
callback: imageCallback,
maxWidth: maxWidth,
);
} else if (controller.opusData?.modules.moduleBlocked != null) {
@@ -201,7 +199,6 @@ class _ArticlePageState extends CommonDynPageState<ArticlePage> {
context: context,
html: controller.articleData!.content!,
maxWidth: maxWidth,
callback: imageCallback,
),
);
} else {
@@ -212,7 +209,6 @@ class _ArticlePageState extends CommonDynPageState<ArticlePage> {
context: context,
element: res.body!.children[index],
maxWidth: maxWidth,
callback: imageCallback,
);
},
separatorBuilder: (context, index) =>
@@ -444,7 +440,6 @@ class _ArticlePageState extends CommonDynPageState<ArticlePage> {
onDelete: (item, subIndex) =>
controller.onRemove(index, item, subIndex),
upMid: controller.upMid,
callback: imageCallback,
onCheckReply: (item) =>
controller.onCheckReply(item, isManual: true),
onToggleTop: (item) => controller.onToggleTop(

View File

@@ -14,7 +14,6 @@ Widget htmlRender({
int? imgCount,
List<String>? imgList,
required double maxWidth,
Function(List<String>, int)? callback,
}) {
// if (kDebugMode) debugPrint('htmlRender');
final extensions = [
@@ -51,14 +50,10 @@ Widget htmlRender({
tag: imgUrl,
child: GestureDetector(
onTap: () {
if (callback != null) {
callback([imgUrl], 0);
} else {
PageUtils.imageView(
imgList: [SourceModel(url: imgUrl)],
quality: 60,
);
}
PageUtils.imageView(
imgList: [SourceModel(url: imgUrl)],
quality: 60,
);
},
child: CachedNetworkImage(
width: size,

View File

@@ -28,13 +28,11 @@ import 'package:re_highlight/styles/github.dart';
class OpusContent extends StatelessWidget {
final List<ArticleContentModel> opus;
final void Function(List<String>, int)? callback;
final double maxWidth;
const OpusContent({
super.key,
required this.opus,
this.callback,
required this.maxWidth,
});
@@ -183,14 +181,10 @@ class OpusContent extends StatelessWidget {
tag: pic.url!,
child: GestureDetector(
onTap: () {
if (callback != null) {
callback!([pic.url!], 0);
} else {
PageUtils.imageView(
imgList: [SourceModel(url: pic.url!)],
quality: 60,
);
}
PageUtils.imageView(
imgList: [SourceModel(url: pic.url!)],
quality: 60,
);
},
child: Center(
child: CachedNetworkImage(