@@ -30,6 +30,7 @@ import { clearAuth, request, type HqProfile } from '../lib/api';
|
||||
import { bindAdminEllipsisTitle } from '../lib/ellipsis-title';
|
||||
import { AUDIT_NOTICE_CHANGED_EVENT, PACKAGE_AUDIT_CHANGED_EVENT } from '../lib/admin-events';
|
||||
import { ListColumnPrefsProvider } from '../lib/ListColumnPrefsContext';
|
||||
import { HqAccountSettingsModal } from '../components/HqAccountSettingsModal';
|
||||
|
||||
const { Header, Sider, Content } = Layout;
|
||||
|
||||
@@ -292,6 +293,7 @@ export default function AdminLayout() {
|
||||
const contentRef = useRef<HTMLDivElement>(null);
|
||||
const [profile, setProfile] = useState<HqProfile | null>(null);
|
||||
const [auditPendingCount, setAuditPendingCount] = useState(0);
|
||||
const [accountSettingsOpen, setAccountSettingsOpen] = useState(false);
|
||||
|
||||
function refreshAuditPendingCount() {
|
||||
Promise.all([
|
||||
@@ -419,11 +421,20 @@ export default function AdminLayout() {
|
||||
<span style={{ color: '#999' }}>
|
||||
{HQ_ROLE_LABELS[profile?.adminRole ?? ''] || profile?.adminRole || ''}
|
||||
</span>
|
||||
<Button type="text" icon={<UserOutlined />} onClick={() => setAccountSettingsOpen(true)}>
|
||||
账号设置
|
||||
</Button>
|
||||
<Button type="text" icon={<LogoutOutlined />} onClick={logout}>
|
||||
退出
|
||||
</Button>
|
||||
</Space>
|
||||
</Header>
|
||||
<HqAccountSettingsModal
|
||||
open={accountSettingsOpen}
|
||||
profile={profile}
|
||||
onClose={() => setAccountSettingsOpen(false)}
|
||||
onUpdated={setProfile}
|
||||
/>
|
||||
<div
|
||||
ref={contentRef}
|
||||
className="admin-layout"
|
||||
|
||||
Reference in New Issue
Block a user