# 作品发布完成分享面板 2026-05-02 ## 背景 当前 RPG、拼图、大鱼吃小鱼、抓大鹅 Match3D 的发布链路已经能把作品同步到公开广场,但发布成功后的用户反馈主要是跳转到作品详情或按钮状态变化。用户完成发布后缺少一个明确的“分享给朋友”收口动作,导致公开作品号与链接不够显眼。 ## 目标 发布动作确认成功后弹出独立平台风面板: 1. 面板标题固定为“分享给朋友”。 2. 标题下显示可复制的分享文本。 3. 分享文本下方显示主按钮“分享”,点击后复制完整分享文本。 4. 页面底部显示三个分享渠道 icon:微信、QQ、抖音。 5. 移动端使用底部弹层,桌面端居中展示,复用 `UnifiedModal` 的平台弹窗外壳。 ## 分享文本 分享文本统一使用: ```text 邀请你来玩《作品名》 作品号:公开作品码 公开链接 ``` 公开作品码来源: - RPG:优先使用发布后作品库 / 公开详情返回的 `publicWorkCode`。 - 拼图:使用 `buildPuzzlePublicWorkCode(profileId)`。 - 大鱼吃小鱼:使用 `buildBigFishPublicWorkCode(sourceSessionId)`。 - 抓大鹅 Match3D:使用 `buildMatch3DPublicWorkCode(profileId)`。 公开链接统一使用 `buildPublicWorkStagePath(stage, publicWorkCode)` 转换为当前站点绝对链接。 ## 渠道 icon 规则 本次只做前端分享引导,不接入微信、QQ、抖音的原生 SDK。点击渠道 icon 与主“分享”按钮保持一致,复制同一份分享文本。 仓库现有 `media/social-media-group/wechat.png` 与 `qq.png` 是社群二维码,不作为本面板渠道 icon 使用。渠道 icon 采用轻量圆形文字标识,避免误导用户进入社群。 ## 接入范围 - `RpgCreationResultActionBar`:RPG 发布成功后由父层回传分享数据并打开面板。 - `PuzzleResultView`:拼图发布 action 完成后由平台父层打开面板。 - `BigFishResultView`:大鱼发布 action 完成后由平台父层打开面板。 - `Match3DResultView`:本地 `publishMatch3DWork` 成功后直接触发面板数据,分享链接对齐现有作品详情入口。 - `PlatformEntryFlowShellImpl`:集中维护发布完成分享状态,避免各玩法重复实现弹窗。 ## 验收标准 1. 用户完成作品发布后能看到“分享给朋友”面板。 2. 面板内展示完整分享文本,主按钮点击后复制成功并短暂显示成功态。 3. 底部固定展示微信、QQ、抖音三个渠道 icon。 4. 关闭面板不影响已发布作品进入详情、刷新广场或继续游玩。 5. 不新增后端接口,不改动 SpacetimeDB 表结构。