ai-hackaton-frontend/hooks/useSession.ts
2025-08-31 00:27:33 +05:00

42 lines
1.0 KiB
TypeScript

import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
import { sessionService } from '@/services/session.service'
export const useCurrentSession = () => {
return useQuery({
queryKey: ['session', 'current'],
queryFn: () => sessionService.getCurrentSession(),
staleTime: 5 * 60 * 1000, // 5 minutes
retry: 2,
})
}
export const useRefreshSession = () => {
const queryClient = useQueryClient()
return useMutation({
mutationFn: () => sessionService.refreshSession(),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['session'] })
},
})
}
export const useLogout = () => {
const queryClient = useQueryClient()
return useMutation({
mutationFn: () => sessionService.logout(),
onSuccess: () => {
queryClient.clear()
},
})
}
export const useSessionHealth = () => {
return useQuery({
queryKey: ['session', 'health'],
queryFn: () => sessionService.healthCheck(),
staleTime: 2 * 60 * 1000, // 2 minutes
retry: 2,
})
}