// entrypoints/popup/App.tsx
import { useState, useEffect } from 'react';
import { HashRouter as Router, Routes, Route, Navigate } from 'react-router-dom';
import { Link, useNavigate } from 'react-router-dom';
import { Button } from '@alifd/next';
import './App.css';
import '../../assets/tailwind.css'
import '@alifd/next/dist/next.css';
import '@alifd/next/dist/next.min.css';
import Login from './pages/Login'
import DesignPic from './pages/DesignPic';
// 创建一个保护路由组件
function ProtectedRoute({ children }: { children: React.ReactNode }) {
const isLoggedIn = localStorage.getItem('isLoggedIn');
return isLoggedIn ? <>{children}> : ;
}
// 创建带登出功能的导航组件
function Navigation({ onLogout, userinfo }: { onLogout: () => void, userinfo: any }) {
const navigate = useNavigate();
const handleLogout = () => {
onLogout();
navigate('/login');
};
return (
{userinfo && userinfo.nickname ?
等级: {userinfo.version_custom_name}
账户: {userinfo.nickname}
: <>未获取到用户信息>}
);
}
function App() {
const [count, setCount] = useState(0);
const [isLoggedIn, setIsLoggedIn] = useState(false);
const [userinfo, setUserinfo] = useState(null);
// 检查登录状态
useEffect(() => {
const loggedIn = localStorage.getItem('isLoggedIn') === 'true';
setIsLoggedIn(loggedIn);
}, []);
useEffect(() => {
// 获取用户信息
if (isLoggedIn) {
if (localStorage.getItem('userinfo')) {
let userinfoStr = localStorage.getItem('userinfo');
console.log(userinfoStr, "userinfoStr")
try {
// 尝试解析用户信息
const parsedUserinfo = userinfoStr ? JSON.parse(userinfoStr) : null;
setUserinfo(parsedUserinfo);
} catch (e) {
// 如果解析失败,可能是字符串格式
setUserinfo({ nickname: userinfoStr });
}
}
}
}, [isLoggedIn])
// 处理登出逻辑
const handleLogout = () => {
localStorage.removeItem('isLoggedIn');
localStorage.removeItem('access_token');
localStorage.removeItem('userinfo');
setIsLoggedIn(false);
};
return (
{/* 只在登录后显示导航栏 */}
{isLoggedIn && }
} />
} />
{/*
} />
} /> */}
);
}
export default App;