привет. Пытаюсь сделать hoc withAuth.js:
import useUser from "data/useUser";
import { useRouter } from 'next/router'
export default async function withAuth({ Component, pageProps }) {
const { loading, loggedIn, user } = await useUser();
const router = useRouter()
if (loading) return null
let newProps = Object.assign(pageProps, { user, loading, loggedIn })
if (loggedIn && user) return <Component {...newProps} />;
router.replace('/')
return null
}
//useUser.js
import useSWR from "swr";
import { getUser } from "requests/userApi";
export default function useUser() {
const { data, mutate, error } = useSWR("api_user", getUser, { revalidateOnFocus: true });
const loading = !data && !error;
const loggedIn = !error && data;
return {
loading,
loggedIn,
user: data,
mutate,
};
}