mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-03-01 16:20:25 +00:00
* refactor: 将默认密码相关逻辑重构为后端处理 * refactor: 日志路由进行脱敏,生成随机密码使用node:crypto.randomBytes * feat: 更新密码功能增强,添加新密码强度验证和旧密码检查 * feat: 给文件管理添加WebUI配置文件的脱敏处理和验证逻辑 * refactor: 优化网络显示卡片按钮样式和行为,调整按钮属性以提升用户体验 * feat: 增强路径处理逻辑,添加安全验证以防止路径遍历攻击 * feat: 增强文件路径处理逻辑,添加安全验证以防止路径遍历攻击,并优化查询参数提取 * feat: CodeQL不认可 受不了
37 lines
900 B
TypeScript
37 lines
900 B
TypeScript
import { Spinner } from '@heroui/spinner'
|
|
import { AnimatePresence, motion } from 'motion/react'
|
|
import { Suspense } from 'react'
|
|
import { Outlet, useLocation } from 'react-router-dom'
|
|
|
|
import DefaultLayout from '@/layouts/default'
|
|
|
|
export default function IndexPage() {
|
|
const location = useLocation()
|
|
|
|
return (
|
|
<DefaultLayout>
|
|
<Suspense
|
|
fallback={
|
|
<div className="flex justify-center px-10">
|
|
<Spinner />
|
|
</div>
|
|
}
|
|
>
|
|
<AnimatePresence mode="wait">
|
|
<motion.div
|
|
key={location.pathname}
|
|
initial={{ opacity: 0, y: 20 }}
|
|
animate={{ opacity: 1, y: 0 }}
|
|
transition={{
|
|
type: 'tween',
|
|
ease: 'easeInOut'
|
|
}}
|
|
>
|
|
<Outlet />
|
|
</motion.div>
|
|
</AnimatePresence>
|
|
</Suspense>
|
|
</DefaultLayout>
|
|
)
|
|
}
|