chore: 初始化仓库

中华文明全图鉴——文物全图系统(PC Web 地图 + NestJS API + 管理后台)。
含三大 IP(文物南迁北归 / 国宝海外回归 / 博物馆手艺人)、AI 文物对话、
文物地图与详情、以及 demo-video-kit 演示视频生成工具。
This commit is contained in:
selfrelease
2026-06-13 20:55:44 +08:00
commit 2d847e154f
161 changed files with 22629 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
import { useState, useEffect } from "react";
export interface AuthUser {
id: string;
username: string;
nickname: string;
role: string;
}
const USER_KEY = "admin_user";
const TOKEN_KEY = "access_token";
export function saveAuth(token: string, user: AuthUser) {
localStorage.setItem(TOKEN_KEY, token);
localStorage.setItem(USER_KEY, JSON.stringify(user));
}
export function clearAuth() {
localStorage.removeItem(TOKEN_KEY);
localStorage.removeItem(USER_KEY);
}
export function getStoredUser(): AuthUser | null {
try {
const s = localStorage.getItem(USER_KEY);
return s ? (JSON.parse(s) as AuthUser) : null;
} catch {
return null;
}
}
export function useAuth() {
const [user, setUser] = useState<AuthUser | null>(getStoredUser);
useEffect(() => {
const handler = () => setUser(getStoredUser());
window.addEventListener("storage", handler);
return () => window.removeEventListener("storage", handler);
}, []);
const logout = () => {
clearAuth();
setUser(null);
};
return { user, setUser, logout };
}