2023-09-16 00:03:09 +08:00
|
|
|
import dayjs from 'dayjs';
|
2023-10-20 23:12:42 +08:00
|
|
|
import { useUserStore } from '../../store/user';
|
|
|
|
import { useEvent } from '../../hooks/useEvent';
|
|
|
|
import { useNavigate } from 'react-router';
|
|
|
|
import { clearJWT } from '../auth';
|
2023-09-16 00:03:09 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Mock
|
|
|
|
* return local, or fetch remote data
|
|
|
|
*/
|
|
|
|
export function getUserTimezone(): string {
|
|
|
|
return dayjs.tz.guess() ?? 'utc';
|
|
|
|
}
|
2023-10-20 23:12:42 +08:00
|
|
|
|
|
|
|
export function useLogout() {
|
|
|
|
const navigate = useNavigate();
|
|
|
|
|
|
|
|
const logout = useEvent(() => {
|
|
|
|
useUserStore.setState({ info: null });
|
|
|
|
clearJWT();
|
|
|
|
navigate('/login');
|
|
|
|
});
|
|
|
|
|
|
|
|
return logout;
|
|
|
|
}
|