some changes in tenders

This commit is contained in:
amirrezaghabeli
2025-08-23 11:20:41 +03:30
parent 43d81a6614
commit 438a9bdccb
4 changed files with 66 additions and 7 deletions
@@ -61,6 +61,7 @@ class TenderDetailViewModel with ChangeNotifier {
required String submissionMode,
}) async {
_isSubmitApprovalLoading = true;
_errorMessage = null;
notifyListeners();
final result = await _tendersRepository.toggleApprovals(
tenderId: tenderId,
@@ -89,6 +90,7 @@ class TenderDetailViewModel with ChangeNotifier {
required String submissionMode,
}) async {
_isRejectApprovalLoading = true;
_errorMessage = null;
notifyListeners();
final result = await _tendersRepository.toggleApprovals(
tenderId: tenderId,
+10 -6
View File
@@ -25,6 +25,8 @@ class TendersViewModel with ChangeNotifier {
bool _isLoading = false;
bool _isLoadingMore = false;
String? _errorMessage;
String? _feedbackErrorMessage;
String? _tenderApprovalErrorMessage;
TendersResponse? _tendersResponse;
FeedbackData? _feedbackData;
TenderApprovalsData? _tenderApprovalData;
@@ -33,6 +35,8 @@ class TendersViewModel with ChangeNotifier {
bool get isLoading => _isLoading;
bool get isLoadingMore => _isLoadingMore;
String? get errorMessage => _errorMessage;
String? get feedbackErrorMessage => _feedbackErrorMessage;
String? get tenderApprovalErrorMessage => _tenderApprovalErrorMessage;
TendersResponse? get tendersResponse => _tendersResponse;
FeedbackData? get feedbackData => _feedbackData;
TenderApprovalsData? get tenderApprovalData => _tenderApprovalData;
@@ -246,7 +250,7 @@ class TendersViewModel with ChangeNotifier {
required String tenderId,
required String feedbackType,
}) async {
_errorMessage = null;
_feedbackErrorMessage = null;
notifyListeners();
final result = await _tendersRepository.feedback(
@@ -268,11 +272,11 @@ class TendersViewModel with ChangeNotifier {
}
break;
case Error<FeedbackResponse>():
_errorMessage = result.error.toString();
_feedbackErrorMessage = result.error.toString();
break;
}
notifyListeners();
_errorMessage = null;
_feedbackErrorMessage = null;
notifyListeners();
}
@@ -281,7 +285,7 @@ class TendersViewModel with ChangeNotifier {
required String submissionMode,
required String status,
}) async {
_errorMessage = null;
_tenderApprovalErrorMessage = null;
notifyListeners();
final result = await _tendersRepository.toggleApprovals(
tenderId: tenderId,
@@ -314,11 +318,11 @@ class TendersViewModel with ChangeNotifier {
}
break;
case Error<TenderApprovalsToggleResponse>():
_errorMessage = result.error.toString();
_tenderApprovalErrorMessage = result.error.toString();
break;
}
notifyListeners();
_errorMessage = null;
_tenderApprovalErrorMessage = null;
notifyListeners();
}
}
@@ -55,6 +55,14 @@ class _TenderDetailMobilePageState extends State<TenderDetailMobilePage> {
SnackBar(content: Text('tender reject removed sucessfully!')),
);
}
// if (viewModel.errorMessage != null) {
// ScaffoldMessenger.of(context).showSnackBar(
// SnackBar(
// backgroundColor: AppColors.errorColor,
// content: Text(viewModel.errorMessage!),
// ),
// );
// }
}
@override
+46 -1
View File
@@ -8,9 +8,54 @@ import '../../../core/theme/colors.dart';
import '../../shared/tender_app_bar.dart';
import '../widgets/main_tenders_slider.dart';
class MobileTendersPage extends StatelessWidget {
class MobileTendersPage extends StatefulWidget {
const MobileTendersPage({super.key});
@override
State<MobileTendersPage> createState() => _MobileTendersPageState();
}
class _MobileTendersPageState extends State<MobileTendersPage> {
late final TendersViewModel viewModel;
@override
void initState() {
super.initState();
viewModel = context.read<TendersViewModel>();
viewModel.addListener(_viewModelListener);
}
void _viewModelListener() {
if (viewModel.feedbackErrorMessage != null) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
backgroundColor: AppColors.error,
content: Text(viewModel.feedbackErrorMessage!),
),
);
}
// if (viewModel.errorMessage != null) {
// ScaffoldMessenger.of(context).showSnackBar(
// SnackBar(
// content: Text(viewModel.errorMessage!),
// ),
// );
// }
if (viewModel.tenderApprovalErrorMessage != null) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
backgroundColor: AppColors.error,
content: Text(viewModel.tenderApprovalErrorMessage!),
),
);
}
}
@override
void dispose() {
viewModel.removeListener(_viewModelListener);
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(