import { useAuth } from '@/components/auth/AuthContext'; import { useInject } from '@/lib/di/hooks/useInject'; import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError'; import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens'; import { ApiError } from '@/lib/gateways/api/base/ApiError'; import type { DriverDTO } from '@/lib/types/generated/DriverDTO'; import { useQuery, UseQueryOptions } from '@tanstack/react-query'; export function useCurrentDriver( options?: Omit, 'queryKey' | 'queryFn'> ) { const driverService = useInject(DRIVER_SERVICE_TOKEN); const { session } = useAuth(); const queryResult = useQuery({ queryKey: ['currentDriver'], queryFn: async () => { const result = await driverService.getCurrentDriver(); if (result.isErr()) { throw result.getError(); } return result.unwrap(); }, enabled: !!session, retry: false, refetchOnWindowFocus: false, ...options, }); return enhanceQueryResult(queryResult); }