不知道该说什么。

This commit is contained in:
2026-01-23 14:38:47 +08:00
parent f577f01a35
commit 7d76e9a7e9
4 changed files with 17 additions and 4 deletions

3
.gitignore vendored
View File

@@ -1 +1,2 @@
back/data/
back/data/
back/__pycache__/

View File

@@ -120,7 +120,7 @@ const remarkTagPlugin = () => {
const CreatePost: React.FC = () => {
const styles = useStyles();
const navigate = useNavigate();
const { isDarkMode, toasterId } = useLayout();
const { isDarkMode, toasterId, triggerRefresh } = useLayout();
const { dispatchToast } = useToastController(toasterId);
const [value, setValue] = useState<string | undefined>("");
const [lastSaved, setLastSaved] = useState<string>(() => new Date().toLocaleTimeString('zh-CN', { hour12: false }));
@@ -170,6 +170,7 @@ const CreatePost: React.FC = () => {
{ intent: 'success' }
);
triggerRefresh();
navigate('/');
} else if (response.code === 2005) {
dispatchToast(

View File

@@ -76,7 +76,7 @@ const useStyles = makeStyles({
const StatusDisplay: React.FC = () => {
const styles = useStyles();
const { toasterId } = useLayout();
const { toasterId, refreshTrigger } = useLayout();
const { dispatchToast } = useToastController(toasterId);
const [isApiOnline, setIsApiOnline] = useState<boolean | null>(null);
const [statics, setStatics] = useState<StaticsData | null>(null);
@@ -121,6 +121,13 @@ const StatusDisplay: React.FC = () => {
};
}, [checkStatus, refreshStatics]);
// Listen for global refresh trigger
useEffect(() => {
if (refreshTrigger > 0) {
refreshStatics(false);
}
}, [refreshTrigger, refreshStatics]);
return (
<div className={styles.container}>
<Card className={styles.card}>

View File

@@ -10,6 +10,8 @@ interface LayoutContextType {
isDarkMode: boolean;
toggleTheme: () => void;
toasterId: string;
refreshTrigger: number;
triggerRefresh: () => void;
}
const LayoutContext = createContext<LayoutContextType | undefined>(undefined);
@@ -18,6 +20,7 @@ export const LayoutProvider: React.FC<{ children: React.ReactNode; toasterId: st
const [settings, setSettings] = useState<SiteSettings | null>(null);
const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(false);
const [isDarkMode, setIsDarkMode] = useState(false);
const [refreshTrigger, setRefreshTrigger] = useState(0);
const { dispatchToast } = useToastController(toasterId);
useEffect(() => {
@@ -47,9 +50,10 @@ export const LayoutProvider: React.FC<{ children: React.ReactNode; toasterId: st
const toggleSidebar = () => setIsSidebarCollapsed(prev => !prev);
const toggleTheme = () => setIsDarkMode(prev => !prev);
const triggerRefresh = () => setRefreshTrigger(prev => prev + 1);
return (
<LayoutContext.Provider value={{ settings, isSidebarCollapsed, toggleSidebar, isDarkMode, toggleTheme, toasterId }}>
<LayoutContext.Provider value={{ settings, isSidebarCollapsed, toggleSidebar, isDarkMode, toggleTheme, toasterId, refreshTrigger, triggerRefresh }}>
{children}
</LayoutContext.Provider>
);