429f991bde
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 19s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 20s
Project CI / AI game creator shell Rust shard 1/4 (push) Failing after 20s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 20s
Project CI / Backend tests (push) Failing after 17s
Project CI / AI game creator shell Rust crates (push) Failing after 17s
Project CI / AI game creator shell Rust smoke (push) Failing after 19s
Project CI / Native shell tests (push) Failing after 18s
Project CI / Frontend tests (push) Failing after 8s
Project CI / AI game creator shell web tests (push) Failing after 15s
Project CI / Repository checks (push) Failing after 17s
- 撤销 39aed2e48 夹带的游戏分发前后端、SpacetimeDB 绑定、主站路由、后台审核页、文档与 nginx 改动,master 恢复可编译状态
- 保留该提交自身的 AGC 发号改动:agc-global-version.mjs 与其参数构造单测
- 恢复被误删的 output 产物,避免把无关清理混进该提交
- 补回两篇技术文档在 docs/README.md 的索引(它们属于后续两个补提交文档,不属于游戏分发)
- 游戏分发完整实现保留在 codex/game-distribution 分支继续开发
27 lines
902 B
TypeScript
27 lines
902 B
TypeScript
import type { SelectionStage } from '../components/platform-entry/platformEntryActiveTypes';
|
|
import { setHostAppTitle } from './host-bridge/hostBridge';
|
|
|
|
const APP_TITLE_BRAND = '陶泥儿';
|
|
export const APP_HOME_TITLE = '陶泥儿 Genarrative|美术编辑器与项目工作台';
|
|
|
|
const APP_TITLE_BY_SELECTION_STAGE: Record<SelectionStage, string> = {
|
|
platform: APP_HOME_TITLE,
|
|
'creation-home': APP_HOME_TITLE,
|
|
project: '项目 - 陶泥儿',
|
|
profile: '我的 - 陶泥儿',
|
|
'image-editor': '美术编辑器 - 陶泥儿',
|
|
};
|
|
|
|
export function resolveAppTitleForSelectionStage(stage: SelectionStage) {
|
|
return APP_TITLE_BY_SELECTION_STAGE[stage];
|
|
}
|
|
|
|
export function syncAppTitle(title: string) {
|
|
const normalizedTitle = title.trim() || APP_TITLE_BRAND;
|
|
if (typeof document !== 'undefined') {
|
|
document.title = normalizedTitle;
|
|
}
|
|
|
|
void setHostAppTitle({ title: normalizedTitle });
|
|
}
|