收口平台入口恢复提示面板

平台入口恢复和详情读取提示改用 PlatformSubpanel

补充 PlatformUiKit 收口文档和 Hermes 决策记录
This commit is contained in:
2026-06-10 13:01:51 +08:00
parent 2bc76f0558
commit 6841b686d9
3 changed files with 31 additions and 10 deletions
+1
View File
@@ -69,6 +69,7 @@
- 2026-06-10 追加:通用创作图片输入面板的主图标题和提示词标题使用 `PlatformFieldLabel variant="form"`;提示词字段保留外层原生 `label htmlFor`,业务组件只保留字段文案、布局和上传 / 生成交互,不再手写 `mb-2 block text-sm font-black` 标题 class。
- 2026-06-10 追加:个人中心存档 / 玩过弹窗里的简单空态使用 `PlatformEmptyState surface="subpanel" size="inline"`,玩过弹窗的“可继续 / 玩过”分区标题使用 `PlatformFieldLabel variant="section"`,已玩作品白底按钮卡使用 `PlatformSubpanel as="button" surface="flat" radius="sm" padding="md" interactive``SaveArchiveCard` 因含图片遮罩和加载态暂不并入本轮。
- 2026-06-10 追加:平台入口壳纯 Suspense fallback 使用 `PlatformSubpanel radius="sm" padding="none"` 承接原 `platform-subpanel` 外壳;带恢复动作、错误语义或运行态遮罩的提示面板不和纯加载 fallback 同批迁移。
- 2026-06-10 追加:平台入口作品详情读取 / 错误提示、Agent 工作区恢复提示和生成结果恢复面板也迁移到 `PlatformSubpanel`;普通提示使用 `radius="sm" padding="none"`,带恢复动作的 `CreationResultRecoveryPanel` 使用 `radius="xl" padding="none"`,玩法 runtime overlay 继续保留专用层级语义。验证命令:`npm run test -- src/components/common/PlatformSubpanel.test.tsx src/components/platform-entry/PlatformEntryFlowShellImpl.test.ts`
- 2026-06-10 追加:个人中心钱包账单弹窗的“暂无账单记录”使用 `PlatformEmptyState surface="subpanel" size="inline"`,账单行使用 `PlatformSubpanel as="div" surface="flat" radius="xs" padding="none"`;业务 JSX 只保留来源、时间、收支色值、余额右对齐和局部间距 / 阴影。
- 2026-06-10 追加:个人中心邀请弹窗里的社区二维码卡、邀请码展示卡、成功邀请容器和邀请用户行使用 `PlatformSubpanel`,简单空态使用 `PlatformEmptyState`,小标题使用 `PlatformFieldLabel variant="section"`;外层弹窗、query 自动打开、复制邀请和提交邀请码状态机不随 UI chrome 收口改动。
- 2026-06-10 追加:个人中心任务中心任务条目使用 `PlatformSubpanel radius="sm" padding="md"` 承接原 `platform-subpanel` 外壳;业务组件只保留任务标题、进度、奖励、状态和领取按钮逻辑。
File diff suppressed because one or more lines are too long
@@ -1375,7 +1375,12 @@ function CreationResultRecoveryPanel({
}) {
return (
<div className="flex h-full min-h-0 items-center justify-center px-3 py-6">
<div className="platform-subpanel w-full max-w-sm rounded-[1.5rem] p-5 text-center">
<PlatformSubpanel
as="div"
radius="xl"
padding="none"
className="w-full max-w-sm p-5 text-center"
>
<div className="text-base font-black text-[var(--platform-text-strong)]">
{title}
</div>
@@ -1389,7 +1394,7 @@ function CreationResultRecoveryPanel({
>
{actionLabel}
</PlatformActionButton>
</div>
</PlatformSubpanel>
</div>
);
}
@@ -14629,9 +14634,14 @@ export function PlatformEntryFlowShellImpl({
exit={{ opacity: 0, y: -12 }}
className="flex h-full min-h-0 items-center justify-center"
>
<div className="platform-subpanel rounded-2xl px-5 py-4 text-sm text-[var(--platform-text-base)]">
<PlatformSubpanel
as="div"
radius="sm"
padding="none"
className="px-5 py-4 text-sm text-[var(--platform-text-base)]"
>
{publicWorkDetailError || '正在读取作品详情...'}
</div>
</PlatformSubpanel>
</motion.div>
)}
@@ -14685,9 +14695,14 @@ export function PlatformEntryFlowShellImpl({
>
{detailNavigation.isDetailLoading || !selectedDetailEntry ? (
<div className="flex h-full items-center justify-center">
<div className="platform-subpanel rounded-2xl px-5 py-4 text-sm text-[var(--platform-text-base)]">
<PlatformSubpanel
as="div"
radius="sm"
padding="none"
className="px-5 py-4 text-sm text-[var(--platform-text-base)]"
>
{detailNavigation.detailError || '正在读取作品详情...'}
</div>
</PlatformSubpanel>
</div>
) : selectedDetailEntry.visibility !== 'draft' ? (
<PlatformWorkDetailView
@@ -14826,12 +14841,17 @@ export function PlatformEntryFlowShellImpl({
/>
) : (
<div className="flex h-full items-center justify-center">
<div className="platform-subpanel rounded-2xl px-5 py-4 text-sm text-[var(--platform-text-base)]">
<PlatformSubpanel
as="div"
radius="sm"
padding="none"
className="px-5 py-4 text-sm text-[var(--platform-text-base)]"
>
{sessionController.isLoadingAgentSession
? '正在准备 Agent 共创工作区...'
: sessionController.agentWorkspaceRestoreError ||
'正在恢复创作工作区...'}
</div>
</PlatformSubpanel>
</div>
)}
</UnifiedCreationPage>