load libraries plz

This commit is contained in:
Violet Caulfield
2024-10-21 19:09:18 -05:00
parent 6367a62253
commit a577fe1a39
4 changed files with 16 additions and 6 deletions

View File

@@ -12,6 +12,6 @@ export const usePublicApi = (serverUrl: string) => useQuery({
export const useApi = () => useQuery({
queryKey: [QueryKeys.Api],
queryFn: async () => {
return createApi();
return createApi;
}
})

View File

@@ -1,9 +1,10 @@
import { Api } from "@jellyfin/sdk";
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
import { getItemsApi } from "@jellyfin/sdk/lib/utils/api/items-api";
import _ from "lodash";
export const fetchMusicLibraries = (api: Api) => new Promise( async (resolve) => {
export const fetchMusicLibraries : (api: Api) => Promise<BaseItemDto[]> = (api: Api) => new Promise( async (resolve) => {
console.log("Fetching music libraries from Jellyfin");

View File

@@ -4,6 +4,6 @@ import { fetchMusicLibraries } from "./functions/libraries";
import { Api } from "@jellyfin/sdk";
export const useLibraries = (api: Api) => useQuery({
queryKey: [QueryKeys.Libraries],
queryFn: () => fetchMusicLibraries(api)
queryKey: [QueryKeys.Libraries, api],
queryFn: ({ queryKey }) => fetchMusicLibraries(queryKey[1] as Api)
});

View File

@@ -1,5 +1,5 @@
import { useMutation } from "@tanstack/react-query";
import React, { useState } from "react";
import React, { useEffect, useState } from "react";
import { useApiClientContext } from "../../jellyfin-api-provider";
import { Select, View } from "tamagui";
import { JellifyLibrary } from "../../../types/JellifyLibrary";
@@ -8,16 +8,25 @@ import { mutateServerCredentials } from "../../../api/mutators/functions/storage
import { useAuthenticationContext } from "../provider";
import { Heading } from "../../helpers/text";
import Button from "../../helpers/button";
import _ from "lodash";
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models/base-item-dto";
export default function ServerLibrary(): React.JSX.Element {
const [musicLibrary, setMusicLibrary] = useState<JellifyLibrary | undefined>(undefined);
const [libraries, setLibraries] = useState<BaseItemDto[] | undefined>(undefined);
const { setUsername, libraryName, setLibraryName, libraryId, setLibraryId } = useAuthenticationContext();
const { apiClient, server, setApiClient, setUsername: setClientUsername } = useApiClientContext();
const { data: musicLibraries, isPending: musicLibrariesPending } = useLibraries(apiClient!);
useEffect(() => {
if (!_.isUndefined(apiClient))
setLibraries(useLibraries(apiClient).data);
}, [
apiClient
])
const clearUser = useMutation({