forked from bai/curriculum-project-hub
3d0f4e5c2d
登录页、后台外壳与六个 tab 全部成为客户端路由: /database/admin 登录(迁自 renderLoginPage) /database/dashboard 概览(迁自 renderDashboard) .../library .../users .../groups .../search .../settings 六个 tab 是真 URL,不再是 location.hash + display:none —— 刷新不丢 位置,链接可分享。 BrowserShell 拆成 LibraryView,加 showUserFooter:老师端 /app 显示 身份/登出页脚,后台的文件库 tab 不显示(外层已有身份区)。 bootstrap 走 /database/config 而非 /database/api/login-info:后者由 teacherApp 在 silo org 查找成功后才注册,前者无条件注册,登录页在 org 未就绪时也必须能拿到配置。 后端拥有的链接(OAuth、DEV 一键登录)标 data-sveltekit-reload, 否则被客户端路由拦下。
24 lines
789 B
TypeScript
24 lines
789 B
TypeScript
/**
|
|
* 前端 bootstrap:silo org slug(拼飞书 OAuth 链接用)+ dev 一键登录开关。
|
|
*
|
|
* 打 `/database/config` 而非 `/database/api/login-info`:后者由 teacherApp.ts 在
|
|
* silo org 查找成功之后才注册,org 缺失时整条链路不存在;前者在
|
|
* databaseRoutes.ts 顶部无条件注册。两者形状相同(见 src/database/README.md)。
|
|
*
|
|
* 免鉴权 —— org slug 本就出现在 OAuth URL 里,不构成敏感信息。
|
|
*/
|
|
import { api } from "./api.js";
|
|
|
|
export interface AppConfig {
|
|
readonly orgSlug: string;
|
|
readonly devLoginEnabled: boolean;
|
|
}
|
|
|
|
let cached: AppConfig | null = null;
|
|
|
|
export async function loadConfig(): Promise<AppConfig> {
|
|
if (cached !== null) return cached;
|
|
cached = await api<AppConfig>("/database/config");
|
|
return cached;
|
|
}
|