diff --git a/lib/pages/home/comments/comments.dart b/lib/pages/home/comments/comments.dart index b13e31c..ce45163 100644 --- a/lib/pages/home/comments/comments.dart +++ b/lib/pages/home/comments/comments.dart @@ -33,7 +33,7 @@ class _CommentsState extends State { final state = context.read(); state.itemId = widget.pageData['id']; state.isRadar = widget.pageData['isRadar']; - state.onCommentAdded = widget.pageData['onCommentAdded']; + state.onCommentsChanged = widget.pageData['onCommentsChanged']; Future.delayed( Duration.zero, () => state.getComments(), diff --git a/lib/pages/home/comments/comments_state.dart b/lib/pages/home/comments/comments_state.dart index 7cb276c..f690887 100644 --- a/lib/pages/home/comments/comments_state.dart +++ b/lib/pages/home/comments/comments_state.dart @@ -8,7 +8,6 @@ import 'package:didvan/providers/core_provider.dart'; import 'package:didvan/providers/user_provider.dart'; import 'package:didvan/services/network/request.dart'; import 'package:didvan/services/network/request_helper.dart'; -import 'package:flutter/cupertino.dart'; import 'package:provider/provider.dart'; class CommentsState extends CoreProvier { @@ -16,7 +15,8 @@ class CommentsState extends CoreProvier { int? commentId; UserOverview? replyingTo; bool showReplyBox = false; - late VoidCallback onCommentAdded; + late void Function(int count) onCommentsChanged; + int _count = 0; final List comments = []; final Map> _feedbackQueue = {}; @@ -36,6 +36,10 @@ class CommentsState extends CoreProvier { final messages = service.result['comments']; for (var i = 0; i < messages.length; i++) { comments.add(CommentData.fromJson(messages[i])); + _count++; + for (var j = 0; j < messages[i]['replies'].length; j++) { + _count++; + } } appState = AppState.idle; return; @@ -99,7 +103,8 @@ class CommentsState extends CoreProvier { ); } - onCommentAdded(); + _count++; + onCommentsChanged(_count); final body = {}; diff --git a/lib/pages/home/widgets/radar_overview.dart b/lib/pages/home/widgets/radar_overview.dart index c9430ba..02fce1d 100644 --- a/lib/pages/home/widgets/radar_overview.dart +++ b/lib/pages/home/widgets/radar_overview.dart @@ -114,7 +114,8 @@ class RadarOverview extends StatelessWidget { 'isRadar': true, 'title': radar.title, 'id': radar.id, - 'onCommentsChanged': onCommentsChanged + 'onCommentsChanged': (count) => + onCommentsChanged(radar.id, count) }, ), ), diff --git a/lib/widgets/floating_navigation_bar.dart b/lib/widgets/floating_navigation_bar.dart index 1d61ab9..e670b1c 100644 --- a/lib/widgets/floating_navigation_bar.dart +++ b/lib/widgets/floating_navigation_bar.dart @@ -46,6 +46,12 @@ class _FloatingNavigationBarState extends State { bool _isScrolled = false; int _comments = 0; + @override + void didUpdateWidget(covariant FloatingNavigationBar oldWidget) { + _comments = widget.comments; + super.didUpdateWidget(oldWidget); + } + @override void initState() { _isScrolled = false; @@ -106,7 +112,7 @@ class _FloatingNavigationBarState extends State { bigGestureSize: true, ), SizedBox( - width: 48, + width: 60, child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [