diff --git a/src/app/features/lobby/RoomItem.tsx b/src/app/features/lobby/RoomItem.tsx index c6aea890d..c946dba26 100644 --- a/src/app/features/lobby/RoomItem.tsx +++ b/src/app/features/lobby/RoomItem.tsx @@ -97,6 +97,31 @@ function RoomJoinButton({ roomId, via }: RoomJoinButtonProps) { ); } +// Open the full preview page (JoinBeforeNavigate) for an un-joined room. onOpen +// reads data-room-id and navigates to the space→room path, which — because the +// room isn't joined — renders the preview card instead of the timeline. +function RoomPreviewChip({ + roomId, + onOpen, +}: { + roomId: string; + onOpen: MouseEventHandler; +}) { + return ( + + + + ); +} + function RoomProfileLoading() { return ( @@ -365,7 +390,10 @@ export const RoomItemCard = as<'div', RoomItemCardProps>( ) : ( - + + + + ) } /> @@ -409,7 +437,12 @@ export const RoomItemCard = as<'div', RoomItemCardProps>( memberCount={summary.num_joined_members} suggested={content.suggested} joinRule={summary.join_rule} - options={} + options={ + + + + + } /> )} diff --git a/src/app/pages/client/explore/Featured.tsx b/src/app/pages/client/explore/Featured.tsx index e8c836554..ec23b210d 100644 --- a/src/app/pages/client/explore/Featured.tsx +++ b/src/app/pages/client/explore/Featured.tsx @@ -70,6 +70,8 @@ export function FeaturedRooms() { name={roomSummary?.name} topic={roomSummary?.topic} memberCount={roomSummary?.num_joined_members} + joinRule={roomSummary?.join_rule} + encrypted={!!roomSummary?.['im.nheko.summary.encryption']} onView={navigateSpace} renderTopicViewer={(name, topic, requestClose) => ( (