get liked list approvals

This commit is contained in:
amirrezaghabeli
2025-09-05 12:59:01 +03:30
parent 7ed240b8df
commit 9398c83b8e
9 changed files with 195 additions and 13 deletions
@@ -4,6 +4,7 @@ import 'package:provider/provider.dart';
import 'package:tm_app/core/constants/assets.dart';
import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/data/services/model/tender_approvals_data/tender_approvals_data.dart';
import 'package:tm_app/view_models/liked_tenders_view_model.dart';
import 'package:tm_app/views/liked_tenders/widgets/liked_tenders_list_item.dart';
@@ -84,6 +85,16 @@ class _LikedTendersDesktopPageState extends State<LikedTendersDesktopPage> {
itemCount: feedback.length,
itemBuilder: (context, index) {
final item = feedback[index];
TenderApprovalsData? approval;
bool hasApproval = viewModel
.hasTenderApprovalForTender(item.tenderId!);
if (hasApproval) {
approval = viewModel.getApprovalStatusForTender(
item.tenderId!,
);
} else {
approval = null;
}
return Padding(
padding: EdgeInsets.only(bottom: 20.0.h()),
child: Dismissible(
@@ -105,7 +116,10 @@ class _LikedTendersDesktopPageState extends State<LikedTendersDesktopPage> {
);
}
},
child: LikedListItem(tender: item.tender!),
child: LikedListItem(
tender: item.tender!,
approval: approval!,
),
),
);
},
@@ -4,6 +4,7 @@ import 'package:provider/provider.dart';
import 'package:tm_app/core/constants/assets.dart';
import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/data/services/model/tender_approvals_data/tender_approvals_data.dart';
import 'package:tm_app/view_models/liked_tenders_view_model.dart';
import 'package:tm_app/views/liked_tenders/strings/liked_tenders_strings.dart';
import 'package:tm_app/views/liked_tenders/widgets/liked_tenders_list_item.dart';
@@ -93,6 +94,18 @@ class _LikedTendersMobilePageState extends State<LikedTendersMobilePage> {
itemBuilder: (context, index) {
if (index < feedback.length) {
final item = feedback[index];
TenderApprovalsData? approval;
bool hasApproval = viewModel.hasTenderApprovalForTender(
item.tenderId!,
);
if (hasApproval) {
approval = viewModel.getApprovalStatusForTender(
item.tenderId!,
);
} else {
approval = null;
}
return Padding(
padding: EdgeInsets.only(bottom: 20.0.h()),
child: Dismissible(
@@ -110,7 +123,10 @@ class _LikedTendersMobilePageState extends State<LikedTendersMobilePage> {
viewModel.removeTenderById(item.tenderId!);
}
},
child: LikedListItem(tender: item.tender!),
child: LikedListItem(
tender: item.tender!,
approval: approval,
),
),
);
} else {
@@ -10,6 +10,7 @@ import 'package:tm_app/view_models/liked_tenders_view_model.dart';
import 'package:tm_app/views/liked_tenders/strings/liked_tenders_strings.dart';
import 'package:tm_app/views/liked_tenders/widgets/liked_tenders_list_item.dart';
import '../../../data/services/model/tender_approvals_data/tender_approvals_data.dart';
import '../../shared/tablet_navigation_widget.dart';
import '../../shared/tender_app_bar.dart';
@@ -91,6 +92,17 @@ class _LikedTendersTabletPageState extends State<LikedTendersTabletPage> {
itemCount: feedback.length,
itemBuilder: (context, index) {
final item = feedback[index];
TenderApprovalsData? approval;
bool hasApproval = viewModel
.hasTenderApprovalForTender(item.tenderId!);
if (hasApproval) {
approval = viewModel
.getApprovalStatusForTender(
item.tenderId!,
);
} else {
approval = null;
}
return Padding(
padding: EdgeInsets.only(bottom: 20.0.h()),
child: Dismissible(
@@ -112,7 +124,10 @@ class _LikedTendersTabletPageState extends State<LikedTendersTabletPage> {
);
}
},
child: LikedListItem(tender: item.tender!),
child: LikedListItem(
tender: item.tender!,
approval: approval!,
),
),
);
},