|
|
- 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);
- }
|