Files
HiddingselAppOriginal/lib/appflow/view/menu_pages/article_list.dart
2026-02-13 15:53:22 +01:00

31 lines
1.6 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:hiddingsel_app/appflow/controller/articles.dart';
import 'package:hiddingsel_app/appflow/model/represented_organisations.dart';
import 'package:hiddingsel_app/appflow/view/navigation_drawer.dart';
import '../../model/articles.dart';
import '../further_pages/article.dart';
class ArticleListView extends StatelessWidget with NavigationDrawerItem{
final String title;
final Stream<List<ArticleModel>> _articleStream;
final Function(PreferredSizeWidget appBar, Widget body)? _onChange;
ArticleListView(this._onChange) : title = 'News', _articleStream = ArticleController.getArticleListStream();
ArticleListView.favorites(this._onChange) : title = 'Favoriten', _articleStream = ArticleController.getFavoriteArticleListStream();
ArticleListView.search(String searchWord, this._onChange) : title = 'Suche', _articleStream = ArticleController.getSearchResultListStream(searchWord);
ArticleListView.organisation(RepresentedOrganisationModel organisation, this._onChange, {scrollController}) : title = 'Organisation', _articleStream = ArticleController.getOrganisationArticleListStream(organisation);
@override
Widget build(BuildContext context) => StreamBuilder(
initialData: List<ArticleModel>.empty(),
stream: _articleStream,
builder: (context, AsyncSnapshot<List<ArticleModel>> snapshot) => buildArticleListView(context, snapshot.data??[])
);
Widget buildArticleListView(BuildContext context, List<ArticleModel> list) => ListView.builder(
itemCount: list.length,
itemBuilder: (context, index) => ArticleThumbnailView(list[index], _onChange),
);
}