[Comic Source] Improve data conversion

This commit is contained in:
2025-04-05 17:18:53 +08:00
parent 463ad5b5bc
commit d91bca6913
4 changed files with 11 additions and 11 deletions

View File

@@ -169,7 +169,9 @@ class ComicDetails with HistoryMixin {
static Map<String, List<String>> _generateMap(Map<dynamic, dynamic> map) {
var res = <String, List<String>>{};
map.forEach((key, value) {
res[key] = List<String>.from(value);
if (value is List) {
res[key] = List<String>.from(value);
}
});
return res;
}

View File

@@ -1035,9 +1035,12 @@ class ComicSourceParser {
var res = JsEngine().runCode("""
ComicSource.sources.$_key.comic.onClickTag(${jsonEncode(namespace)}, ${jsonEncode(tag)})
""");
var r = Map<String, String?>.from(res);
if (res is! Map) {
return null;
}
var r = Map<String, dynamic>.from(res);
r.removeWhere((key, value) => value == null);
return Map.from(r);
return PageJumpTarget.parse(_key!, r);
};
}

View File

@@ -41,7 +41,7 @@ typedef LikeCommentFunc = Future<Res<int?>> Function(
typedef VoteCommentFunc = Future<Res<int?>> Function(
String comicId, String? subId, String commentId, bool isUp, bool isCancel);
typedef HandleClickTagEvent = Map<String, String> Function(
typedef HandleClickTagEvent = PageJumpTarget? Function(
String namespace, String tag);
/// [rating] is the rating value, 0-10. 1 represents 0.5 star.

View File

@@ -294,14 +294,9 @@ abstract mixin class _ComicPageActions {
}
void onTapTag(String tag, String namespace) {
var config = comicSource.handleClickTagEvent?.call(namespace, tag) ??
{
'action': 'search',
'keyword': tag,
};
var target = comicSource.handleClickTagEvent?.call(namespace, tag);
var context = App.mainNavigatorKey!.currentContext!;
var target = PageJumpTarget.parse(comicSource.key, config);
target.jump(context);
target?.jump(context);
}
void showMoreActions() {