feat(creator-studio): two-row masthead with site logo and user avatar

顶栏改为知乎式两行结构:第一行左侧站点 LOGO、右侧当前用户头像,
第二行只保留正文工具条并居中,同时移除「Jio / 写文章」字样。

- bootstrap payload 新增 site/viewer 身份字段(复用 jio_get_site_logo_url
  与 jio_get_avatar_url,前端不拼 URL、不做权限判断)
- 拆分 draft 类型、TinyMCE 块运行时、顶栏组件,index.tsx 1065 → 735 行
- 清理死代码:未调用的 keepCaretInsideCode、永远无法打开的代码语言弹窗
  (setCodeLanguage 只会收到 null,codeTargetRef 从未赋值)及其样式,
  以及顶栏移除后失效的 bar-left/brand/mode/save-draft/ghost/primary 规则
- 契约测试、本地预览与截图脚本同步到新 DOM

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Opus 5 committed 2026-11-08 22:20:10 +08:00
1 parent 5f31c58df2
commit 1970db0b56
17 files changed
+602 -580

No files matched your search

+2 -1
View File
@@ -31,7 +31,8 @@ const URL = process.argv[2] || 'https://localhost/jio-preview.html';
await page.waitForFunction(() => window.tinymce?.get('jio-creator-content'), { timeout: 20000 });
const before = await page.evaluate(() => ({
fixed: getComputedStyle(document.querySelector('.jio-creator__bar')).position === 'fixed',
// 两行顶栏由外层容器整体固定,工具条本身不再单独 fixed。
fixed: getComputedStyle(document.querySelector('.jio-creator__top')).position === 'fixed',
toolbar: !!document.querySelector('[role="toolbar"]'),
editor: !!window.tinymce?.get('jio-creator-content'),
}));