From 4756bfdc578c519ef889903ba7e86d0c1fdb294d Mon Sep 17 00:00:00 2001 From: Max Litruv Boonzaayer Date: Fri, 13 Mar 2026 00:54:12 +1100 Subject: [PATCH] feat: add thread preview functionality to RoomNavItem component --- src/app/features/room-nav/RoomNavItem.tsx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/app/features/room-nav/RoomNavItem.tsx b/src/app/features/room-nav/RoomNavItem.tsx index e21621c..9ca77dc 100644 --- a/src/app/features/room-nav/RoomNavItem.tsx +++ b/src/app/features/room-nav/RoomNavItem.tsx @@ -282,6 +282,20 @@ export function RoomNavItem({ const roomToParents = useAtomValue(roomToParentsAtom); const mDirects = useAtomValue(mDirectAtom); + // Get first participated thread for preview + const firstThreadPreview = (() => { + const threads = room.getThreads(); + const participatedThreads = threads.filter((thread) => thread.hasCurrentUserParticipated); + if (participatedThreads.length === 0) return undefined; + + const firstThread = participatedThreads[0]; + const rootEvent = firstThread.rootEvent; + if (!rootEvent) return undefined; + + const rootBody = rootEvent.getContent()?.body ?? ''; + return rootBody; + })(); + // Get parent space for DMs const parentSpaceInfo = (() => { if (!direct || !mDirects.has(room.roomId)) return undefined; @@ -360,10 +374,15 @@ export function RoomNavItem({ /> )} - + {room.name} + {firstThreadPreview && ( + + ╰ {firstThreadPreview} + + )} {!optionsVisible && !unread && !selected && typingMember.length > 0 && (