Merge pull request 'some changes in tenders' (#63) from new_fixes into main

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