mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-04-28 10:33:09 +00:00
63 lines
1.6 KiB
Dart
63 lines
1.6 KiB
Dart
import 'package:isar/isar.dart';
|
|
import 'package:mangayomi/main.dart';
|
|
import 'package:mangayomi/models/manga.dart';
|
|
import 'package:mangayomi/models/settings.dart';
|
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
part 'isar_providers.g.dart';
|
|
|
|
@riverpod
|
|
Stream<List<Manga>> getAllMangaStream(
|
|
Ref ref, {
|
|
required int? categoryId,
|
|
required ItemType itemType,
|
|
}) async* {
|
|
yield* categoryId == null
|
|
? isar.mangas
|
|
.filter()
|
|
.idIsNotNull()
|
|
.favoriteEqualTo(true)
|
|
.and()
|
|
.itemTypeEqualTo(itemType)
|
|
.watch(fireImmediately: true)
|
|
: isar.mangas
|
|
.filter()
|
|
.idIsNotNull()
|
|
.favoriteEqualTo(true)
|
|
.categoriesIsNotEmpty()
|
|
.categoriesElementEqualTo(categoryId)
|
|
.and()
|
|
.itemTypeEqualTo(itemType)
|
|
.watch(fireImmediately: true);
|
|
}
|
|
|
|
@riverpod
|
|
Stream<List<Manga>> getAllMangaWithoutCategoriesStream(
|
|
Ref ref, {
|
|
required ItemType itemType,
|
|
}) async* {
|
|
yield* isar.mangas
|
|
.filter()
|
|
.idIsNotNull()
|
|
.favoriteEqualTo(true)
|
|
.categoriesIsEmpty()
|
|
.and()
|
|
.itemTypeEqualTo(itemType)
|
|
.or()
|
|
.idIsNotNull()
|
|
.categoriesIsNull()
|
|
.favoriteEqualTo(true)
|
|
.and()
|
|
.itemTypeEqualTo(itemType)
|
|
.watch(fireImmediately: true);
|
|
}
|
|
|
|
@riverpod
|
|
Stream<List<Settings>> getSettingsStream(Ref ref) async* {
|
|
yield* isar.settings
|
|
.filter()
|
|
.idIsNotNull()
|
|
.and()
|
|
.idEqualTo(227)
|
|
.watch(fireImmediately: true);
|
|
}
|