1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Use react-query for UserViews queries

This commit is contained in:
Bill Thornton 2024-01-05 11:23:33 -05:00
parent f8719b8c5a
commit 92358de0b6
8 changed files with 196 additions and 89 deletions

View file

@ -0,0 +1,59 @@
// Copyright (c) 2021-2024 Tanner Linsley
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
/**
* Backport of the `queryOptions` utility function for react-query v4.
* Upgrading to v5 requires React 18.
*/
import type { QueryKey, UseQueryOptions } from '@tanstack/react-query';
export type UndefinedInitialDataOptions<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
> = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
initialData?: undefined
};
type NonUndefinedGuard<T> = T extends undefined ? never : T;
export type DefinedInitialDataOptions<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
> = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
initialData:
| NonUndefinedGuard<TQueryFnData>
| (() => NonUndefinedGuard<TQueryFnData>)
};
export function queryOptions<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(
options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
queryKey: TQueryKey
};
export function queryOptions<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(
options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
queryKey: TQueryKey
};
export function queryOptions(options: unknown) {
return options;
}