// Post Categories Notifier import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:island/models/post_category.dart'; import 'package:island/models/post_tag.dart'; import 'package:island/pods/network.dart'; import 'package:island/pods/paging.dart'; final postCategoriesProvider = AsyncNotifierProvider.autoDispose< PostCategoriesNotifier, List >(PostCategoriesNotifier.new); class PostCategoriesNotifier extends AsyncNotifier> with AsyncPaginationController { @override Future> fetch() async { final client = ref.read(apiClientProvider); final response = await client.get( '/sphere/posts/categories', queryParameters: {'offset': fetchedCount, 'take': 20, 'order': 'usage'}, ); totalCount = int.parse(response.headers.value('X-Total') ?? '0'); final data = response.data as List; return data.map((json) => SnPostCategory.fromJson(json)).toList(); } } // Post Tags Notifier final postTagsProvider = AsyncNotifierProvider.autoDispose>( PostTagsNotifier.new, ); class PostTagsNotifier extends AsyncNotifier> with AsyncPaginationController { @override Future> fetch() async { final client = ref.read(apiClientProvider); final response = await client.get( '/sphere/posts/tags', queryParameters: {'offset': fetchedCount, 'take': 20, 'order': 'usage'}, ); totalCount = int.parse(response.headers.value('X-Total') ?? '0'); final data = response.data as List; return data.map((json) => SnPostTag.fromJson(json)).toList(); } }