feat(onboarding): one-time 「那一刻的天空」 reveal after the first own chart (T6)
After saveOnboardingPlace succeeds (and the next step is already set), the new useBirthSkyReveal hook fetches /api/birth-sky?subject=self and paints the cover; if that finishes within 3 s the chart page's dialog fades in (600 ms, none under reduced motion) with 「继续」. Timeout or failure is silent, no retry; closing touches only the reveal's own state. Home() gains no useState/useRef; page.tsx only wires. Family profiles and profile edits never trigger it. Also caps the dialog image by viewport height (the percentage max-height did not resolve inside the flex/grid cell), and completes PROGRESS, DESIGN §17, CHANGELOG and the real-device checklist. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0199rbQDTsUbCVw84wc8BTFe
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
028aef2737
commit
14ef18ac24
@@ -1153,3 +1153,10 @@ D40 / D45 / D60 的表格上方,出生时间不是「已校正」时多一句
|
||||
### 位置二:报告封面(blocked)
|
||||
|
||||
本期不上线。报告行与报告文档里都没有生成时的出生资料指纹,封面「对得上报告」无从判定;按任务书不拿当前资料冒充当时资料(`BLOCKED.md`)。报告页、打印样式、`reportView` 都未改:没有封面、没有占位。解除后按原设计:ready 态正文最上方,屏幕用 `night`、宽随正文列、3:4;打印改 `paper` 并独占 A4 第一页(`break-after: page`);取数在正文出现之后,失败不显示;封面下不加按钮。
|
||||
|
||||
### 位置三:首次建盘揭幕
|
||||
|
||||
- 触发只有一处:首页 onboarding 里**自己的**出生地保存成功(`saveOnboardingPlace` 成功之后)。每个账户只发生一次,所以没有「看过」标记、不写库。星盘档案里新建家人、设置里改资料都不触发。
|
||||
- 保存成功后,onboarding 先照常走到下一步,再去取 `/api/birth-sky?subject=self` 并画图;**3 秒内**画好就在当前页面之上淡入同一个弹层(600ms 透明度,`prefers-reduced-motion` 时直接出现),多一个主按钮「继续」。超时或失败静默跳过:不提示、不重试、不等待。
|
||||
- 「继续」、「关闭」、Esc、点遮罩都只关掉弹层,下面就是原本的下一步(问候或校正引导),下一步不因它改变。onboarding 保存出生地后本来不会自动进入出生时间校正,所以不存在「关闭后再进入」的排队。0 点数账户的兑换弹窗若同时出现,天空弹层在它之上(原生 `<dialog>` 顶层),关掉后兑换弹窗仍在。
|
||||
- 这是用户操作之后的结果展示,不是首页加载等待,不违反 §9「首页只揭幕一次」;首页加载揭幕的轨道环逻辑不动。逻辑在 `hooks/use-birth-sky-reveal.ts`(自持状态),`page.tsx` 只接线(`Home()` 的 `useState` / `useRef` 数不变)。
|
||||
|
||||
Reference in New Issue
Block a user