Skip to content

Commit 2e7f462

Browse files
committed
add new comment tweet bug fix
1 parent dea30a7 commit 2e7f462

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

lib/state/feedState.dart

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,11 @@ class FeedState extends AuthState {
227227
if (tweetReplyMap[parentkey].length == 0) {
228228
tweetReplyMap[parentkey] = null;
229229
}
230+
var parentModel =
231+
_tweetDetailModel.firstWhere((x) => x.key == parentkey);
232+
parentModel.replyTweetKeyList.remove(deletedTweet.key);
233+
parentModel.commentCount = parentModel.replyTweetKeyList.length;
234+
updateTweet(parentModel);
230235
cprint(
231236
'Tweet deleted from nested ttweet detail comment section page');
232237
}
@@ -287,6 +292,15 @@ class FeedState extends AuthState {
287292
}
288293
}
289294

295+
/// [update] tweet
296+
updateTweet(FeedModel model) async {
297+
await _database
298+
.reference()
299+
.child('feed')
300+
.child(model.key)
301+
.set(model.toJson());
302+
}
303+
290304
/// add [Like] to tweet
291305
addLikeToComment({String postId, FeedModel commentModel, String userId}) {
292306
try {
@@ -331,11 +345,7 @@ class FeedState extends AuthState {
331345
(x) => x.userId == userId,
332346
);
333347
tweet.likeCount -= 1;
334-
_database
335-
.reference()
336-
.child('feed')
337-
.child(tweet.key)
338-
.set(tweet.toJson());
348+
updateTweet(tweet);
339349
} else {
340350
_database
341351
.reference()
@@ -361,7 +371,7 @@ class FeedState extends AuthState {
361371
var json = replyTweet.toJson();
362372
_database.reference().child('feed').push().set(json).then((value) {
363373
tweet.replyTweetKeyList.add(_feedlist.last.key);
364-
_database.reference().child('feed').child(postId).set(tweet.toJson());
374+
updateTweet(tweet);
365375
});
366376
}
367377
} catch (error) {
@@ -393,10 +403,9 @@ class FeedState extends AuthState {
393403
var list = tweetReplyMap[model.parentkey];
394404
// var list = tweetReplyMap.values.firstWhere((x) => x.any((y) => y.key == model.key));
395405
if (list != null && list.length > 0) {
396-
list.firstWhere((x) => x.key == model.key).likeCount =
397-
model.likeCount;
398-
list.firstWhere((x) => x.key == model.key).likeList =
399-
model.likeList;
406+
var index =
407+
list.indexOf(list.firstWhere((x) => x.key == model.key));
408+
list[index] = model;
400409
} else {
401410
list = [];
402411
list.add(model);
@@ -430,9 +439,10 @@ class FeedState extends AuthState {
430439
_onCommentAdded(FeedModel tweet) {
431440
/// add [new tweet] comment to comment list
432441
if (tweetReplyMap != null && tweetReplyMap.length > 0) {
433-
var list = tweetReplyMap[tweet.parentkey];
434-
if (list != null) {
435-
list.add(tweet);
442+
if (tweetReplyMap[tweet.parentkey] != null) {
443+
tweetReplyMap[tweet.parentkey].add(tweet);
444+
} else {
445+
tweetReplyMap[tweet.parentkey] = [tweet];
436446
}
437447
}
438448
cprint('Comment created');

0 commit comments

Comments
 (0)