Add Shared Media drawer and harden same-room navigation.
Widen the media panel, support skinny full-page mode, keep jump-to-latest and return-to-previous reliable, and stop same-room event jumps from remounting the outlet or yanking the sidebar.
This commit is contained in:
@@ -145,11 +145,23 @@ export function Search({ requestClose }: SearchProps) {
|
||||
|
||||
const getTargetStr: SearchItemStrGetter<string> = useCallback(
|
||||
(roomId: string) => {
|
||||
const roomName = getRoom(roomId)?.name ?? roomId;
|
||||
const room = getRoom(roomId);
|
||||
const roomName = room?.name ?? roomId;
|
||||
if (mDirects.has(roomId)) {
|
||||
const targetUserId = getDmUserId(roomId, getRoom, mx.getSafeUserId());
|
||||
const targetUsername = targetUserId && getMxIdLocalPart(targetUserId);
|
||||
if (targetUsername) return [roomName, targetUsername];
|
||||
if (!targetUserId) return roomName;
|
||||
const targetUsername = getMxIdLocalPart(targetUserId);
|
||||
const targetServer = getMxIdServer(targetUserId);
|
||||
const member = room?.getMember(targetUserId);
|
||||
const displayName = member?.name || member?.rawDisplayName;
|
||||
return [
|
||||
roomName,
|
||||
displayName,
|
||||
targetUsername,
|
||||
targetUserId,
|
||||
targetServer ? `@${targetUsername}:${targetServer}` : undefined,
|
||||
targetServer,
|
||||
].filter((s): s is string => typeof s === 'string' && s.length > 0);
|
||||
}
|
||||
return roomName;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user