Skip to content

Commit

Permalink
Add abort signal to hooks
Browse files Browse the repository at this point in the history
  • Loading branch information
viown committed Dec 20, 2024
1 parent b3ca6cb commit 64563a7
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 21 deletions.
7 changes: 4 additions & 3 deletions src/apps/dashboard/features/users/api/useAuthProviders.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ import { Api } from '@jellyfin/sdk';
import { useQuery } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import { getSessionApi } from '@jellyfin/sdk/lib/utils/api/session-api';
import type { AxiosRequestConfig } from 'axios';

const fetchAuthProviders = async (api?: Api) => {
const fetchAuthProviders = async (api?: Api, options?: AxiosRequestConfig) => {
if (!api) {
console.error('[useAuthProvider] No Api instance available');
return;
}

const response = await getSessionApi(api).getAuthProviders();
const response = await getSessionApi(api).getAuthProviders(options);

return response.data;
};
Expand All @@ -19,7 +20,7 @@ export const useAuthProviders = () => {

return useQuery({
queryKey: [ 'AuthProviders' ],
queryFn: () => fetchAuthProviders(api),
queryFn: ({ signal }) => fetchAuthProviders(api, { signal }),
enabled: !!api
});
};
7 changes: 4 additions & 3 deletions src/apps/dashboard/features/users/api/useChannels.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ import { useQuery } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import { getChannelsApi } from '@jellyfin/sdk/lib/utils/api/channels-api';
import { ChannelsApiGetChannelsRequest } from '@jellyfin/sdk/lib/generated-client/api/channels-api';
import type { AxiosRequestConfig } from 'axios';

const fetchChannels = async (api?: Api, params?: ChannelsApiGetChannelsRequest) => {
const fetchChannels = async (api?: Api, params?: ChannelsApiGetChannelsRequest, options?: AxiosRequestConfig) => {
if (!api) {
console.error('[useAuthProvider] No Api instance available');
return;
}

const response = await getChannelsApi(api).getChannels(params);
const response = await getChannelsApi(api).getChannels(params, options);

return response.data;
};
Expand All @@ -20,7 +21,7 @@ export const useChannels = (params?: ChannelsApiGetChannelsRequest) => {

return useQuery({
queryKey: [ 'Channels' ],
queryFn: () => fetchChannels(api, params),
queryFn: ({ signal }) => fetchChannels(api, params, { signal }),
enabled: !!api
});
};
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ import { LibraryApiGetMediaFoldersRequest } from '@jellyfin/sdk/lib/generated-cl
import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api';
import { useQuery } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import type { AxiosRequestConfig } from 'axios';

const fetchLibraryMediaFolders = async (api?: Api, params?: LibraryApiGetMediaFoldersRequest) => {
const fetchLibraryMediaFolders = async (api?: Api, params?: LibraryApiGetMediaFoldersRequest, options?: AxiosRequestConfig) => {
if (!api) {
console.error('[useLibraryMediaFolders] no Api instance available');
return;
}

const response = await getLibraryApi(api).getMediaFolders(params);
const response = await getLibraryApi(api).getMediaFolders(params, options);

return response.data;
};
Expand All @@ -20,7 +21,7 @@ export const useLibraryMediaFolders = (params?: LibraryApiGetMediaFoldersRequest

return useQuery({
queryKey: ['LibraryMediaFolders'],
queryFn: () => fetchLibraryMediaFolders(api, params),
queryFn: ({ signal }) => fetchLibraryMediaFolders(api, params, { signal }),
enabled: !!api
});
};
7 changes: 4 additions & 3 deletions src/apps/dashboard/features/users/api/useNetworkConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ import { useQuery } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api';
import { NetworkConfiguration } from '@jellyfin/sdk/lib/generated-client';
import type { AxiosRequestConfig } from 'axios';

const fetchNetworkConfig = async (api?: Api) => {
const fetchNetworkConfig = async (api?: Api, options?: AxiosRequestConfig) => {
if (!api) {
console.error('[useAuthProvider] No Api instance available');
return;
}

const response = await getConfigurationApi(api).getNamedConfiguration({ key: 'network' });
const response = await getConfigurationApi(api).getNamedConfiguration({ key: 'network' }, options);

return response.data as NetworkConfiguration;
};
Expand All @@ -20,7 +21,7 @@ export const useNetworkConfig = () => {

return useQuery({
queryKey: [ 'NetConfig' ],
queryFn: () => fetchNetworkConfig(api),
queryFn: ({ signal }) => fetchNetworkConfig(api, { signal }),
enabled: !!api
});
};
7 changes: 4 additions & 3 deletions src/apps/dashboard/features/users/api/useParentalRatings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ import { Api } from '@jellyfin/sdk';
import { getLocalizationApi } from '@jellyfin/sdk/lib/utils/api/localization-api';
import { useQuery } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import type { AxiosRequestConfig } from 'axios';

const fetchParentalRatings = async (api?: Api) => {
const fetchParentalRatings = async (api?: Api, options?: AxiosRequestConfig) => {
if (!api) {
console.error('[useLibraryMediaFolders] no Api instance available');
return;
}

const response = await getLocalizationApi(api).getParentalRatings();
const response = await getLocalizationApi(api).getParentalRatings(options);

return response.data;
};
Expand All @@ -19,7 +20,7 @@ export const useParentalRatings = () => {

return useQuery({
queryKey: ['ParentalRatings'],
queryFn: () => fetchParentalRatings(api),
queryFn: ({ signal }) => fetchParentalRatings(api, { signal }),
enabled: !!api
});
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ import { Api } from '@jellyfin/sdk';
import { useQuery } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import { getSessionApi } from '@jellyfin/sdk/lib/utils/api/session-api';
import type { AxiosRequestConfig } from 'axios';

const fetchPasswordResetProviders = async (api?: Api) => {
const fetchPasswordResetProviders = async (api?: Api, options?: AxiosRequestConfig) => {
if (!api) {
console.error('[useAuthProvider] No Api instance available');
return;
}

const response = await getSessionApi(api).getPasswordResetProviders();
const response = await getSessionApi(api).getPasswordResetProviders(options);

return response.data;
};
Expand All @@ -19,7 +20,7 @@ export const usePasswordResetProviders = () => {

return useQuery({
queryKey: [ 'PasswordResetProviders' ],
queryFn: () => fetchPasswordResetProviders(api),
queryFn: ({ signal }) => fetchPasswordResetProviders(api, { signal }),
enabled: !!api
});
};
7 changes: 4 additions & 3 deletions src/apps/dashboard/features/users/api/useUser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ import { UserApiGetUserByIdRequest } from '@jellyfin/sdk/lib/generated-client';
import { getUserApi } from '@jellyfin/sdk/lib/utils/api/user-api';
import { useQuery } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import type { AxiosRequestConfig } from 'axios';

export const QUERY_KEY = 'User';

const fetchUser = async (api?: Api, params?: UserApiGetUserByIdRequest) => {
const fetchUser = async (api?: Api, params?: UserApiGetUserByIdRequest, options?: AxiosRequestConfig) => {
if (!api) {
console.error('[useUser] No Api instance available');
return;
Expand All @@ -17,7 +18,7 @@ const fetchUser = async (api?: Api, params?: UserApiGetUserByIdRequest) => {
return;
}

const response = await getUserApi(api).getUserById(params);
const response = await getUserApi(api).getUserById(params, options);

return response.data;
};
Expand All @@ -27,7 +28,7 @@ export const useUser = (params?: UserApiGetUserByIdRequest) => {

return useQuery({
queryKey: [ QUERY_KEY, params?.userId ],
queryFn: () => fetchUser(api, params),
queryFn: ({ signal }) => fetchUser(api, params, { signal }),
enabled: !!api && !!params
});
};

0 comments on commit 64563a7

Please sign in to comment.