Merge pull request #186 from krawieck/fix/everything-home

This commit is contained in:
Filip Krawczyk 2021-03-25 10:56:42 +01:00 committed by GitHub
commit 460b4f3c8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 23 deletions

View File

@ -277,32 +277,31 @@ class InfiniteHomeList extends HookWidget {
listingType != PostListingType.community, 'only subscribed or all');
final instances = () {
if (listingType == PostListingType.all) {
return accStore.instances;
} else {
if (listingType == PostListingType.subscribed) {
return accStore.loggedInInstances;
}
return accStore.instances;
}();
final futures =
instances.map((instanceHost) => LemmyApiV2(instanceHost).run(GetPosts(
type: listingType,
sort: sort,
page: page,
limit: limit,
auth: accStore.defaultTokenFor(instanceHost)?.raw,
)));
final posts = await Future.wait(futures);
final newPosts = <PostView>[];
final longest = posts.map((e) => e.length).reduce(max);
final futures = [
for (final instanceHost in instances)
LemmyApiV2(instanceHost).run(GetPosts(
type: listingType,
sort: sort,
page: page,
limit: limit,
auth: accStore.defaultTokenFor(instanceHost)?.raw,
))
];
final instancePosts = await Future.wait(futures);
final longest = instancePosts.map((e) => e.length).reduce(max);
for (var i = 0; i < longest; i++) {
for (final el in posts) {
if (el.elementAt(i) != null) {
newPosts.add(el[i]);
}
}
}
final newPosts = [
for (var i = 0; i < longest; i++)
for (final posts in instancePosts)
if (i < posts.length) posts[i]
];
return newPosts;
}

View File

@ -1,5 +1,6 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:package_info/package_info.dart';
@ -17,8 +18,14 @@ class AboutTile extends HookWidget {
@override
Widget build(BuildContext context) {
final packageInfoSnap = useMemoFuture(
() => PackageInfo.fromPlatform()
.then((e) => e, onError: (_, __) => PackageInfo(version: '')),
() async {
try {
return await PackageInfo.fromPlatform();
} on MissingPluginException {
// when we get here it means PackageInfo does not support this platform
return PackageInfo(version: '');
}
},
);
final assetBundle = DefaultAssetBundle.of(context);
final changelogSnap =