2024-08-21 08:58:29 +00:00
|
|
|
import { useQueryClient } from '@tanstack/react-query'
|
2023-09-13 04:52:34 +00:00
|
|
|
import { logoutMutation } from './networking/mutations/logoutMutation'
|
2024-08-21 09:38:30 +00:00
|
|
|
import { useCallback } from 'react'
|
2024-08-21 10:31:51 +00:00
|
|
|
import { useRouter } from 'next/router'
|
2023-09-13 04:52:34 +00:00
|
|
|
|
2024-08-21 09:38:30 +00:00
|
|
|
export const useLogout = () => {
|
2024-08-21 10:31:51 +00:00
|
|
|
const router = useRouter()
|
2024-08-21 09:49:19 +00:00
|
|
|
const queryClient = useQueryClient()
|
2024-08-21 09:38:30 +00:00
|
|
|
const logout = useCallback(async () => {
|
|
|
|
|
await logoutMutation()
|
|
|
|
|
try {
|
|
|
|
|
const result = await logoutMutation()
|
|
|
|
|
if (!result) {
|
|
|
|
|
throw new Error('Logout failed')
|
|
|
|
|
}
|
|
|
|
|
queryClient.clear()
|
2024-08-21 10:31:51 +00:00
|
|
|
console.log('cleared the query client')
|
|
|
|
|
router.push('/login')
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.log('error on logout: ', err)
|
|
|
|
|
router.push('/')
|
2023-09-13 04:52:34 +00:00
|
|
|
}
|
2024-08-21 09:38:30 +00:00
|
|
|
}, [])
|
|
|
|
|
return { logout }
|
2023-09-13 04:52:34 +00:00
|
|
|
}
|