Merge pull request 'show message when there is error in submit or remove approvals' (#102) from like_tenders_error_approval into main
Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/102
This commit is contained in:
@@ -21,7 +21,7 @@ class FetchDataException extends AppException {
|
||||
FetchDataException([String? message, int? statusCode, originalError])
|
||||
: super(
|
||||
message ?? 'Error During Communication: ',
|
||||
'Network Error',
|
||||
'Network Error : ',
|
||||
statusCode,
|
||||
originalError,
|
||||
);
|
||||
|
||||
@@ -55,6 +55,11 @@ class LikedTendersViewModel with ChangeNotifier {
|
||||
_homeViewModel.init();
|
||||
}
|
||||
|
||||
void clearApprovalErrorMessage() {
|
||||
_errorMessage = null;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> getLikedTenders({bool reset = false}) async {
|
||||
if (!reset && (isLoadingMore || !hasMore)) {
|
||||
return;
|
||||
@@ -303,7 +308,7 @@ class LikedTendersViewModel with ChangeNotifier {
|
||||
approvalStatus = false;
|
||||
break;
|
||||
}
|
||||
|
||||
approvalStatus = false;
|
||||
_isSubmitApprovalLoading = false;
|
||||
notifyListeners();
|
||||
}
|
||||
@@ -370,6 +375,7 @@ class LikedTendersViewModel with ChangeNotifier {
|
||||
break;
|
||||
}
|
||||
|
||||
approvalStatus = false;
|
||||
_isRejectApprovalLoading = false;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@@ -24,9 +24,26 @@ class _LikedTendersDesktopPageState extends State<LikedTendersDesktopPage> {
|
||||
@override
|
||||
void initState() {
|
||||
viewModel = context.read<LikedTendersViewModel>();
|
||||
viewModel.addListener(_viewModelListener);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
void _viewModelListener() {
|
||||
if (viewModel.approvalErrorMessage?.isNotEmpty == true &&
|
||||
viewModel.approvalStatus == false) {
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(SnackBar(content: Text(viewModel.approvalErrorMessage!)));
|
||||
viewModel.clearApprovalErrorMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
viewModel.removeListener(_viewModelListener);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return PopScope(
|
||||
|
||||
@@ -27,6 +27,18 @@ class _LikedTendersMobilePageState extends State<LikedTendersMobilePage> {
|
||||
viewModel = context.read<LikedTendersViewModel>();
|
||||
super.initState();
|
||||
_scrollController = ScrollController()..addListener(_onScroll);
|
||||
viewModel.addListener(_viewModelListener);
|
||||
}
|
||||
|
||||
void _viewModelListener() {
|
||||
if (mounted &&
|
||||
viewModel.approvalErrorMessage?.isNotEmpty == true &&
|
||||
viewModel.approvalStatus == false) {
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(SnackBar(content: Text(viewModel.approvalErrorMessage!)));
|
||||
viewModel.clearApprovalErrorMessage();
|
||||
}
|
||||
}
|
||||
|
||||
void _onScroll() {
|
||||
@@ -46,6 +58,7 @@ class _LikedTendersMobilePageState extends State<LikedTendersMobilePage> {
|
||||
void dispose() {
|
||||
_scrollController.removeListener(_onScroll);
|
||||
_scrollController.dispose();
|
||||
viewModel.removeListener(_viewModelListener);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@@ -94,11 +107,7 @@ class _LikedTendersMobilePageState extends State<LikedTendersMobilePage> {
|
||||
final itemCount =
|
||||
feedback.length + (viewModel.isLoadingMore ? 1 : 0);
|
||||
|
||||
return RefreshIndicator(
|
||||
onRefresh: () async {
|
||||
await viewModel.getLikedTenders(reset: true);
|
||||
},
|
||||
child: ListView.builder(
|
||||
return ListView.builder(
|
||||
controller: _scrollController,
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 24.0.w(),
|
||||
@@ -109,8 +118,9 @@ class _LikedTendersMobilePageState extends State<LikedTendersMobilePage> {
|
||||
if (index < feedback.length) {
|
||||
final item = feedback[index];
|
||||
TenderApprovalsData? approval;
|
||||
bool hasApproval = viewModel
|
||||
.hasTenderApprovalForTender(item.tenderId!);
|
||||
bool hasApproval = viewModel.hasTenderApprovalForTender(
|
||||
item.tenderId!,
|
||||
);
|
||||
if (hasApproval) {
|
||||
approval = viewModel.getApprovalStatusForTender(
|
||||
item.tenderId!,
|
||||
@@ -162,7 +172,6 @@ class _LikedTendersMobilePageState extends State<LikedTendersMobilePage> {
|
||||
);
|
||||
}
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
@@ -26,6 +26,23 @@ class _LikedTendersTabletPageState extends State<LikedTendersTabletPage> {
|
||||
void initState() {
|
||||
viewModel = context.read<LikedTendersViewModel>();
|
||||
super.initState();
|
||||
viewModel.addListener(_viewModelListener);
|
||||
}
|
||||
|
||||
void _viewModelListener() {
|
||||
if (viewModel.approvalErrorMessage?.isNotEmpty == true &&
|
||||
viewModel.approvalStatus == false) {
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(SnackBar(content: Text(viewModel.approvalErrorMessage!)));
|
||||
viewModel.clearApprovalErrorMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
viewModel.removeListener(_viewModelListener);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user