ui phase 10
This commit is contained in:
@@ -33,6 +33,7 @@ interface TicketSummaryWire {
|
||||
createdAt: string;
|
||||
lastMessageAt: string | null;
|
||||
unreadCount: number;
|
||||
// REQ-059 gap (extends REQ-028) — not yet on the wire; mapped as absent below until delivered.
|
||||
}
|
||||
|
||||
/** Wire `TicketMessageDto`. `isInternal` is present on the DTO but is `false` in the user view (server-stripped). */
|
||||
@@ -72,6 +73,9 @@ function mapSummary(w: TicketSummaryWire): TicketSummary {
|
||||
// REQ-028 (delivered): the inbox unread badge + last-activity sort now come off the wire.
|
||||
lastMessageAt: w.lastMessageAt,
|
||||
unreadCount: w.unreadCount,
|
||||
// REQ-059 gap — the wire summary has neither field yet; the card degrades gracefully (§3.1).
|
||||
lastMessagePreview: null,
|
||||
lastAuthorRole: null,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -215,6 +219,9 @@ export const ticketsClientApi: TicketsApi = {
|
||||
}),
|
||||
),
|
||||
|
||||
// No wire aggregate yet (REQ-059) — the chrome badge (§3.1) renders only when a signal exists.
|
||||
getUnreadTotal: async (): Promise<number | null> => null,
|
||||
|
||||
// ── Admin lens (b15). Global queue + admin thread (internal INCLUDED) + staff message post. ──
|
||||
listAdminTickets: async (
|
||||
filters: AdminTicketFilters,
|
||||
|
||||
Reference in New Issue
Block a user