Polish mobile UX downloads and comments

This commit is contained in:
2026-05-23 12:15:20 +03:00
parent 63da741295
commit f9938e393d
24 changed files with 571 additions and 61 deletions
@@ -9,6 +9,16 @@ final favoritesControllerProvider =
FavoritesController.new,
);
final favoriteKeysProvider = FutureProvider<Set<String>>((ref) async {
final result = await ref.watch(favoriteServiceProvider).getFavorites();
return result.fold(
onSuccess: (favorites) => favorites
.map((favorite) => '${favorite.providerId}:${favorite.postId}')
.toSet(),
onError: (_) => <String>{},
);
});
class FavoritesController extends AsyncNotifier<FavoritesState> {
@override
Future<FavoritesState> build() async => FavoritesState(posts: await _load());
@@ -17,6 +27,7 @@ class FavoritesController extends AsyncNotifier<FavoritesState> {
await ref
.read(favoriteServiceProvider)
.removeFavorite(post.id, post.providerId);
ref.invalidate(favoriteKeysProvider);
state = AsyncData(FavoritesState(posts: await _load()));
}
@@ -36,6 +36,7 @@ class FavoritesScreen extends ConsumerWidget {
blurExplicit: settings.blurExplicitContent,
showBadges: settings.showPostBadges,
nsfwEnabled: settings.nsfwEnabled,
favoriteKeys: data.posts.map((post) => post.cacheKey).toSet(),
onOpen: (post) => context.push(
'/post/${post.providerId}/${post.id}',
extra: post,