Browse Source

neon: Fix parallel awaits

pull/146/head
jld3103 2 years ago
parent
commit
00d002e60a
No known key found for this signature in database
GPG Key ID: 9062417B9E8EB7B3
  1. 44
      packages/neon/lib/src/apps/news/blocs/news.dart
  2. 6
      packages/neon/lib/src/apps/news/widgets/articles_view.dart

44
packages/neon/lib/src/apps/news/blocs/news.dart

@ -95,27 +95,29 @@ class NewsBloc extends InteractiveBloc implements NewsBlocEvents, NewsBlocStates
@override @override
Future refresh() async { Future refresh() async {
await requestManager.wrapNextcloud<List<NewsFolder>, NewsListFolders>( await Future.wait([
client.id, requestManager.wrapNextcloud<List<NewsFolder>, NewsListFolders>(
'news-folders', client.id,
folders, 'news-folders',
() async => client.news.listFolders(), folders,
(final response) => response.folders, () async => client.news.listFolders(),
); (final response) => response.folders,
await requestManager.wrapNextcloud<List<NewsFeed>, NewsListFeeds>( ),
client.id, requestManager.wrapNextcloud<List<NewsFeed>, NewsListFeeds>(
'news-feeds', client.id,
feeds, 'news-feeds',
() async => client.news.listFeeds(), feeds,
(final response) { () async => client.news.listFeeds(),
// This is a bit ugly, but IDGAF right now (final response) {
if (response.newestItemId != null) { // This is a bit ugly, but IDGAF right now
_newestItemId = response.newestItemId!; if (response.newestItemId != null) {
} _newestItemId = response.newestItemId!;
return response.feeds; }
}, return response.feeds;
); },
await mainArticlesBloc.reload(); ),
mainArticlesBloc.reload(),
]);
} }
@override @override

6
packages/neon/lib/src/apps/news/widgets/articles_view.dart

@ -42,8 +42,10 @@ class _NewsArticlesViewState extends State<NewsArticlesView> {
isLoading: articles.loading || feeds.loading, isLoading: articles.loading || feeds.loading,
error: articles.error ?? feeds.error, error: articles.error ?? feeds.error,
onRefresh: () async { onRefresh: () async {
await widget.bloc.refresh(); await Future.wait([
await widget.newsBloc.refresh(); widget.bloc.refresh(),
widget.newsBloc.refresh(),
]);
}, },
builder: (final context, final article) => _buildArticle( builder: (final context, final article) => _buildArticle(
context, context,

Loading…
Cancel
Save