空态分出第三种空 —— 「没接通」不许诺,别让人白等

上一版补占位时漏了一件:占位分**两种**空,我只做了一种。

「沟通记录」的注释写着「明说没接,不伪装成暂无数据」,正文却写「与客户、供应商的
邮件和消息都会归到这里」—— 注释和文案自相矛盾。按单归档的投影根本没做,`outbound_mail`
至今只有 channel 建表和 reset-runs 碰过,**任何界面都读不到**。所以在那一屏等下去
永远不会有内容,而文案在请人等。

改成如实说:「往来记录还没接通」。并给 EmptyState 加第三色调,让三种空长得不一样:

  ok     办完了、清空了 —— 这是好事(待批清空、无未读)
  brand  还没发生,但通路是通的 —— 等着就会有(还没有任务、还没有成果)
  muted  通路还没接 —— 等下去也不会有。灰环灰图标,视觉上就不许诺

`muted` 是新加的真色调(不是我编的类名 —— union 与 CSS 一并落地)。
文案也不把人指去「消息」面:那里同样读不到外部邮件,指过去是第二个谎。

顺手把十处空态过了一遍:其余 brand 都名副其实(起单、聚合、纪要、成果的装配都通),
只有沟通记录这一处在许诺。债务簿该条对账。

tsc ✓ eslint ✓ depcruise ✓ 481 测试 ✓

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
2026-07-28 10:32:23 +08:00
co-authored by Claude Opus 5
parent c59e73754b
commit f7b6a3a107
4 changed files with 29 additions and 5 deletions
+6 -1
View File
@@ -190,6 +190,11 @@ export function NoteBand({ children }: { children: ReactNode }) {
*
* **空态是产品的常态,不是缺陷**:文案一律从用人的角度写「你手上现在没有什么」,
* 而不是从开发角度写「这块还没做」—— 后者是给自己看的,前者才是用户要的那句话。
*
* 三个色调分的是**三种空**,不是三种好看:
* - `ok` 办完了、清空了 —— 这是好事(待批清空、无未读)
* - `brand` 还没发生,但通路是通的 —— 等着就会有(还没有任务、还没有成果)
* - `muted` 通路还没接 —— 等下去也不会有内容。灰着,别让人白等
*/
export function EmptyState({
ico,
@@ -199,7 +204,7 @@ export function EmptyState({
hint,
}: {
ico: string;
tone: 'ok' | 'brand';
tone: 'ok' | 'brand' | 'muted';
title: string;
desc: string;
hint?: string | undefined;