don't pass song all the way down

This commit is contained in:
Kendall Garner 2024-02-19 09:55:37 -08:00
parent c947d09615
commit f81bea339b
No known key found for this signature in database
GPG key ID: 18D2767419676C87
6 changed files with 17 additions and 20 deletions

View file

@ -967,7 +967,7 @@ const getSimilarSongs = async (args: SimilarSongsArgs): Promise<Song[]> => {
const res = await jfApiClient(apiClientProps).getSimilarSongs({
params: {
itemId: query.song.id,
itemId: query.songId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, ParentId',

View file

@ -452,7 +452,7 @@ const getSimilarSongs = async (args: SimilarSongsArgs): Promise<Song[]> => {
const res = await ssApiClient(apiClientProps).getSimilarSongs({
query: {
count: query.count,
id: query.song.id,
id: query.songId,
},
});

View file

@ -1173,7 +1173,7 @@ export type StructuredLyric = {
export type SimilarSongsQuery = {
count?: number;
song: Song;
songId: string;
};
export type SimilarSongsArgs = {

View file

@ -4,10 +4,10 @@ import { useCurrentSong } from '/@/renderer/store';
export const FullScreenSimilarSongs = () => {
const currentSong = useCurrentSong();
return (
return currentSong ? (
<SimilarSongsList
fullScreen
song={currentSong}
/>
);
) : null;
};

View file

@ -16,7 +16,7 @@ import { useHandlePlayQueueAdd } from '/@/renderer/features/player/hooks/use-han
export type SimilarSongsListProps = {
count?: number;
fullScreen?: boolean;
song?: Song;
song: Song;
};
export const SimilarSongsList = ({ count, fullScreen, song }: SimilarSongsListProps) => {
@ -30,8 +30,8 @@ export const SimilarSongsList = ({ count, fullScreen, song }: SimilarSongsListPr
cacheTime: 1000 * 60 * 2,
staleTime: 1000 * 60 * 1,
},
query: { count, song },
serverId: undefined,
query: { count, songId: song.id },
serverId: song?.serverId,
});
const columnDefs = useMemo(
@ -52,12 +52,10 @@ export const SimilarSongsList = ({ count, fullScreen, song }: SimilarSongsListPr
};
return songQuery.isLoading ? (
song ? (
<Spinner
container
size={25}
/>
) : undefined
<Spinner
container
size={25}
/>
) : (
<ErrorBoundary FallbackComponent={ErrorFallback}>
<VirtualGridAutoSizerContainer>

View file

@ -5,19 +5,18 @@ import { getServerById } from '/@/renderer/store';
import { queryKeys } from '/@/renderer/api/query-keys';
import { api } from '/@/renderer/api';
export const useSimilarSongs = (args: QueryHookArgs<Partial<SimilarSongsQuery>>) => {
const { options, query } = args || {};
const server = getServerById(query.song?.serverId);
export const useSimilarSongs = (args: QueryHookArgs<SimilarSongsQuery>) => {
const { options, query, serverId } = args || {};
const server = getServerById(serverId);
return useQuery({
enabled: !!server?.id && !!query.song,
enabled: !!server,
queryFn: ({ signal }) => {
if (!server) throw new Error('Server not found');
if (!query.song) return undefined;
return api.controller.getSimilarSongs({
apiClientProps: { server, signal },
query: { count: query.count ?? 50, song: query.song },
query: { count: query.count ?? 50, songId: query.songId },
});
},
queryKey: queryKeys.albumArtists.detail(server?.id || '', query),