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:
2026-07-23 14:52:01 +10:00
parent 61d41900cc
commit 9509a9705e
30 changed files with 1749 additions and 168 deletions

View File

@@ -0,0 +1,17 @@
import { atom } from 'jotai';
/** Session flag for the Shared Media side drawer (mutually exclusive with Members). */
export const isMediaDrawerAtom = atom(false);
const scrollTops = new Map<string, number>();
export const getMediaDrawerScrollTop = (roomId: string): number | undefined =>
scrollTops.get(roomId);
export const setMediaDrawerScrollTop = (roomId: string, top: number): void => {
scrollTops.set(roomId, top);
};
export const clearMediaDrawerScrollTop = (roomId: string): void => {
scrollTops.delete(roomId);
};