| | 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, |
| | retry: 1, |
| | refetchOnWindowFocus: false, |
| | refetchOnReconnect: false, |
| | refetchOnMount: false, |
| | ...config, |
| | }); |
| | }; |
| |
|