fix(mobile): member list no longer opens on top of every room on phones (#175)
Room.tsx showed the MembersDrawer on phone widths whenever the persisted desktop preference isPeopleDrawer was true — which is the default — so a new mobile session opened every room behind a full-screen member list. Mobile now uses a transient mobileMembersPanelAtom (header ⋮ → Members toggles it, the drawer's X closes it, leaving the room resets it); the desktop drawer keeps using the setting. Verified with Playwright at 400px. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
This commit is contained in:
@@ -31,6 +31,8 @@ import { MatrixClient, Room, RoomMember } from 'matrix-js-sdk';
|
||||
import { useVirtualizer } from '@tanstack/react-virtual';
|
||||
import classNames from 'classnames';
|
||||
import { useSetAtom } from 'jotai';
|
||||
import { mobileMembersPanelAtom } from '../../state/mobileMembersPanel';
|
||||
import { ScreenSize, useScreenSizeContext } from '../../hooks/useScreenSize';
|
||||
import { MobileTouchTarget } from '../../styles/mobile.css';
|
||||
import { Membership } from '../../../types/matrix/room';
|
||||
|
||||
@@ -79,6 +81,8 @@ type MemberDrawerHeaderProps = {
|
||||
};
|
||||
function MemberDrawerHeader({ room }: MemberDrawerHeaderProps) {
|
||||
const setPeopleDrawer = useSetSetting(settingsAtom, 'isPeopleDrawer');
|
||||
const setMobileMembers = useSetAtom(mobileMembersPanelAtom);
|
||||
const screenSize = useScreenSizeContext();
|
||||
|
||||
return (
|
||||
<Header className={css.MembersDrawerHeader} variant="Background" size="600">
|
||||
@@ -104,7 +108,10 @@ function MemberDrawerHeader({ room }: MemberDrawerHeaderProps) {
|
||||
ref={triggerRef}
|
||||
variant="Background"
|
||||
aria-label="Close member list"
|
||||
onClick={() => setPeopleDrawer(false)}
|
||||
onClick={() => {
|
||||
if (screenSize === ScreenSize.Mobile) setMobileMembers(false);
|
||||
else setPeopleDrawer(false);
|
||||
}}
|
||||
>
|
||||
<Icon src={Icons.Cross} />
|
||||
</IconButton>
|
||||
|
||||
Reference in New Issue
Block a user