mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-07 21:48:14 -08:00
feature: Added option to save and set default filters for libraries (#107)
Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
parent
d3e34d57e0
commit
691293648b
23 changed files with 1353 additions and 62 deletions
|
|
@ -1,12 +1,15 @@
|
|||
import 'package:chopper/chopper.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'package:fladder/jellyfin/enum_models.dart';
|
||||
import 'package:fladder/models/account_model.dart';
|
||||
import 'package:fladder/models/items/item_shared_models.dart';
|
||||
import 'package:fladder/models/library_filters_model.dart';
|
||||
import 'package:fladder/providers/api_provider.dart';
|
||||
import 'package:fladder/providers/service_provider.dart';
|
||||
import 'package:fladder/providers/shared_provider.dart';
|
||||
import 'package:fladder/providers/sync_provider.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'user_provider.g.dart';
|
||||
|
||||
|
|
@ -142,4 +145,30 @@ class User extends _$User {
|
|||
AccountModel? build() {
|
||||
return null;
|
||||
}
|
||||
|
||||
void removeFilter(LibraryFiltersModel model) {
|
||||
final currentList = ((state?.savedFilters ?? [])).toList(growable: true);
|
||||
currentList.remove(model);
|
||||
state = state?.copyWith(savedFilters: currentList);
|
||||
}
|
||||
|
||||
void saveFilter(LibraryFiltersModel model) {
|
||||
final currentList = (state?.savedFilters ?? []).toList(growable: true);
|
||||
if (currentList.firstWhereOrNull((value) => value.id == model.id) != null) {
|
||||
state = state?.copyWith(
|
||||
savedFilters: currentList.map(
|
||||
(e) {
|
||||
if (e.id == model.id) {
|
||||
return model;
|
||||
} else {
|
||||
return e.copyWith(isFavourite: model.isFavourite && model.containsSameIds(e.ids) ? false : e.isFavourite);
|
||||
}
|
||||
},
|
||||
).toList());
|
||||
} else {
|
||||
state = state?.copyWith(savedFilters: [model, ...currentList]);
|
||||
}
|
||||
}
|
||||
|
||||
void deleteAllFilters() => state = state?.copyWith(savedFilters: []);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue