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) {