Fixed your tender and recommendedTenders in home

This commit is contained in:
llsajjad
2025-08-20 10:35:36 +03:30
parent 4b0dc4cedf
commit 45a2f854a4
5 changed files with 64 additions and 5 deletions
+36 -2
View File
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:tm_app/core/utils/result.dart';
import 'package:tm_app/data/services/model/home/home_request/home_request_model.dart';
import 'package:tm_app/data/services/model/recommended_tenders_response/recommended_tenders_response.dart';
import 'package:tm_app/data/services/model/tender_approvals_response/tender_approvals_response.dart';
import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
import '../data/repositories/home_repository.dart';
@@ -11,14 +12,15 @@ class HomeViewModel with ChangeNotifier {
final HomeRepository _homeRepository;
HomeViewModel({required HomeRepository homeRepository})
: _homeRepository = homeRepository {
: _homeRepository = homeRepository {
getHome(homeRequestModel: HomeRequestModel(id: '1'));
getHomeRecommandTenders(reset: true);
getYourTenders();
}
bool _isLoading = false;
String? _errorMessage;
HomeResponseModel? _homeResponse;
TenderApprovalsResponse? data;
bool get isLoading => _isLoading;
String? get errorMessage => _errorMessage;
@@ -97,4 +99,36 @@ class HomeViewModel with ChangeNotifier {
_isLoadingMore = false;
notifyListeners();
}
Future<void> getYourTenders() async {
_isLoading = true;
notifyListeners();
final result = await _homeRepository.getYourTenders();
switch (result) {
case Ok<TenderApprovalsResponse>():
data = result.value;
_errorMessage = null;
if (data?.data?.isEmpty ?? true) {
await getHomeRecommandTenders(reset: true);
} else {
_tenders.clear();
_tenders.addAll(
data!.data!
.map((e) => e.tender)
.whereType<TenderData>(),
);
}
case Error<TenderApprovalsResponse>():
_errorMessage = result.error.toString();
await getHomeRecommandTenders(reset: true);
break;
}
_isLoading = false;
notifyListeners();
}
}