custom palette generator

This commit is contained in:
Dr-Blank 2024-05-11 04:06:25 -04:00
parent 5e152a0baf
commit 3ecdaadc3f
No known key found for this signature in database
GPG key ID: 7452CC63F210A266
15 changed files with 761 additions and 159 deletions

View file

@ -0,0 +1,47 @@
import 'package:flutter/material.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:shelfsdk/audiobookshelf_api.dart';
import 'package:whispering_pages/api/image_provider.dart';
part 'theme_from_cover_provider.g.dart';
@riverpod
FutureOr<ColorScheme> themeFromCover(
ThemeFromCoverRef ref,
ImageProvider<Object> img, {
Brightness brightness = Brightness.dark,
}) {
return ColorScheme.fromImageProvider(
provider: img,
brightness: brightness,
);
}
@riverpod
FutureOr<ColorScheme?> themeOfLibraryItem(
ThemeOfLibraryItemRef ref,
LibraryItem? item, {
Brightness brightness = Brightness.dark,
}) async {
if (item == null) {
return null;
}
final coverImage = await ref.watch(coverImageProvider(item).future);
final val = await ref.watch(
themeFromCoverProvider(MemoryImage(coverImage), brightness: brightness)
.future,
);
return val;
// coverImage.when(
// data: (value) async {
// debugPrint('CoverImage: $value');
// final val = ref.watch(themeFromCoverProvider(MemoryImage(value)));
// debugPrint('ColorScheme generated: $val');
// ref.invalidateSelf();
// return val;
// },
// loading: () => null,
// error: (error, stackTrace) => null,
// );
// return null;
}