From 7921edd71ec2e52194a396aa22b53a3e3fe3efe1 Mon Sep 17 00:00:00 2001 From: Gmaker689 <1711322114@qq.com> Date: Mon, 25 May 2026 20:15:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BB=BB=E5=8A=A1=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=20JWT=20=E9=89=B4=E6=9D=83=E5=A4=B1=E8=B4=A5=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E5=9B=9E=E9=80=80=E7=99=BB=E5=BD=95=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TaskListPanel 用 React Router 替代原生 ,避免整页刷新 - auth store 初始化时同步读取 token 设置 isAuthenticated,避免 useEffect 异步执行前 ProtectedRoute 误判未登录 --- frontend/src/components/TaskListPanel.tsx | 12 ++++++++---- frontend/src/stores/auth.ts | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/TaskListPanel.tsx b/frontend/src/components/TaskListPanel.tsx index 61f55f4..ad0d90a 100644 --- a/frontend/src/components/TaskListPanel.tsx +++ b/frontend/src/components/TaskListPanel.tsx @@ -1,5 +1,5 @@ import { useEffect, useState, useCallback } from 'react' -import { useParams } from 'react-router-dom' +import { Link, useParams } from 'react-router-dom' import { getTasks } from '../api/project' import type { Task } from '../api/types' import StatusBadge from './StatusBadge' @@ -67,9 +67,9 @@ export default function TaskListPanel() {
) : ( tasks.map(task => ( - { + if (task.status !== 'completed') e.preventDefault() + }} onMouseEnter={e => { if (task.status === 'completed') (e.currentTarget as HTMLElement).style.background = 'var(--accent-dim)' @@ -115,7 +119,7 @@ export default function TaskListPanel() { )}