formatting and comments
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
/**
|
||||
* Browser entry point and intentionally small client-side router.
|
||||
*
|
||||
* `/obs/:publicId` is selected before the control application is initialized.
|
||||
* That early split is a security and reliability boundary: OBS sources never
|
||||
* register the control-console PWA or execute authenticated dashboard requests.
|
||||
* All other routes share the session bootstrap and passwordless auth flow.
|
||||
*/
|
||||
import { useCallback, useEffect, useState } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import { ApiError, api, errorMessage, json, normalizeSession } from './api'
|
||||
@@ -20,11 +28,15 @@ function NotFoundPage() {
|
||||
return (
|
||||
<main className="auth-page">
|
||||
<section className="auth-card jade-panel not-found">
|
||||
<div className="auth-mark" aria-hidden="true">云</div>
|
||||
<div className="auth-mark" aria-hidden="true">
|
||||
云
|
||||
</div>
|
||||
<p className="eyebrow">404 · LOST IN THE CLOUDS</p>
|
||||
<h1>这里没有组件</h1>
|
||||
<p className="auth-lead">地址可能已经失效,或者组件已被所属用户删除。</p>
|
||||
<a className="button-link" href="/control/">返回控制台</a>
|
||||
<a className="button-link" href="/control/">
|
||||
返回控制台
|
||||
</a>
|
||||
</section>
|
||||
</main>
|
||||
)
|
||||
@@ -85,9 +97,15 @@ function App() {
|
||||
<PwaControls />
|
||||
<p className="eyebrow">{offline ? 'OFFLINE SHELL' : 'CONNECTION ERROR'}</p>
|
||||
<h1>{offline ? '控制台目前处于离线状态' : '云台暂时无法连接'}</h1>
|
||||
{offline && <p className="auth-lead">应用外壳已离线打开,但账户、直播源和组件数据不会缓存。联网后即可重新验证会话。</p>}
|
||||
{offline && (
|
||||
<p className="auth-lead">
|
||||
应用外壳已离线打开,但账户、直播源和组件数据不会缓存。联网后即可重新验证会话。
|
||||
</p>
|
||||
)}
|
||||
<div className="notice error">{loadError}</div>
|
||||
<button type="button" disabled={offline} onClick={() => void refreshSession()}>重新连接</button>
|
||||
<button type="button" disabled={offline} onClick={() => void refreshSession()}>
|
||||
重新连接
|
||||
</button>
|
||||
</section>
|
||||
</main>
|
||||
)
|
||||
@@ -124,7 +142,8 @@ function App() {
|
||||
}
|
||||
if (path === '/control/invitations') {
|
||||
if (!session.user) return <Redirect to="/control/login" />
|
||||
if (session.user.role !== 'system_admin') return <ForbiddenPage user={session.user} onLogout={logout} />
|
||||
if (session.user.role !== 'system_admin')
|
||||
return <ForbiddenPage user={session.user} onLogout={logout} />
|
||||
return <InvitationsPage user={session.user} onLogout={logout} />
|
||||
}
|
||||
return <NotFoundPage />
|
||||
|
||||
Reference in New Issue
Block a user