You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

67 lines
1.4 KiB

import 'dart:async';
import 'package:itasmob/domain/model/model.dart';
import 'package:itasmob/domain/usecase/get_news_usecase.dart';
import 'package:itasmob/presentation/base/base_viewmodel.dart';
class HomeViewModel extends BaseViewModel with HomeViewModelInput, HomeViewModelOutputs{
GetNewsUseCase _getNewsUseCase;
HomeViewModel(this._getNewsUseCase);
final StreamController _dataStreamController = StreamController<NewsViewObject>.broadcast();
@override
void dispose() {
_dataStreamController.close();
}
@override
Sink get inputState => throw UnimplementedError();
@override
Stream get outputState => throw UnimplementedError();
@override
void start() {
// _getNews();
}
// //private functions
// _getNews() async{
// // ignore: void_checks
// (await _getNewsUseCase.execute(Void)).fold((l) => null, (newsObject) {
// inputHomeData.add(NewsViewObject(newsObject.newsData.data));
// });
// }
@override
Stream<NewsViewObject> get outputHomeData => _dataStreamController.stream.map((data) => data);
@override
Sink get inputHomeData => _dataStreamController.sink;
}
abstract class HomeViewModelInput{
Sink get inputHomeData;
}
abstract class HomeViewModelOutputs{
Stream<NewsViewObject> get outputHomeData;
}
class NewsViewObject{
List<Data> data;
NewsViewObject(this.data);
}