fix: missing image covers for emby

This commit is contained in:
Lei Nelissen
2024-07-26 12:01:21 +02:00
parent 399340127d
commit 01e25a89b1
16 changed files with 73 additions and 33 deletions

View File

@@ -2,7 +2,7 @@ import React, { useCallback, useEffect } from 'react';
import { useRoute, RouteProp, useNavigation } from '@react-navigation/native';
import { useAppDispatch, useTypedSelector } from '@/store';
import TrackListView from './components/TrackListView';
import { fetchAlbum, fetchTracksByAlbum } from '@/store/music/actions';
import { fetchAlbum, fetchSimilarAlbums, fetchTracksByAlbum } from '@/store/music/actions';
import { differenceInDays } from 'date-fns';
import { ALBUM_CACHE_AMOUNT_OF_DAYS } from '@/CONSTANTS';
import { t } from '@/localisation';
@@ -33,6 +33,9 @@ function SimilarAlbum({ id }: { id: string }) {
const handlePress = useCallback(() => {
album && navigation.push('Album', { id, album });
}, [id, album, navigation]);
console.log(getImage(album));
return (
<Pressable
@@ -43,7 +46,7 @@ function SimilarAlbum({ id }: { id: string }) {
})}
onPress={handlePress}
>
<Cover key={id} source={{ uri: getImage(id) }} />
<Cover key={id} source={{ uri: getImage(album) }} />
<Text numberOfLines={1} style={{ fontSize: 13, marginBottom: 2 }}>{album?.Name}</Text>
<Text numberOfLines={1} style={{ opacity: 0.5, fontSize: 13 }}>{album?.Artists.join(', ')}</Text>
</Pressable>
@@ -62,6 +65,7 @@ const Album: React.FC = () => {
const refresh = useCallback(() => {
dispatch(fetchTracksByAlbum(id));
dispatch(fetchAlbum(id));
dispatch(fetchSimilarAlbums(id));
}, [id, dispatch]);
// Auto-fetch the track data periodically
@@ -76,7 +80,7 @@ const Album: React.FC = () => {
trackIds={albumTracks || []}
title={album?.Name}
artist={album?.AlbumArtist}
entityId={id}
entityId={album?.PrimaryImageItemId || album.Id}
refresh={refresh}
playButtonText={t('play-album')}
shuffleButtonText={t('shuffle-album')}

View File

@@ -149,7 +149,7 @@ const Albums: React.FC = () => {
<GeneratedAlbumItem
key={id}
id={id}
imageUrl={getImage(id as string)}
imageUrl={getImage(albums[id])}
name={albums[id]?.Name || ''}
artist={albums[id]?.AlbumArtist || ''}
onPress={selectAlbum}

View File

@@ -68,7 +68,7 @@ const Artist: React.FC = () => {
<GeneratedAlbumItem
key={id}
id={id}
imageUrl={getImage(id as string)}
imageUrl={getImage(albums[id])}
name={albums[id]?.Name || ''}
artist={albums[id]?.AlbumArtist || ''}
onPress={selectAlbum}

View File

@@ -178,7 +178,7 @@ const Artists: React.FC = () => {
key={item.Id}
item={item}
onPress={selectArtist}
imageURL={getImage(item.Id)}
imageURL={getImage(item)}
/>
</View>
);

View File

@@ -70,14 +70,14 @@ const Playlists: React.FC = () => {
<View style={{ flexDirection: 'row', marginLeft: 10, marginRight: 10 }} key={item}>
<GeneratedPlaylistItem
id={item}
imageUrl={getImage(item as string)}
imageUrl={getImage(entities[item])}
name={entities[item]?.Name || ''}
onPress={selectAlbum}
/>
{nextItem &&
<GeneratedPlaylistItem
id={nextItemId}
imageUrl={getImage(nextItemId as string)}
imageUrl={getImage(nextItem)}
name={nextItem.Name || ''}
onPress={selectAlbum}
/>

View File

@@ -95,7 +95,7 @@ const RecentAlbums: React.FC = () => {
<TouchableHandler id={item} onPress={selectAlbum} testID={`select-album-${item}`}>
<AlbumItem>
<ShadowWrapper size="medium">
<AlbumImage source={{ uri: getImage(item) }} style={defaultStyles.imageBackground} />
<AlbumImage source={{ uri: getImage(albums[item]) }} style={defaultStyles.imageBackground} />
</ShadowWrapper>
<Text style={defaultStyles.text} numberOfLines={1}>{albums[item]?.Name}</Text>
<Text style={defaultStyles.textHalfOpacity} numberOfLines={1}>{albums[item]?.AlbumArtist}</Text>