import { useQuery, UseQueryOptions } from '@tanstack/react-query'; import { useInject } from '@/lib/di/hooks/useInject'; import { SESSION_SERVICE_TOKEN } from '@/lib/di/tokens'; import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError'; import { ApiError } from '@/lib/api/base/ApiError'; import { SessionViewModel } from '@/lib/view-models/SessionViewModel'; export function useCurrentSession( options?: Omit, 'queryKey' | 'queryFn'> & { initialData?: SessionViewModel | null } ) { const sessionService = useInject(SESSION_SERVICE_TOKEN); const queryResult = useQuery({ queryKey: ['currentSession'], queryFn: () => sessionService.getSession(), initialData: options?.initialData, ...options, }); return enhanceQueryResult(queryResult); }