blob: 817b708cb26afe0f8b14e3ad013bebb4e535a1f8 [file] [log] [blame]
import React, { useState, useEffect } from 'react';
import { NavLink, Outlet } from 'react-router-dom';
import { Spin } from 'antd';
import { fetchUserList } from '../api/posts';
import '../style/SuperAdmin.css';
export default function SuperAdmin() {
const SUPERADMIN_USER_ID = 3;
const [loading, setLoading] = useState(true);
const [hasPermission, setHasPermission] = useState(true);
useEffect(() => {
async function check() {
try {
await fetchUserList(SUPERADMIN_USER_ID);
} catch (e) {
if (e.message === 'Unauthorized') {
setHasPermission(false);
} else {
console.error(e);
}
} finally {
setLoading(false);
}
}
check();
}, []);
if (loading) return <Spin spinning tip="加载中…" style={{ width: '100%', marginTop: 100 }} />;
if (!hasPermission) return <div style={{ textAlign: 'center', marginTop: 100 }}>权限不足</div>;
return (
<div className="super-admin-container">
<aside className="super-admin-sidebar">
<h2>超级管理员</h2>
<nav>
<ul>
<li>
<NavLink
to="users"
end
className={({ isActive }) => isActive ? 'active' : ''}
>
用户管理
</NavLink>
</li>
<li>
<NavLink
to="dashboard"
className={({ isActive }) => isActive ? 'active' : ''}
>
平台运行监控
</NavLink>
</li>
</ul>
</nav>
</aside>
<main className="super-admin-content">
<Outlet />
</main>
</div>
);
}