2020-01-15 18:08:42 +01:00
|
|
|
import { useEffect } from 'react'
|
|
|
|
import Router from 'next/router'
|
|
|
|
|
|
|
|
export const login = ({ email }) => {
|
|
|
|
Router.push('/profile')
|
|
|
|
}
|
|
|
|
|
|
|
|
export const logout = async () => {
|
|
|
|
await fetch('/api/logout')
|
|
|
|
|
|
|
|
window.localStorage.setItem('logout', Date.now())
|
|
|
|
|
|
|
|
Router.push('/login')
|
|
|
|
}
|
|
|
|
|
2020-05-18 21:24:37 +02:00
|
|
|
export const withAuthSync = (Component) => {
|
|
|
|
const Wrapper = (props) => {
|
|
|
|
const syncLogout = (event) => {
|
2020-01-15 18:08:42 +01:00
|
|
|
if (event.key === 'logout') {
|
|
|
|
console.log('logged out from storage!')
|
|
|
|
Router.push('/login')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
window.addEventListener('storage', syncLogout)
|
|
|
|
|
|
|
|
return () => {
|
|
|
|
window.removeEventListener('storage', syncLogout)
|
|
|
|
window.localStorage.removeItem('logout')
|
|
|
|
}
|
|
|
|
}, [])
|
|
|
|
|
|
|
|
return <Component {...props} />
|
|
|
|
}
|
|
|
|
|
|
|
|
return Wrapper
|
|
|
|
}
|