fix: refresh user logout state
This commit is contained in:
+4
-1
@@ -1096,7 +1096,10 @@ function AppShell() {
|
||||
<Route path="/users" element={<UserManagement />} />
|
||||
|
||||
{/* User specific pages */}
|
||||
<Route path="/user/dashboard" element={<UserDashboard />} />
|
||||
<Route
|
||||
path="/user/dashboard"
|
||||
element={<UserDashboard onLogout={() => setUserAuthed(false)} />}
|
||||
/>
|
||||
<Route path="/user/dashboard/keys" element={<UserKeys />} />
|
||||
<Route path="/user/dashboard/profile" element={<UserProfile />} />
|
||||
<Route path="/user/usage" element={<UsageRecords />} />
|
||||
|
||||
@@ -35,7 +35,7 @@ interface LogItem {
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
export default function UserDashboard() {
|
||||
export default function UserDashboard({ onLogout }: { onLogout?: () => void }) {
|
||||
const navigate = useNavigate();
|
||||
const [profile, setProfile] = useState<UserProfile | null>(null);
|
||||
const [keys, setKeys] = useState<ApiKey[]>([]);
|
||||
@@ -74,6 +74,12 @@ export default function UserDashboard() {
|
||||
|
||||
useEffect(() => { loadData(); }, [loadData]);
|
||||
|
||||
const handleLogout = () => {
|
||||
clearUserSession(localStorage);
|
||||
onLogout?.();
|
||||
navigate('/user/login', { replace: true });
|
||||
};
|
||||
|
||||
if (loading) {
|
||||
return (
|
||||
<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%', minHeight: '400px' }}>
|
||||
@@ -210,7 +216,7 @@ export default function UserDashboard() {
|
||||
</div>
|
||||
<div style={{ marginTop: '20px', display: 'flex', gap: '10px' }}>
|
||||
<button className="btn btn-ghost btn-sm" style={{ flex: 1, border: '1px solid var(--color-border)' }} onClick={() => navigate('/user/dashboard/profile')}>修改资料</button>
|
||||
<button className="btn btn-ghost btn-sm danger" style={{ flex: 1, border: '1px solid var(--color-border)' }} onClick={() => { clearUserSession(localStorage); window.location.href = '/user/login'; }}>退出登录</button>
|
||||
<button className="btn btn-ghost btn-sm danger" style={{ flex: 1, border: '1px solid var(--color-border)' }} onClick={handleLogout}>退出登录</button>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user