mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-05 07:26:36 +08:00
ca21e0eca7
Frontend layout renders immediately; pages gate via RequireAuth and useAuthRedirect. Login/register skip getUserInfo. Admin log panel uses useVirtualizer to avoid 2000-row DOM. ListVisibleSystemConfigs caches visibility=1 configs in Redis with invalidation on create/update. PERFORMANCE.md marks completed optimizations.
34 lines
970 B
TypeScript
34 lines
970 B
TypeScript
"use client"
|
|
|
|
import * as React from "react"
|
|
import {motion} from "motion/react"
|
|
|
|
import {RequireAuth} from "@/components/auth/require-auth"
|
|
import {UserFileManager} from "@/components/common/user/file-manager"
|
|
import {FolderOpen} from "lucide-react"
|
|
|
|
export default function UserFilesPage() {
|
|
return (
|
|
<RequireAuth>
|
|
<motion.div
|
|
initial={{ opacity: 0, y: 15 }}
|
|
animate={{ opacity: 1, y: 0 }}
|
|
transition={{ duration: 0.35, ease: "easeOut" }}
|
|
className="flex w-full flex-col gap-6 py-6"
|
|
>
|
|
{/* 顶部标题区 */}
|
|
<div className="flex flex-col md:flex-row md:items-center justify-between gap-4 pb-5">
|
|
<div className="flex items-center gap-2">
|
|
<FolderOpen className="size-5 text-primary" />
|
|
<div>
|
|
<h1 className="text-2xl font-semibold tracking-tight">我的文件</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<UserFileManager />
|
|
</motion.div>
|
|
</RequireAuth>
|
|
)
|
|
}
|