From e4654d63c3c7e7455ca1d0d0c85bfb2b11a22ba0 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Mon, 19 May 2025 20:40:09 +0800 Subject: [PATCH] fix vote Signed-off-by: bggRGjQaUbCoE --- lib/http/dynamics.dart | 4 ++-- lib/pages/article/widgets/opus_content.dart | 2 +- lib/pages/article/widgets/read_opus.dart | 2 +- lib/pages/dynamics/widgets/additional_panel.dart | 16 ++++++++++++---- lib/pages/dynamics/widgets/rich_node_panel.dart | 5 ++++- lib/pages/dynamics/widgets/vote.dart | 3 ++- 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/http/dynamics.dart b/lib/http/dynamics.dart index 9d1e026f..b794bbe9 100644 --- a/lib/http/dynamics.dart +++ b/lib/http/dynamics.dart @@ -261,10 +261,10 @@ class DynamicsHttp { } static Future> doVote({ - required voteId, + required int voteId, required List votes, bool anonymity = false, - dynamicId, + int? dynamicId, }) async { final csrf = Accounts.main.csrf; final data = { diff --git a/lib/pages/article/widgets/opus_content.dart b/lib/pages/article/widgets/opus_content.dart index 0b5651f7..e12faa68 100644 --- a/lib/pages/article/widgets/opus_content.dart +++ b/lib/pages/article/widgets/opus_content.dart @@ -246,7 +246,7 @@ class OpusContent extends StatelessWidget { showVoteDialog( context, element.linkCard!.card!.vote?.voteId ?? - element.linkCard!.card!.oid, + int.parse(element.linkCard!.card!.oid!), ); return; } diff --git a/lib/pages/article/widgets/read_opus.dart b/lib/pages/article/widgets/read_opus.dart index 9abccd63..4fb67e27 100644 --- a/lib/pages/article/widgets/read_opus.dart +++ b/lib/pages/article/widgets/read_opus.dart @@ -50,7 +50,7 @@ class ReadOpus extends StatelessWidget { } case 'vote-card card': if (card.id != null) { - showVoteDialog(context, card.id); + showVoteDialog(context, int.parse(card.id!)); } } }, diff --git a/lib/pages/dynamics/widgets/additional_panel.dart b/lib/pages/dynamics/widgets/additional_panel.dart index ab8a2cc7..5b10c8e8 100644 --- a/lib/pages/dynamics/widgets/additional_panel.dart +++ b/lib/pages/dynamics/widgets/additional_panel.dart @@ -309,8 +309,12 @@ Widget addWidget( onTap: () { showVoteDialog( context, - vote.voteId, - item.idStr, + vote.voteId!, + item.idStr is int + ? item.idStr + : item.idStr is String + ? int.parse(item.idStr) + : null, ); }, child: Padding( @@ -358,8 +362,12 @@ Widget addWidget( onPressed: () { showVoteDialog( context, - vote.voteId, - item.idStr, + vote.voteId!, + item.idStr is int + ? item.idStr + : item.idStr is String + ? int.parse(item.idStr) + : null, ); }, style: FilledButton.styleFrom( diff --git a/lib/pages/dynamics/widgets/rich_node_panel.dart b/lib/pages/dynamics/widgets/rich_node_panel.dart index bf165cd8..7b2b6ce5 100644 --- a/lib/pages/dynamics/widgets/rich_node_panel.dart +++ b/lib/pages/dynamics/widgets/rich_node_panel.dart @@ -123,7 +123,10 @@ TextSpan? richNode( ), recognizer: TapGestureRecognizer() ..onTap = () { - showVoteDialog(context, i.rid, item.basic?.commentIdStr); + final dynIdStr = item.basic?.commentIdStr; + final dynId = + dynIdStr != null ? int.tryParse(dynIdStr) : null; + showVoteDialog(context, int.parse(i.rid!), dynId); }, ), ); diff --git a/lib/pages/dynamics/widgets/vote.dart b/lib/pages/dynamics/widgets/vote.dart index 79ff9789..1cab0a62 100644 --- a/lib/pages/dynamics/widgets/vote.dart +++ b/lib/pages/dynamics/widgets/vote.dart @@ -256,7 +256,8 @@ class PercentageChip extends StatelessWidget { } } -Future showVoteDialog(BuildContext context, voteId, [dynamicId]) async { +Future showVoteDialog(BuildContext context, int voteId, + [int? dynamicId]) async { final voteInfo = await DynamicsHttp.voteInfo(voteId); if (context.mounted) { if (voteInfo.isSuccess) {