feat(admin): 登录改页内弹窗 + P1 站点设置(页头/侧栏)
- 登录:LoginDialog(Modal)替代 /login 页面;/login 重定向回首页 - 设置接口:GET /api/settings 公开读、PATCH 需登录 + version 乐观锁(409/400) - setting 表存 site JSON:页头(启用/速度/条目+标签+色调)、侧栏(hidden/order) - /admin:Tabs 页头/侧栏,条目增删与上下移,保存后首页生效 - 首页应用设置:ticker 文本占位符与速度、侧栏顺序与显隐 - 测试 42 passed(settings 5 例)
This commit is contained in:
+17
-7
@@ -3,15 +3,25 @@ import { createRoot } from 'react-dom/client'
|
||||
import '@stash/ui/style.css'
|
||||
import './index.css'
|
||||
import App from './App.tsx'
|
||||
import { LoginPage } from './components/auth/LoginPage'
|
||||
import { AdminPage } from './components/admin/AdminPage'
|
||||
|
||||
/**
|
||||
* 入口分流:登录页是独立壳(不挂 Layout / 侧栏 / 搜索),
|
||||
* 且必须在 App 的 `useViewRoute` 把地址规范化之前判定,
|
||||
* 所以放在这里用首次加载的 pathname 决定,而不是放进 App 里。
|
||||
* 入口分流:
|
||||
* - `/admin`:设置页独立壳;
|
||||
* - `/login`:老地址,直接回首页(登录已改为页内弹窗);
|
||||
* - 其它:正常站点。
|
||||
*
|
||||
* 判定放在这里而不是 App 里,是因为 App 的 `useViewRoute` 会把地址规范化,
|
||||
* 组件内部再读 pathname 已经晚了。
|
||||
*/
|
||||
const isLoginPage = window.location.pathname === '/login'
|
||||
const path = window.location.pathname
|
||||
|
||||
createRoot(document.getElementById('root')!).render(
|
||||
<StrictMode>{isLoginPage ? <LoginPage /> : <App />}</StrictMode>,
|
||||
if (path === '/login') {
|
||||
window.location.replace('/')
|
||||
}
|
||||
|
||||
const root = createRoot(document.getElementById('root')!)
|
||||
|
||||
root.render(
|
||||
<StrictMode>{path === '/admin' ? <AdminPage /> : <App />}</StrictMode>,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user