[Bugfix] Fixed refreshing details screens

This commit is contained in:
PartyDonut 2024-10-06 19:35:57 +02:00
parent 8bda03ee2c
commit aaa6a737cb
4 changed files with 10 additions and 13 deletions

View file

@ -98,7 +98,7 @@ class BookDetailsProviderNotifier extends StateNotifier<BookProviderModel> {
Future<Response?> fetchDetails(BookModel book) async {
state = state.copyWith(
parentModel: () => book,
parentModel: () => state.book ?? book,
);
String bookId = state.book?.id ?? book.id;
@ -108,7 +108,7 @@ class BookDetailsProviderNotifier extends StateNotifier<BookProviderModel> {
final parentModel = parentResponse.bodyOrThrow;
final getViews = await api.usersUserIdViewsGet();
//Hacky solution more false positives so good enough for now.
//Hacky solution for determining parent views
final parentIsView =
getViews.body?.items?.firstWhereOrNull((element) => element.name == parentResponse.body?.name) != null;

View file

@ -18,14 +18,15 @@ class MovieDetails extends _$MovieDetails {
Future<Response?> fetchDetails(ItemBaseModel item) async {
try {
if (item is MovieModel && state == null) {
state = item;
if (item is MovieModel) {
state = state ?? item;
}
MovieModel? newState;
final response = await api.usersUserIdItemsItemIdGet(itemId: item.id);
if (response.body == null) return null;
state = response.bodyOrThrow as MovieModel;
newState = (response.bodyOrThrow as MovieModel).copyWith(related: state?.related);
final related = await ref.read(relatedUtilityProvider).relatedContent(item.id);
state = state?.copyWith(related: related.body);
state = newState.copyWith(related: related.body);
return null;
} catch (e) {
_tryToCreateOfflineState(item);

View file

@ -6,7 +6,7 @@ part of 'movies_details_provider.dart';
// RiverpodGenerator
// **************************************************************************
String _$movieDetailsHash() => r'e5ab0af7fab9eb7a8ea50a873e8875bb572bd240';
String _$movieDetailsHash() => r'da07dcdb6e1955119df64f8a6a5634216435982c';
/// Copied from Dart SDK
class _SystemHash {

View file

@ -27,16 +27,12 @@ class SeriesDetailViewNotifier extends StateNotifier<SeriesModel?> {
Future<Response?> fetchDetails(ItemBaseModel seriesModel) async {
try {
if (seriesModel is SeriesModel) {
state = seriesModel;
state = state ?? seriesModel;
}
SeriesModel? newState;
final response = await api.usersUserIdItemsItemIdGet(itemId: seriesModel.id);
if (response.body == null) {
state = seriesModel as SeriesModel;
return null;
}
if (response.body == null) return null;
newState = response.bodyOrThrow as SeriesModel;
final seasons = await api.showsSeriesIdSeasonsGet(seriesId: seriesModel.id);
newState = newState.copyWith(seasons: SeasonModel.seasonsFromDto(seasons.body?.items, ref));