mirror of
https://github.com/Jellify-Music/App.git
synced 2026-02-27 06:08:38 -06:00
load libraries plz
This commit is contained in:
@@ -12,6 +12,6 @@ export const usePublicApi = (serverUrl: string) => useQuery({
|
||||
export const useApi = () => useQuery({
|
||||
queryKey: [QueryKeys.Api],
|
||||
queryFn: async () => {
|
||||
return createApi();
|
||||
return createApi;
|
||||
}
|
||||
})
|
||||
@@ -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");
|
||||
|
||||
|
||||
@@ -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)
|
||||
});
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user