@@ -227,6 +227,11 @@ class FeedState extends AuthState {
227
227
if (tweetReplyMap[parentkey].length == 0 ) {
228
228
tweetReplyMap[parentkey] = null ;
229
229
}
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);
230
235
cprint (
231
236
'Tweet deleted from nested ttweet detail comment section page' );
232
237
}
@@ -287,6 +292,15 @@ class FeedState extends AuthState {
287
292
}
288
293
}
289
294
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
+
290
304
/// add [Like] to tweet
291
305
addLikeToComment ({String postId, FeedModel commentModel, String userId}) {
292
306
try {
@@ -331,11 +345,7 @@ class FeedState extends AuthState {
331
345
(x) => x.userId == userId,
332
346
);
333
347
tweet.likeCount -= 1 ;
334
- _database
335
- .reference ()
336
- .child ('feed' )
337
- .child (tweet.key)
338
- .set (tweet.toJson ());
348
+ updateTweet (tweet);
339
349
} else {
340
350
_database
341
351
.reference ()
@@ -361,7 +371,7 @@ class FeedState extends AuthState {
361
371
var json = replyTweet.toJson ();
362
372
_database.reference ().child ('feed' ).push ().set (json).then ((value) {
363
373
tweet.replyTweetKeyList.add (_feedlist.last.key);
364
- _database. reference (). child ( 'feed' ). child (postId). set ( tweet. toJson () );
374
+ updateTweet ( tweet);
365
375
});
366
376
}
367
377
} catch (error) {
@@ -393,10 +403,9 @@ class FeedState extends AuthState {
393
403
var list = tweetReplyMap[model.parentkey];
394
404
// var list = tweetReplyMap.values.firstWhere((x) => x.any((y) => y.key == model.key));
395
405
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;
400
409
} else {
401
410
list = [];
402
411
list.add (model);
@@ -430,9 +439,10 @@ class FeedState extends AuthState {
430
439
_onCommentAdded (FeedModel tweet) {
431
440
/// add [new tweet] comment to comment list
432
441
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];
436
446
}
437
447
}
438
448
cprint ('Comment created' );
0 commit comments