( messages: TimelineMessage[], unreadReplyIds: ReadonlySet<string> = new Set(), )
| 193 | } |
| 194 | |
| 195 | export function buildThreadPanelIndex( |
| 196 | messages: TimelineMessage[], |
| 197 | unreadReplyIds: ReadonlySet<string> = new Set(), |
| 198 | ): ThreadPanelIndex { |
| 199 | const messageById = new Map(messages.map((message) => [message.id, message])); |
| 200 | |
| 201 | return { |
| 202 | directChildrenByParentId: buildDirectChildrenByParentId(messages), |
| 203 | descendantStatsByMessageId: buildDescendantStatsByMessageId( |
| 204 | messages, |
| 205 | unreadReplyIds, |
| 206 | messageById, |
| 207 | ), |
| 208 | messageById, |
| 209 | }; |
| 210 | } |
| 211 | |
| 212 | function buildSummaryForDirectReplies( |
| 213 | messageId: string, |
no test coverage detected