mangayomi-mirror/lib/views/library/providers/library_state_provider.dart
kodjodevf 054fa0642c +
2023-04-12 17:51:29 +01:00

60 lines
1.7 KiB
Dart

import 'package:mangayomi/providers/hive_provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'library_state_provider.g.dart';
@riverpod
class LibraryReverseListState extends _$LibraryReverseListState {
@override
bool build() {
return ref
.watch(hiveBoxSettings)
.get('libraryReverseList', defaultValue: false)!;
}
void setLibraryReverseList(bool value) {
state = value;
ref.watch(hiveBoxSettings).put('libraryReverseList', value);
}
}
@riverpod
class LibraryDisplayTypeState extends _$LibraryDisplayTypeState {
@override
String build() {
return ref
.watch(hiveBoxSettings)
.get('displayType', defaultValue: DisplayType.coverOnlyGrid.name)!;
}
DisplayType getLibraryDisplayTypeValue(String value) {
return value == DisplayType.compactGrid.name
? DisplayType.compactGrid
: value == DisplayType.list.name
? DisplayType.list
: value == DisplayType.comfortableGrid.name
? DisplayType.comfortableGrid
: DisplayType.coverOnlyGrid;
}
String getLibraryDisplayTypeName(String displayType) {
return displayType == DisplayType.compactGrid.name
? 'Compact grid'
: displayType == DisplayType.list.name
? 'List'
: displayType == DisplayType.comfortableGrid.name
? 'Comfortable grid'
: 'Cover-only grid';
}
void setLibraryDisplayType(DisplayType displayType) {
state = displayType.name;
ref.watch(hiveBoxSettings).put('displayType', displayType.name);
}
}
enum DisplayType {
compactGrid,
comfortableGrid,
coverOnlyGrid,
list,
}