don't pass song all the way down
This commit is contained in:
parent
c947d09615
commit
f81bea339b
6 changed files with 17 additions and 20 deletions
|
@ -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',
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
@ -1173,7 +1173,7 @@ export type StructuredLyric = {
|
|||
|
||||
export type SimilarSongsQuery = {
|
||||
count?: number;
|
||||
song: Song;
|
||||
songId: string;
|
||||
};
|
||||
|
||||
export type SimilarSongsArgs = {
|
||||
|
|
|
@ -4,10 +4,10 @@ import { useCurrentSong } from '/@/renderer/store';
|
|||
export const FullScreenSimilarSongs = () => {
|
||||
const currentSong = useCurrentSong();
|
||||
|
||||
return (
|
||||
return currentSong ? (
|
||||
<SimilarSongsList
|
||||
fullScreen
|
||||
song={currentSong}
|
||||
/>
|
||||
);
|
||||
) : null;
|
||||
};
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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),
|
||||
|
|
Reference in a new issue