28 lines
760 B
TypeScript
28 lines
760 B
TypeScript
|
import { logout as nostrLogout } from 'nostr-login'
|
||
|
import { clear } from '../utils/localStorage'
|
||
|
import { useDispatch } from 'react-redux'
|
||
|
import { Dispatch } from '../store/store'
|
||
|
import { userLogOutAction } from '../store/actions'
|
||
|
import { LoginMethod } from '../store/auth/types'
|
||
|
import { useAppSelector } from './store'
|
||
|
|
||
|
export const useLogout = () => {
|
||
|
const loginMethod = useAppSelector((state) => state.auth?.loginMethod)
|
||
|
const dispatch: Dispatch = useDispatch()
|
||
|
|
||
|
const logout = () => {
|
||
|
// Log out of the nostr-login
|
||
|
if (loginMethod === LoginMethod.nostrLogin) {
|
||
|
nostrLogout()
|
||
|
}
|
||
|
|
||
|
// Reset redux state with the logout
|
||
|
dispatch(userLogOutAction())
|
||
|
|
||
|
// Clear the local storage states
|
||
|
clear()
|
||
|
}
|
||
|
|
||
|
return logout
|
||
|
}
|