feat(mail): 支持邮件标签与富文本写信
- 新增标签数据结构、接口与路由,支持创建/删除邮件标签、按标签筛选邮件和查看星标邮件。 - 邮件详情与列表补充标签展示,发送/移动/删除/已读等操作同步刷新相关数据。 - 前端重构邮件页,加入标签侧栏、标签管理弹层,并将写信编辑器升级为 Markdown 富文本。 - 顺带优化登录态超时处理与部分导航入口,调整前端依赖版本。
This commit is contained in:
@@ -15,8 +15,9 @@ const queryClient = new QueryClient({ defaultOptions: { queries: { refetchOnWind
|
||||
const router = createBrowserRouter([
|
||||
{ path: "/login", element: <LoginPage /> },
|
||||
{ path: "/", element: <ProtectedLayout />, children: [
|
||||
{ index: true, element: <Navigate to="/mail" replace /> },
|
||||
{ path: "mail", element: <MailPage /> },
|
||||
{ index: true, element: <MailPage /> },
|
||||
{ path: "mail", element: <Navigate to="/" replace /> },
|
||||
{ path: "mail/starred", element: <Navigate to="/" replace /> },
|
||||
{ path: "profile", element: <ProfilePage /> },
|
||||
{ path: "admin", element: <AdminOnly><AdminPage /></AdminOnly> },
|
||||
] },
|
||||
@@ -26,7 +27,7 @@ function AdminOnly({ children }: { children: React.ReactNode }) {
|
||||
const me = useMe()
|
||||
if (me.isLoading) return null
|
||||
if (!me.data?.user) return <Navigate to="/login" replace />
|
||||
if (me.data.user.role !== "admin") return <Navigate to="/mail" replace />
|
||||
if (me.data.user.role !== "admin") return <Navigate to="/" replace />
|
||||
return <>{children}</>
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user