mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-17 19:26:35 -07:00
Init repo
This commit is contained in:
commit
764b6034e3
566 changed files with 212335 additions and 0 deletions
33
lib/providers/items/season_details_provider.dart
Normal file
33
lib/providers/items/season_details_provider.dart
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import 'package:chopper/chopper.dart';
|
||||
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
|
||||
import 'package:fladder/models/items/episode_model.dart';
|
||||
import 'package:fladder/models/items/season_model.dart';
|
||||
import 'package:fladder/providers/api_provider.dart';
|
||||
import 'package:fladder/providers/service_provider.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
final seasonDetailsProvider =
|
||||
StateNotifierProvider.autoDispose.family<SeasonDetailsNotifier, SeasonModel?, String>((ref, id) {
|
||||
return SeasonDetailsNotifier(ref);
|
||||
});
|
||||
|
||||
class SeasonDetailsNotifier extends StateNotifier<SeasonModel?> {
|
||||
SeasonDetailsNotifier(this.ref) : super(null);
|
||||
|
||||
final Ref ref;
|
||||
|
||||
late final JellyService api = ref.read(jellyApiProvider);
|
||||
|
||||
Future<Response?> fetchDetails(String seasonId) async {
|
||||
SeasonModel? newState;
|
||||
|
||||
final season = await api.usersUserIdItemsItemIdGet(itemId: seasonId);
|
||||
if (season.body != null) newState = season.bodyOrThrow as SeasonModel;
|
||||
|
||||
final episodes = await api.showsSeriesIdEpisodesGet(
|
||||
seriesId: newState?.seriesId ?? "", seasonId: seasonId, fields: [ItemFields.overview]);
|
||||
newState = newState?.copyWith(episodes: EpisodeModel.episodesFromDto(episodes.body?.items, ref));
|
||||
state = newState;
|
||||
return season;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue