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