import React, { useState, useEffect } from 'react'; import { useLocation, Navigate } from "react-router-dom"; import { useModel } from '@/store'; export default (props) => { const { user, getCurrentUser } = useModel('user'); const [userStatus, setUserStatus] = useState(user && user.id ? 1 : 0); useEffect(() => { if (!user || !user.id) { getCurrentUser().then(() => { setUserStatus(1); }).catch(() => { setUserStatus(-1); }); } }, []); return userStatus === 0 ? null : userStatus === -1 ? <Navigate to="/login?back=true" /> : props.children; }