File size: 540 Bytes
cce8120 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import { useState, useEffect } from 'react';
import api from '../api';
import { User } from '../types';
export const useAuth = () => {
const [user, setUser] = useState<User | null>(null);
const fetchMe = async () => {
try {
const resp = await api.get<User>('/users/me');
setUser(resp.data);
} catch {
setUser(null);
}
};
useEffect(() => {
fetchMe();
}, []);
const logout = () => {
localStorage.removeItem('access_token');
setUser(null);
};
return { user, logout, fetchMe };
};
|