Updated component library build.

This commit is contained in:
Mike Cao 2023-08-23 12:50:18 -07:00
parent 280f6a9113
commit 89db57a380
14 changed files with 146 additions and 99 deletions

View file

@ -0,0 +1,30 @@
import { useEffect } from 'react';
import { useRouter } from 'next/router';
import useApi from 'components/hooks/useApi';
import useUser from 'components/hooks/useUser';
export function useRequireLogin(handler: (data?: object) => void) {
const router = useRouter();
const { get } = useApi();
const { user, setUser } = useUser();
useEffect(() => {
async function loadUser() {
try {
const data = await get('/auth/verify');
setUser(typeof handler === 'function' ? handler(data) : (data as any)?.user);
} catch {
await router.push('/login');
}
}
if (!user) {
loadUser();
}
}, [user]);
return { user };
}
export default useRequireLogin;