diff --git a/frontend/src/renderer/hooks/useAuth.js b/frontend/src/renderer/hooks/useAuth.js new file mode 100644 index 0000000..b104cd2 --- /dev/null +++ b/frontend/src/renderer/hooks/useAuth.js @@ -0,0 +1,36 @@ +import { useState, useEffect } from 'react'; + +export const useAuth = () => { + const [user, setUser] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const token = localStorage.getItem('token'); + if (token) { + // Validate token and get user info + fetch('/api/auth/me', { + headers: { Authorization: `Bearer ${token}` } + }) + .then(res => res.json()) + .then(data => setUser(data.user)) + .catch(() => localStorage.removeItem('token')) + .finally(() => setLoading(false)); + } else { + setLoading(false); + } + }, []); + + const login = (token, userInfo) => { + localStorage.setItem('token', token); + setUser(userInfo); + }; + + const logout = () => { + localStorage.removeItem('token'); + setUser(null); + }; + + return { user, loading, login, logout }; +}; + +export default useAuth;