Add lodash

More backend for queuing, image retrieval, and completing mapping to JellifyTrack
This commit is contained in:
Violet Caulfield
2024-10-13 09:41:17 -05:00
parent e1eefe3c97
commit e09c71590c
9 changed files with 71 additions and 18 deletions

View File

@@ -16,5 +16,5 @@ export const findPlayNextIndexStart = (playQueue: JellifyTrack[]) => {
* @returns The index to insert songs to add to the user queue
*/
export const findPlayQueueIndexStart = (playQueue: JellifyTrack[]) => {
return playQueue.findIndex(queuedTrack => queuedTrack.QueueType === QueuingType.FromSelection) - 1;
return playQueue.findIndex(queuedTrack => queuedTrack.QueuingType === QueuingType.FromSelection) - 1;
}

View File

@@ -1,13 +1,22 @@
import { useQuery } from "@tanstack/react-query";
import { QueryKeys } from "../../enums/query-keys";
import { getItemsApi } from "@jellyfin/sdk/lib/utils/api/items-api"
import { getImageApi } from "@jellyfin/sdk/lib/utils/api/image-api"
import { useApi } from "../queries";
import { ImageType } from "@jellyfin/sdk/lib/generated-client/models";
export const useImageByItemId = (artistId: string) => useQuery({
queryKey: [QueryKeys.ArtistById, artistId],
queryFn: (({ queryKey }) => {
export const useImageByItemId = (itemId: string, imageType: ImageType) => useQuery({
queryKey: [QueryKeys.ImageByItemId, itemId],
queryFn: (async ({ queryKey }) => {
return getItemsApi(useApi.data!).getItems({ ids: [queryKey[1]]});
let imageFile = await getImageApi(useApi.data!)
.getItemImage({ itemId: queryKey[1], imageType: imageType })
.then((response) => {
// This should be returning a File per Jellyfin's docs
// https://typescript-sdk.jellyfin.org/classes/generated_client.ImageApi.html#getItemImage
return (response.data as File)
});
return await imageFile.text();
})
})