comment count fixed
This commit is contained in:
@@ -27,7 +27,7 @@ class NormalCardTile extends StatefulWidget {
|
||||
List<ReactionData> reactions;
|
||||
Map<int, ReactionData?> selectedReactions;
|
||||
bool? coachbool;
|
||||
|
||||
bool showCommentButton;
|
||||
int currentIndex;
|
||||
NormalCardTile(
|
||||
{Key? key,
|
||||
@@ -38,6 +38,7 @@ class NormalCardTile extends StatefulWidget {
|
||||
required this.reactions,
|
||||
required this.selectedReactions,
|
||||
required this.currentIndex,
|
||||
this.showCommentButton = true,
|
||||
this.coachbool})
|
||||
: super(key: key);
|
||||
|
||||
@@ -176,7 +177,7 @@ class _NormalCardTileState extends State<NormalCardTile> {
|
||||
.last;
|
||||
|
||||
return ConstrainedBox(
|
||||
constraints: BoxConstraints(minHeight: 820.h),
|
||||
constraints: BoxConstraints(minHeight: Get.width < 400 ? 750 : 700),
|
||||
child: commonGlassUI(
|
||||
width: double.infinity,
|
||||
height: 600.h,
|
||||
@@ -370,19 +371,21 @@ class _NormalCardTileState extends State<NormalCardTile> {
|
||||
sizedBoxHeight(20.h),
|
||||
GestureDetector(
|
||||
onTap: () async {
|
||||
bool result = await Get.toNamed(RouteName.postdetailsScreen,
|
||||
arguments: {
|
||||
'postId': widget.commonObj.id,
|
||||
'tagsList': widget.tags,
|
||||
'created_at': widget.createAt,
|
||||
'commonObj': widget.commonObj,
|
||||
'fromWhichTab': widget.forWhichTab,
|
||||
'reactions': widget.reactions,
|
||||
'selectedReactions': widget.selectedReactions,
|
||||
'currentIndex': widget.currentIndex
|
||||
});
|
||||
if (result) {
|
||||
setState(() {});
|
||||
if (widget.showCommentButton) {
|
||||
bool result = await Get.toNamed(RouteName.postdetailsScreen,
|
||||
arguments: {
|
||||
'postId': widget.commonObj.id,
|
||||
'tagsList': widget.tags,
|
||||
'created_at': widget.createAt,
|
||||
'commonObj': widget.commonObj,
|
||||
'fromWhichTab': widget.forWhichTab,
|
||||
'reactions': widget.reactions,
|
||||
'selectedReactions': widget.selectedReactions,
|
||||
'currentIndex': widget.currentIndex
|
||||
});
|
||||
if (result) {
|
||||
setState(() {});
|
||||
}
|
||||
}
|
||||
},
|
||||
child: SizedBox(
|
||||
@@ -405,6 +408,7 @@ class _NormalCardTileState extends State<NormalCardTile> {
|
||||
child: Column(children: [
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
width: double.infinity,
|
||||
child: ListView.builder(
|
||||
scrollDirection: Axis.horizontal,
|
||||
shrinkWrap: true,
|
||||
@@ -502,8 +506,11 @@ class _NormalCardTileState extends State<NormalCardTile> {
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC(
|
||||
widget.commonObj.totalCommentCount.toString()),
|
||||
Obx(
|
||||
() => text14w400_FCFCFC(countersHelper
|
||||
.commentsCounterPopular[widget.currentIndex]
|
||||
.toString()),
|
||||
),
|
||||
sizedBoxWidth(20.w),
|
||||
commonContainer(
|
||||
width: 30.w,
|
||||
@@ -607,36 +614,39 @@ class _NormalCardTileState extends State<NormalCardTile> {
|
||||
text11w400_FCFCFC('Like'),
|
||||
],
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () async {
|
||||
bool result = await Get.toNamed(
|
||||
RouteName.postdetailsScreen,
|
||||
arguments: {
|
||||
'postId': widget.commonObj.id,
|
||||
'tagsList': widget.tags,
|
||||
'created_at': widget.createAt,
|
||||
'commonObj': widget.commonObj,
|
||||
'fromWhichTab': widget.forWhichTab,
|
||||
'reactions': widget.reactions,
|
||||
'selectedReactions': widget.selectedReactions,
|
||||
'currentIndex': widget.currentIndex
|
||||
});
|
||||
if (result) {
|
||||
setState(() {});
|
||||
}
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Frame 1000004088.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Comment')
|
||||
],
|
||||
),
|
||||
),
|
||||
widget.showCommentButton
|
||||
? GestureDetector(
|
||||
onTap: () async {
|
||||
bool result = await Get.toNamed(
|
||||
RouteName.postdetailsScreen,
|
||||
arguments: {
|
||||
'postId': widget.commonObj.id,
|
||||
'tagsList': widget.tags,
|
||||
'created_at': widget.createAt,
|
||||
'commonObj': widget.commonObj,
|
||||
'fromWhichTab': widget.forWhichTab,
|
||||
'reactions': widget.reactions,
|
||||
'selectedReactions':
|
||||
widget.selectedReactions,
|
||||
'currentIndex': widget.currentIndex
|
||||
});
|
||||
if (result) {
|
||||
setState(() {});
|
||||
}
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Frame 1000004088.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Comment')
|
||||
],
|
||||
),
|
||||
)
|
||||
: SizedBox(),
|
||||
Obx(
|
||||
() => Column(
|
||||
//here
|
||||
|
||||
@@ -500,15 +500,12 @@ class PopularTab extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _PopularTabState extends State<PopularTab> {
|
||||
late Future popularfuture;
|
||||
List<ReactionData> _reactions = [];
|
||||
final Map<int, ReactionData?> _selectedReactions = {};
|
||||
final CountersHelper countersHelper = Get.find<CountersHelper>();
|
||||
int? likeIconIdnew;
|
||||
@override
|
||||
void initState() {
|
||||
popularfuture = PopularpostApi().getPopularPostApi();
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@@ -541,6 +538,12 @@ class _PopularTabState extends State<PopularTab> {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _initialize() async {
|
||||
//api call here
|
||||
await PopularpostApi().getPopularPostApi();
|
||||
await setValues();
|
||||
}
|
||||
|
||||
_sortTags(index) {
|
||||
var tags = commonobjmodel!.data[index].attachTags
|
||||
.where((tag) => tag.manageTag?.name?.isNotEmpty ?? false)
|
||||
@@ -612,7 +615,7 @@ class _PopularTabState extends State<PopularTab> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return FutureBuilder(
|
||||
future: popularfuture,
|
||||
future: _initialize(),
|
||||
builder: (ctx, snapshot) {
|
||||
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||
return const Center(child: ShimmerCommon());
|
||||
@@ -627,9 +630,7 @@ class _PopularTabState extends State<PopularTab> {
|
||||
);
|
||||
}
|
||||
|
||||
if (snapshot.connectionState == ConnectionState.done &&
|
||||
snapshot.hasData) {
|
||||
setValues();
|
||||
if (snapshot.connectionState == ConnectionState.done) {
|
||||
return Stack(clipBehavior: Clip.none, children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
@@ -703,12 +704,8 @@ class LatestTab extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _LatestTabState extends State<LatestTab> {
|
||||
late Future latestfuture;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
latestfuture = LatespostApi().getLatestPostApi();
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@@ -818,10 +815,16 @@ class _LatestTabState extends State<LatestTab> {
|
||||
.toList());
|
||||
}
|
||||
|
||||
Future<void> _initialize() async {
|
||||
//api call here
|
||||
await LatespostApi().getLatestPostApi();
|
||||
await setValues();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return FutureBuilder(
|
||||
future: latestfuture,
|
||||
future: _initialize(),
|
||||
builder: (ctx, snapshot) {
|
||||
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||
return const Center(child: ShimmerCommon());
|
||||
@@ -836,9 +839,7 @@ class _LatestTabState extends State<LatestTab> {
|
||||
);
|
||||
}
|
||||
|
||||
if (snapshot.connectionState == ConnectionState.done &&
|
||||
snapshot.hasData) {
|
||||
setValues();
|
||||
if (snapshot.connectionState == ConnectionState.done) {
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
@@ -849,7 +850,7 @@ class _LatestTabState extends State<LatestTab> {
|
||||
fit: BoxFit.fill),
|
||||
),
|
||||
),
|
||||
latestpostobj!.data.isEmpty
|
||||
commonobjmodel!.data.isEmpty
|
||||
? Expanded(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
@@ -13,9 +11,11 @@ import 'package:regroup/Main_Screens/Community/Model/fetchicons.dart';
|
||||
import 'package:regroup/Main_Screens/Community_HomePage/PostDetailScreen/ViewModel/CommentsHelper.dart';
|
||||
import 'package:regroup/Main_Screens/Community_HomePage/PostDetailScreen/ViewModel/CommentsRepository.dart';
|
||||
import 'package:regroup/Main_Screens/Community_HomePage/PostDetailScreen/ViewModel/PostDetailApi.dart';
|
||||
import 'package:regroup/Main_Screens/Community_HomePage/view_model/CountersHelper.dart';
|
||||
import 'package:regroup/Main_Screens/ProfileTab/view_model/profilePostmethod.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
|
||||
import 'package:regroup/Utils/Common/ShimmerCommon.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/dialogs.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
@@ -50,7 +50,7 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
final FocusNode _focusNode = FocusNode();
|
||||
final TextEditingController _controllerComments = TextEditingController();
|
||||
final CommentsHelper _commentsHelper = Get.put(CommentsHelper());
|
||||
|
||||
final CountersHelper countersHelper = Get.find<CountersHelper>();
|
||||
String? mainpostid;
|
||||
List<ManageTagPopular>? tags;
|
||||
String? create_at;
|
||||
@@ -70,7 +70,6 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
reactions = Get.arguments['reactions'];
|
||||
selectedReactions = Get.arguments['selectedReactions'];
|
||||
currentIndex = Get.arguments['currentIndex'];
|
||||
|
||||
futureGroup.add(CommentsRepository().getAllComments(mainpostid));
|
||||
futureGroup.add(PostDetailApi().getPostDetail(mainpostid));
|
||||
futureGroup.close();
|
||||
@@ -102,6 +101,7 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
};
|
||||
final result = await CommentsRepository().postComments(updata);
|
||||
if (result.status == ResponseStatus.SUCCESS) {
|
||||
countersHelper.commentsCounterPopular[currentIndex!]++;
|
||||
CommentsRepository()
|
||||
.getAllComments(mainpostid)
|
||||
.then((value) => setState(() {
|
||||
@@ -150,6 +150,7 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
var updata = {"id": commentId};
|
||||
final result = await CommentsRepository().deleteComments(updata);
|
||||
if (result.status == ResponseStatus.SUCCESS) {
|
||||
countersHelper.commentsCounterPopular[currentIndex!]--;
|
||||
CommentsRepository()
|
||||
.getAllComments(mainpostid)
|
||||
.then((value) => setState(() {
|
||||
@@ -193,11 +194,7 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
future: futureGroup.future,
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||
return const Center(
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.blue,
|
||||
),
|
||||
);
|
||||
return const Center(child: ShimmerCommon());
|
||||
} else if (snapshot.hasError) {
|
||||
return Center(
|
||||
child: Text(
|
||||
@@ -239,189 +236,9 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
reactions: reactions!,
|
||||
selectedReactions: selectedReactions!,
|
||||
currentIndex: currentIndex!,
|
||||
showCommentButton: false,
|
||||
),
|
||||
// ListView.builder(
|
||||
// physics: const NeverScrollableScrollPhysics(),
|
||||
// shrinkWrap: true,
|
||||
// itemCount: nestedComments!.data.length,
|
||||
// itemBuilder: (context, index) {
|
||||
// List<Comment> _repliedCommentsSorted = _setComments(index);
|
||||
|
||||
// return Container(
|
||||
// padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
|
||||
// child: CommentTreeWidget<Comment, Comment>(
|
||||
// Comment(
|
||||
// avatar:
|
||||
// nestedComments!.data[index].userDetail!.profilePhoto,
|
||||
// userName: nestedComments!.data[index].userDetail!.userName,
|
||||
// content: nestedComments!.data[index].comment),
|
||||
// [],
|
||||
// // _repliedCommentsSorted.isNotEmpty ? _repliedCommentsSorted : [],
|
||||
// treeThemeData: const TreeThemeData(
|
||||
// lineColor: Color(0xFFD90B2E), lineWidth: 2.5),
|
||||
// avatarRoot: (context, data) => PreferredSize(
|
||||
// preferredSize: const Size.fromRadius(18),
|
||||
// child: CircleAvatar(
|
||||
// radius: 18,
|
||||
// backgroundColor: Colors.grey,
|
||||
// backgroundImage: NetworkImage(
|
||||
// data.avatar ??
|
||||
// "https://upload.wikimedia.org/wikipedia/commons/7/7c/Profile_avatar_placeholder_large.png?20150327203541",
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// avatarChild: (context, data) => PreferredSize(
|
||||
// preferredSize: const Size.fromRadius(12),
|
||||
// child: CircleAvatar(
|
||||
// radius: 12,
|
||||
// backgroundColor: Colors.grey,
|
||||
// backgroundImage: NetworkImage(
|
||||
// data.avatar ??
|
||||
// "https://upload.wikimedia.org/wikipedia/commons/7/7c/Profile_avatar_placeholder_large.png?20150327203541",
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// contentChild: (context, data) {
|
||||
// return data.userName! == "Ram" && _hideReplies[index]
|
||||
// ? GestureDetector(
|
||||
// onTap: () {
|
||||
// setState(() {
|
||||
// _hideReplies[index] = false;
|
||||
// });
|
||||
// },
|
||||
// child: Container(
|
||||
// child: const Text(
|
||||
// "View more",
|
||||
// style: TextStyle(color: Colors.white),
|
||||
// ),
|
||||
// ),
|
||||
// )
|
||||
// : Column(
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
// children: [
|
||||
// Container(
|
||||
// padding: const EdgeInsets.symmetric(
|
||||
// vertical: 8, horizontal: 8),
|
||||
// decoration: BoxDecoration(
|
||||
// color: Colors.grey[100],
|
||||
// borderRadius: BorderRadius.circular(12)),
|
||||
// child: Column(
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
// children: [
|
||||
// Text(
|
||||
// '${data.userName}',
|
||||
// style: Theme.of(context)
|
||||
// .textTheme
|
||||
// .bodySmall
|
||||
// ?.copyWith(
|
||||
// fontWeight: FontWeight.w600,
|
||||
// color: Colors.black),
|
||||
// ),
|
||||
// const SizedBox(
|
||||
// height: 4,
|
||||
// ),
|
||||
// Text(
|
||||
// '${data.content}',
|
||||
// style: Theme.of(context)
|
||||
// .textTheme
|
||||
// .bodySmall
|
||||
// ?.copyWith(
|
||||
// fontWeight: FontWeight.w300,
|
||||
// color: Colors.black),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// DefaultTextStyle(
|
||||
// style: Theme.of(context)
|
||||
// .textTheme
|
||||
// .bodySmall!
|
||||
// .copyWith(
|
||||
// color: Colors.grey[700],
|
||||
// fontWeight: FontWeight.bold),
|
||||
// child: const Padding(
|
||||
// padding: EdgeInsets.only(top: 4),
|
||||
// child: Row(
|
||||
// children: [
|
||||
// SizedBox(
|
||||
// width: 8,
|
||||
// ),
|
||||
// Text('Like'),
|
||||
// SizedBox(
|
||||
// width: 24,
|
||||
// ),
|
||||
// Text('Reply'),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// )
|
||||
// ],
|
||||
// );
|
||||
// },
|
||||
// contentRoot: (context, data) {
|
||||
// return Column(
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
// children: [
|
||||
// Container(
|
||||
// padding: const EdgeInsets.symmetric(
|
||||
// vertical: 8, horizontal: 8),
|
||||
// decoration: BoxDecoration(
|
||||
// color: Colors.grey[100],
|
||||
// borderRadius: BorderRadius.circular(12)),
|
||||
// child: Column(
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
// children: [
|
||||
// Text(
|
||||
// 'dangngocduc',
|
||||
// style: Theme.of(context)
|
||||
// .textTheme
|
||||
// .bodySmall!
|
||||
// .copyWith(
|
||||
// fontWeight: FontWeight.w600,
|
||||
// color: Colors.black),
|
||||
// ),
|
||||
// const SizedBox(
|
||||
// height: 4,
|
||||
// ),
|
||||
// Text(
|
||||
// '${data.content}',
|
||||
// style: Theme.of(context)
|
||||
// .textTheme
|
||||
// .bodySmall!
|
||||
// .copyWith(
|
||||
// fontWeight: FontWeight.w300,
|
||||
// color: Colors.black),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// DefaultTextStyle(
|
||||
// style: Theme.of(context).textTheme.bodySmall!.copyWith(
|
||||
// color: Colors.grey[700],
|
||||
// fontWeight: FontWeight.bold),
|
||||
// child: const Padding(
|
||||
// padding: EdgeInsets.only(top: 4),
|
||||
// child: Row(
|
||||
// children: [
|
||||
// SizedBox(
|
||||
// width: 8,
|
||||
// ),
|
||||
// Text('Like'),
|
||||
// SizedBox(
|
||||
// width: 24,
|
||||
// ),
|
||||
// Text('Reply'),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// )
|
||||
// ],
|
||||
// );
|
||||
// },
|
||||
// ),
|
||||
// );
|
||||
// },
|
||||
// ),
|
||||
sizedBoxHeight(35.h),
|
||||
|
||||
ListView.builder(
|
||||
|
||||
@@ -245,6 +245,7 @@ class _PopularTabState extends State<PopularTab> {
|
||||
await setValues();
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return FutureBuilder(
|
||||
|
||||
Reference in New Issue
Block a user