chore: use auth hook

feat/preact-migrate
Arik Chakma 2 years ago
parent 5cdc443261
commit 00133369af
  1. 19
      src/components/Login/account-nav.tsx
  2. 8
      src/hooks/use-auth.ts

@ -1,26 +1,13 @@
import Cookies from 'js-cookie';
import { useEffect, useState } from 'preact/hooks';
import { TOKEN_COOKIE_NAME } from '../../lib/utils';
import { useAuth } from '../../hooks/use-auth'; import { useAuth } from '../../hooks/use-auth';
export default function AccountNavigation() { export default function AccountNavigation() {
const [isAuthenticated, setIsAuthenticated] = useState(false); const { user, isLoading } = useAuth();
const { user, status } = useAuth();
useEffect(() => { console.log('user', user, isLoading);
const token = Cookies.get(TOKEN_COOKIE_NAME);
if (token) {
setIsAuthenticated(true);
} else {
setIsAuthenticated(false);
}
}, []);
console.log('user', user, status);
return ( return (
<div> <div>
{isAuthenticated ? ( {user ? (
<div>Authenticated: {user?.name}</div> <div>Authenticated: {user?.name}</div>
) : ( ) : (
<div>Not Authenticated</div> <div>Not Authenticated</div>

@ -4,16 +4,14 @@ import Cookies from 'js-cookie';
export const useAuth = () => { export const useAuth = () => {
const [user, setUser] = useState<TokenPayload | null>(null); const [user, setUser] = useState<TokenPayload | null>(null);
const [status, setStatus] = useState<'loading' | 'success' | 'error'>( const [isLoading, setIsLoading] = useState(true);
'loading'
);
useEffect(() => { useEffect(() => {
const token = Cookies.get(TOKEN_COOKIE_NAME); const token = Cookies.get(TOKEN_COOKIE_NAME);
const payload = token ? decodeToken(token) : null; const payload = token ? decodeToken(token) : null;
setUser(payload); setUser(payload);
setStatus('success'); setIsLoading(false);
}, []); }, []);
return { user, status }; return { user, isLoading };
}; };

Loading…
Cancel
Save