added logic for detail
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tm_app/core/utils/result.dart';
|
||||
import 'package:tm_app/data/repositories/tender_detail_repository.dart';
|
||||
import 'package:tm_app/data/services/model/tender_detail_response/tender_detail_response_model.dart';
|
||||
|
||||
class TenderDetailViewModel with ChangeNotifier {
|
||||
final TenderDetailRepository _tenderDetailRepository;
|
||||
|
||||
TenderDetailViewModel({required TenderDetailRepository tenderDetailRepository})
|
||||
: _tenderDetailRepository = tenderDetailRepository;
|
||||
|
||||
bool _isLoading = false;
|
||||
String? _errorMessage;
|
||||
TenderDetailResponseModel? _tenderDetail;
|
||||
|
||||
bool get isLoading => _isLoading;
|
||||
String? get errorMessage => _errorMessage;
|
||||
TenderDetailResponseModel? get tenderDetail => _tenderDetail;
|
||||
|
||||
Future<void> getTenderDetail({required String id}) async {
|
||||
_isLoading = true;
|
||||
_errorMessage = null;
|
||||
notifyListeners();
|
||||
|
||||
final result = await _tenderDetailRepository.getTenderDetail(id: id);
|
||||
|
||||
switch (result) {
|
||||
case Ok<TenderDetailResponseModel>():
|
||||
_tenderDetail = result.value;
|
||||
break;
|
||||
case Error<TenderDetailResponseModel>():
|
||||
_errorMessage = result.error.toString();
|
||||
break;
|
||||
}
|
||||
|
||||
_isLoading = false;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user