fix(dm): render system messages in sidebar preview instead of raw JSON
DmLastMessagePreview lacked a `type` field, so the sidebar rendered
`lastMessage.content` verbatim — surfacing JSON like
`{"event":"space_invite",...}` for space invites and member-add events.
Adds `type` to the preview payload (populated server-side from
`dm_messages.type`) and routes all sidebar call sites through a single
`formatDmSidebarPreview` helper that renders human-readable text for
each system event and skips the group `Sender:` prefix on system rows.
This commit is contained in:
@@ -294,6 +294,12 @@ export interface DmLastMessagePreview {
|
||||
userId: string;
|
||||
content: string | null;
|
||||
createdAt: number;
|
||||
/**
|
||||
* 'system' for membership/lifecycle JSON payloads (member_added, member_removed,
|
||||
* owner_changed, space_invite). 'user' (or omitted) for normal user-authored
|
||||
* messages. The sidebar renderer relies on this to avoid showing raw JSON.
|
||||
*/
|
||||
type?: 'user' | 'system';
|
||||
attachments?: Array<{ type: string; filename: string }>;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user