fix(web): code review round 1 remaining UI fixes

- EmojiPanel: add missing 手势/物品 categories, 12-column grid per README §3.3
- DetailColumn: add 投诉举报 row, real ID/region/签名 via new getUserProfile
  API, chevron_right icons now use --color-icon-arrow token (were tertiary
  text color), regroup rows so dividers only sit between sections not every
  row (matches design-code reference exactly)
- MessageBubble/ConversationView: right-clicked message bubble now gets the
  spec's outline while its context menu is open
- ChatListColumn/AppShell: pinned 系统消息/文件助手 rows using confirmed
  bootstrap entries/entry_badges topic names ("sys"/"slf"); route to the
  existing SectionPlaceholder pattern since their own dedicated layouts are
  Phase 8, not built yet

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Your Name
2026-09-08 03:58:06 +08:00
co-authored by Claude Sonnet 5
parent a7da4dc079
commit 93d4077d1e
9 changed files with 191 additions and 42 deletions
+24
View File
@@ -13,10 +13,34 @@ export interface RealnameStatus {
status: 'unverified' | 'pending' | 'verified' | string;
}
/** README §2.1's "固定置顶两项" -- topic names are fixed/well-known on this backend (confirmed:
* docs/IM-前后端对接文档.md:909, `file_assistant.topic:"slf"`, `system_messages.topic:"sys"`), not
* per-user values the client has to discover another way. */
export interface BootstrapEntry {
enabled: boolean;
route: string;
topic?: string;
unread_count: number;
}
export interface BootstrapConfig {
message_policy?: MessagePolicy;
limits?: { max_forward_targets?: number; [key: string]: unknown };
security?: { realname?: RealnameStatus };
entries?: {
new_friends?: BootstrapEntry;
groups?: BootstrapEntry;
file_assistant?: BootstrapEntry;
system_messages?: BootstrapEntry;
};
entry_badges?: {
new_friends_pending_count?: number;
groups_unread_count?: number;
file_assistant_unread_count?: number;
system_unread_count?: number;
workbench_total_unread?: number;
};
system_topic?: { topic: string; type: string };
[key: string]: unknown;
}