2.3 KiB
2.3 KiB
创作页作品删除入口设计 2026-04-24
背景
创作页作品卡曾把删除作为底部大按钮展示,并且只对带 profileId 的 RPG 作品传入删除回调,导致大鱼、拼图、以及部分草稿作品没有删除入口。用户预期是:删除不是主操作,放在卡片右上角的小 icon 即可;任何作品都应该能删除。
落地规则
- 作品卡整体就是继续创作 / 继续完善 / 查看详情入口,不再在底部展示“继续完善”等重复主按钮。
- 作品卡右上角固定展示删除 icon,底部主操作区只保留体验等必须独立触发的正向操作。
- 点击作品卡任意非独立按钮区域都进入继续完善链路;点击删除或体验时不得冒泡触发作品卡打开。
- 作品卡保留键盘可访问性:焦点落在卡片时按 Enter 或空格等同点击作品,焦点落在删除 / 体验按钮时只执行对应按钮动作。
- 删除入口不按发布状态隐藏:草稿、已发布作品均可删除。
- 删除入口不按玩法类型隐藏:RPG、大鱼吃小鱼、拼图作品均应在创作页可删除。
- 点击删除前保留浏览器确认弹窗,避免误触;删除中仅禁用当前作品卡的删除 icon。
- 删除成功后刷新或替换对应玩法的作品列表,确保卡片立即消失。
工程边界
- 前端只负责表现和触发删除,实际删除由
server-rsAPI 与 SpacetimeDB 模块过程完成。 - 大鱼作品按
sourceSessionId删除创作 session,并同步清理消息、素材槽和运行快照。 - 拼图作品按
profileId删除作品 profile,并同步清理来源 Agent session、消息和入口运行快照。 - RPG 已发布/持久草稿按
profileId走既有自定义世界删除链路;纯 Agent session 草稿按sessionId走 owner-only session 删除过程,并清理消息、操作与草稿卡。 - 自定义世界 Agent 的异步进度写回必须通过
upsert_custom_world_agent_operation_progress过程落到 SpacetimeDB,server-rs只做字符串入参与过程封装,不在 API 层维护额外进度状态。 server-rs的删除路由使用 Axum 标准Path(sessionId)提取参数,并在进入 SpacetimeDB 前做 owner-only 与空值校验,避免 handler 签名和过程入参漂移。