@@ -2,18 +2,14 @@ import 'package:collection/collection.dart';
22import 'package:flutter_hooks/flutter_hooks.dart' ;
33import 'package:flutter_zustand/flutter_zustand.dart' ;
44import 'package:iris/models/file.dart' ;
5- import 'package:iris/models/player.dart' ;
65import 'package:iris/models/storages/local.dart' ;
76import 'package:iris/models/storages/storage.dart' ;
87import 'package:iris/store/use_play_queue_store.dart' ;
98import 'package:iris/store/use_storage_store.dart' ;
109import 'package:iris/utils/files_filter.dart' ;
11- import 'package:provider/provider.dart' ;
1210
1311FileItem ? useCover () {
1412 final context = useContext ();
15- final isPlaying =
16- context.select <MediaPlayer , bool >((player) => player.isPlaying);
1713
1814 final playQueue =
1915 usePlayQueueStore ().select (context, (state) => state.playQueue);
@@ -24,10 +20,10 @@ FileItem? useCover() {
2420 () => playQueue.indexWhere ((element) => element.index == currentIndex),
2521 [playQueue, currentIndex]);
2622
27- final PlayQueueItem ? currentPlay = useMemoized (
23+ final FileItem ? file = useMemoized (
2824 () => playQueue.isEmpty || currentPlayIndex < 0
2925 ? null
30- : playQueue[currentPlayIndex],
26+ : playQueue[currentPlayIndex].file ,
3127 [playQueue, currentPlayIndex]);
3228
3329 final localStoragesFuture =
@@ -37,28 +33,27 @@ FileItem? useCover() {
3733 final storages = useStorageStore ().select (context, (state) => state.storages);
3834
3935 final Storage ? storage = useMemoized (
40- () => currentPlay ? . file == null
36+ () => file == null
4137 ? null
42- : [...localStorages, ...storages]. firstWhereOrNull (
43- ( storage) => storage.id == currentPlay ? . file.storageId),
44- [currentPlay ? . file, localStorages, storages]);
38+ : [...localStorages, ...storages]
39+ . firstWhereOrNull (( storage) => storage.id == file.storageId),
40+ [file, localStorages, storages]);
4541
4642 final cover = useState <FileItem ?>(null );
4743
4844 useEffect (() {
4945 () async {
50- final dir = currentPlay? .file == null || currentPlay! .file.path.isEmpty
51- ? < String > []
52- : ([...currentPlay.file.path]..removeLast ());
53-
54- if (storage == null || currentPlay? .file.type != ContentType .audio) {
46+ if (storage == null || file == null || file.type != ContentType .audio) {
5547 cover.value = null ;
5648 return ;
5749 }
5850
51+ final dir =
52+ file.path.isEmpty ? < String > [] : ([...file.path]..removeLast ());
53+
5954 final files = await storage.getFiles (dir);
6055
61- final images = filesFilter (files, [ContentType .image]);
56+ final images = filesFilter (files, types : [ContentType .image]);
6257
6358 cover.value = images.firstWhereOrNull ((image) =>
6459 image.name.split ('.' ).first.toLowerCase () == 'cover' ) ??
@@ -68,7 +63,7 @@ FileItem? useCover() {
6863 images.firstOrNull;
6964 }();
7065 return null ;
71- }, [storage, isPlaying ]);
66+ }, [storage, file ]);
7267
7368 return cover.value;
7469}
0 commit comments