Files
omnivore/packages/web/lib/logout.ts
Jackson Harper 68e6533430 Better hooks use
2024-08-21 17:38:30 +08:00

25 lines
697 B
TypeScript

import { useQueryClient } from '@tanstack/react-query'
import { deinitAnalytics } from './analytics'
import { logoutMutation } from './networking/mutations/logoutMutation'
import { useCallback } from 'react'
export const useLogout = () => {
const logout = useCallback(async () => {
const queryClient = useQueryClient()
await logoutMutation()
try {
const result = await logoutMutation()
if (!result) {
throw new Error('Logout failed')
}
deinitAnalytics()
queryClient.clear()
window.location.href = '/login'
} catch {
// TODO: display an error message instead
window.location.href = '/'
}
}, [])
return { logout }
}