From f2050fc29138a2fdf5d90376ed8db6a4ddb58fc5 Mon Sep 17 00:00:00 2001 From: LeonspaceX Date: Sat, 6 Dec 2025 11:54:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A6=96=E9=A1=B5=E5=AF=BC?= =?UTF-8?q?=E8=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AdminDashboard.tsx | 5 ++++- src/components/StatusDisplay.tsx | 8 ++++---- src/layouts/components/Header.tsx | 14 +++++++++++++- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/components/AdminDashboard.tsx b/src/components/AdminDashboard.tsx index dbfa02f..34cdf95 100644 --- a/src/components/AdminDashboard.tsx +++ b/src/components/AdminDashboard.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { useNavigate } from 'react-router-dom'; import { makeStyles, Button, @@ -76,6 +77,7 @@ const useStyles = makeStyles({ display: 'flex', alignItems: 'center', gap: tokens.spacingHorizontalS, + cursor: 'pointer', }, icon: { height: '32px', @@ -170,6 +172,7 @@ const AdminDashboard: React.FC = ({ isDarkMode = false, onToggleTheme }) => { + const navigate = useNavigate(); const styles = useStyles(); const [activeTab, setActiveTab] = React.useState('systemSettings'); const [postReviewSubTab, setPostReviewSubTab] = React.useState('pending'); @@ -665,7 +668,7 @@ const AdminDashboard: React.FC = ({
{/* 顶栏 - 采用 MainLayout 的 Header 样式 */}
- + navigate('/')} title="返回首页"> logo {`${SITE_TITLE} | 管理面板`} diff --git a/src/components/StatusDisplay.tsx b/src/components/StatusDisplay.tsx index 0616379..23b0fe3 100644 --- a/src/components/StatusDisplay.tsx +++ b/src/components/StatusDisplay.tsx @@ -53,10 +53,10 @@ const StatusDisplay: React.FC = () => { const fetchStatus = async () => { try { // Check API online status - const teapotResponse = await fetch(`${API_CONFIG.BASE_URL}/test`); - if (teapotResponse.status === 200) { + const TestAPIResponse = await fetch(`${API_CONFIG.BASE_URL}/test`); + if (TestAPIResponse.status === 200) { setIsApiOnline(true); - } else if (teapotResponse.status === 503) { + } else if (TestAPIResponse.status === 503) { setIsApiOnline(false); if (location.pathname !== '/init') { navigate('/init'); @@ -88,7 +88,7 @@ const StatusDisplay: React.FC = () => { }; fetchStatus(); - const interval = setInterval(fetchStatus, 30000); // Refresh every 30 seconds + const interval = setInterval(fetchStatus, 60000); // Refresh every 30 seconds return () => clearInterval(interval); }, [navigate, location.pathname]); diff --git a/src/layouts/components/Header.tsx b/src/layouts/components/Header.tsx index b7c6aa7..d87498d 100644 --- a/src/layouts/components/Header.tsx +++ b/src/layouts/components/Header.tsx @@ -1,5 +1,6 @@ import { makeStyles, Text, tokens, Button } from '@fluentui/react-components'; import { WeatherSunny24Regular, WeatherMoon24Regular, Code24Regular } from '@fluentui/react-icons'; +import { useNavigate } from 'react-router-dom'; import icon from '/icon.png'; import { SITE_TITLE, EnableCodeIcon, RepoUrl } from '../../config'; @@ -19,6 +20,12 @@ const useStyles = makeStyles({ display: 'flex', alignItems: 'center', gap: tokens.spacingHorizontalS, + cursor: 'pointer', + textDecoration: 'none', + color: 'inherit', + '&:hover': { + opacity: 0.8, + }, }, icon: { height: '32px', @@ -43,10 +50,15 @@ interface HeaderProps { const Header = ({ isDarkMode, onToggleTheme, onToggleSidebar }: HeaderProps) => { const styles = useStyles(); + const navigate = useNavigate(); + + const handleTitleClick = () => { + navigate('/'); + }; return (
- + logo {SITE_TITLE}