File size: 1,397 Bytes
f0743f4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import { useRecoilValue } from 'recoil';
import { QueryKeys, dataService } from 'librechat-data-provider';
import { useQuery } from '@tanstack/react-query';
import type { QueryObserverResult, UseQueryOptions } from '@tanstack/react-query';
import type t from 'librechat-data-provider';
import store from '~/store';
export const useGetUserQuery = (
config?: UseQueryOptions<t.TUser>,
): QueryObserverResult<t.TUser> => {
const queriesEnabled = useRecoilValue<boolean>(store.queriesEnabled);
return useQuery<t.TUser>([QueryKeys.user], () => dataService.getUser(), {
refetchOnWindowFocus: false,
refetchOnReconnect: false,
refetchOnMount: false,
retry: false,
...config,
enabled: (config?.enabled ?? true) === true && queriesEnabled,
});
};
export interface UseGraphTokenQueryOptions {
scopes?: string;
enabled?: boolean;
}
export const useGraphTokenQuery = (
options: UseGraphTokenQueryOptions = {},
config?: UseQueryOptions<any>,
): QueryObserverResult<any> => {
const { scopes, enabled = false } = options;
return useQuery({
queryKey: [QueryKeys.graphToken, scopes],
queryFn: () => dataService.getGraphApiToken({ scopes }),
enabled,
staleTime: 50 * 60 * 1000, // 50 minutes (tokens expire in 60 minutes)
retry: 1,
refetchOnWindowFocus: false,
refetchOnReconnect: false,
refetchOnMount: false,
...config,
});
};
|