Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/room-message-preview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: minor
---

Show topic and last-message preview below room and DM names in the sidebar.
13 changes: 12 additions & 1 deletion src/app/features/room-nav/RoomNavItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ import { useAutoDiscoveryInfo } from '$hooks/useAutoDiscoveryInfo';
import { livekitSupport } from '$hooks/useLivekitSupport';
import { Presence, useUserPresence } from '$hooks/useUserPresence';
import { AvatarPresence, PresenceBadge } from '$components/presence';
import { useRoomLastMessage } from '$hooks/useRoomLastMessage';
import { RoomNavUser } from './RoomNavUser';
import { SidebarUnreadBadge } from '$components/sidebar';

Expand Down Expand Up @@ -266,6 +267,9 @@ type RoomNavItemProps = {
customDMCards?: boolean;
hideText?: boolean;
joinCallOnSingleClick?: boolean;
roomTopicPreview?: boolean;
roomMessagePreview?: boolean;
dmMessagePreview?: boolean;
};

export function RoomNavItem({
Expand All @@ -274,6 +278,9 @@ export function RoomNavItem({
showAvatar,
direct,
customDMCards,
roomTopicPreview = false,
roomMessagePreview = false,
dmMessagePreview = true,
notificationMode,
linkPath,
hideText,
Expand All @@ -297,8 +304,12 @@ export function RoomNavItem({
const matrixRoomName = useRoomName(room);
const roomName = (dmUserId && nicknames[dmUserId]) || matrixRoomName;
const presence = useUserPresence(dmUserId ?? '');
const showPreview = direct ? dmMessagePreview : roomMessagePreview;
const lastMessage = useRoomLastMessage(showPreview ? room : undefined, mx);
const getRoomTopic = useRoomTopic(room);
const roomTopic = direct ? ((customDMCards && getRoomTopic) ?? presence?.status) : undefined;
const roomTopic = direct
? (customDMCards && getRoomTopic) || lastMessage || presence?.status
: (roomTopicPreview && getRoomTopic) || (roomMessagePreview ? lastMessage : undefined);

const { navigateRoom } = useRoomNavigate();
const navigate = useNavigate();
Expand Down
51 changes: 51 additions & 0 deletions src/app/features/settings/cosmetics/Themes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -784,12 +784,18 @@ export function Appearance({
const [sidebarSelector, setSidebarSelector] = useState('roomSidebarWidth');
const [twitterEmoji, setTwitterEmoji] = useSetting(settingsAtom, 'twitterEmoji');
const [customDMCards, setCustomDMCards] = useSetting(settingsAtom, 'customDMCards');
const [dmMessagePreview, setDmMessagePreview] = useSetting(settingsAtom, 'dmMessagePreview');
const [showEasterEggs, setShowEasterEggs] = useSetting(settingsAtom, 'showEasterEggs');
const [themeBrowserOpen, setThemeBrowserOpen] = useState(false);
const [closeFoldersByDefault, setCloseFoldersByDefault] = useSetting(
settingsAtom,
'closeFoldersByDefault'
);
const [roomTopicPreview, setRoomTopicPreview] = useSetting(settingsAtom, 'roomTopicPreview');
const [roomMessagePreview, setRoomMessagePreview] = useSetting(
settingsAtom,
'roomMessagePreview'
);

return (
<Box direction="Column" gap="700">
Expand Down Expand Up @@ -842,6 +848,51 @@ export function Appearance({
/>
</SequenceCard>

<SequenceCard className={SequenceCardStyle} variant="SurfaceVariant" direction="Column">
<SettingTile
title="DM Message Preview"
focusId="dm-message-preview"
description="Show a preview of the last message below DM room names."
after={
<Switch
variant="Primary"
value={dmMessagePreview}
onChange={setDmMessagePreview}
/>
}
/>
</SequenceCard>

<SequenceCard className={SequenceCardStyle} variant="SurfaceVariant" direction="Column">
<SettingTile
title="Room Topic Preview"
focusId="room-topic-preview"
description="Show the room topic below room names in spaces and Home."
after={
<Switch
variant="Primary"
value={roomTopicPreview}
onChange={setRoomTopicPreview}
/>
}
/>
</SequenceCard>

<SequenceCard className={SequenceCardStyle} variant="SurfaceVariant" direction="Column">
<SettingTile
title="Room Message Preview"
focusId="room-message-preview"
description="Show the latest message below room names in spaces and Home."
after={
<Switch
variant="Primary"
value={roomMessagePreview}
onChange={setRoomMessagePreview}
/>
}
/>
</SequenceCard>

<SequenceCard className={SequenceCardStyle} variant="SurfaceVariant" direction="Column">
<SettingTile
title="Show Easter Eggs"
Expand Down
Loading