provider lifecycle hardenings
This commit is contained in:
@@ -28,7 +28,8 @@ part 'fetch_articles.g.dart';
|
||||
class FetchArticlesController extends _$FetchArticlesController {
|
||||
Future<void> fetchAllArticles() async {
|
||||
state = const AsyncLoading();
|
||||
state = await AsyncValue.guard(() async {
|
||||
|
||||
final result = await AsyncValue.guard(() async {
|
||||
final feedRepository = ref.read(feedRepositoryProvider.notifier);
|
||||
|
||||
final feeds = await feedRepository.getAllFeeds();
|
||||
@@ -52,11 +53,18 @@ class FetchArticlesController extends _$FetchArticlesController {
|
||||
}).toList(),
|
||||
);
|
||||
});
|
||||
|
||||
if (!ref.mounted) {
|
||||
return;
|
||||
}
|
||||
|
||||
state = result;
|
||||
}
|
||||
|
||||
Future<void> fetchFeedArticles(Uri uri) async {
|
||||
state = const AsyncLoading();
|
||||
state = await AsyncValue.guard(() async {
|
||||
|
||||
final result = await AsyncValue.guard(() async {
|
||||
final feedRepository = ref.read(feedRepositoryProvider.notifier);
|
||||
|
||||
final result = await ref.read(feedReaderProvider.notifier).parseFeed(uri);
|
||||
@@ -64,6 +72,12 @@ class FetchArticlesController extends _$FetchArticlesController {
|
||||
await feedRepository.upsertArticles(result.articleData);
|
||||
await feedRepository.touchFeedFetched(uri);
|
||||
});
|
||||
|
||||
if (!ref.mounted) {
|
||||
return;
|
||||
}
|
||||
|
||||
state = result;
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -42,7 +42,7 @@ final class FetchArticlesControllerProvider
|
||||
}
|
||||
|
||||
String _$fetchArticlesControllerHash() =>
|
||||
r'5dcb9de003bc911d365c6a8ef107bf1bf446755b';
|
||||
r'b8a1813f3497af731f20a48693b700eb3d9aeceb';
|
||||
|
||||
abstract class _$FetchArticlesController extends $Notifier<AsyncValue<void>> {
|
||||
AsyncValue<void> build();
|
||||
|
||||
Reference in New Issue
Block a user