mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-16 05:04:57 +08:00
Fix home/all rooms context menu in space panel (#11350)
* Fix home/all rooms context menu in space panel * Fix tests
This commit is contained in:
parent
5d9f5ccf0b
commit
2f2067e434
@ -43,13 +43,17 @@ import PosthogTrackers from "../../../PosthogTrackers";
|
||||
import { ViewRoomPayload } from "../../../dispatcher/payloads/ViewRoomPayload";
|
||||
|
||||
interface IProps extends IContextMenuProps {
|
||||
space: Room;
|
||||
space?: Room;
|
||||
hideHeader?: boolean;
|
||||
}
|
||||
|
||||
const SpaceContextMenu: React.FC<IProps> = ({ space, hideHeader, onFinished, ...props }) => {
|
||||
const cli = useContext(MatrixClientContext);
|
||||
const userId = cli.getUserId()!;
|
||||
const userId = cli.getSafeUserId();
|
||||
const videoRoomsEnabled = useFeatureEnabled("feature_video_rooms");
|
||||
const elementCallVideoRoomsEnabled = useFeatureEnabled("feature_element_call_video_rooms");
|
||||
|
||||
if (!space) return null;
|
||||
|
||||
let inviteOption: JSX.Element | null = null;
|
||||
if (space.getJoinRule() === "public" || space.canInvite(userId)) {
|
||||
@ -135,9 +139,6 @@ const SpaceContextMenu: React.FC<IProps> = ({ space, hideHeader, onFinished, ...
|
||||
);
|
||||
}
|
||||
|
||||
const videoRoomsEnabled = useFeatureEnabled("feature_video_rooms");
|
||||
const elementCallVideoRoomsEnabled = useFeatureEnabled("feature_element_call_video_rooms");
|
||||
|
||||
const hasPermissionToAddSpaceChild = space.currentState.maySendStateEvent(EventType.SpaceChild, userId);
|
||||
const canAddRooms = hasPermissionToAddSpaceChild && shouldShowComponent(UIComponent.CreateRooms);
|
||||
const canAddVideoRooms = canAddRooms && videoRoomsEnabled;
|
||||
|
@ -121,7 +121,7 @@ export const SpaceButton: React.FC<IButtonProps> = ({
|
||||
}
|
||||
|
||||
let contextMenu: JSX.Element | undefined;
|
||||
if (space && menuDisplayed && handle.current && ContextMenuComponent) {
|
||||
if (menuDisplayed && handle.current && ContextMenuComponent) {
|
||||
contextMenu = (
|
||||
<ContextMenuComponent
|
||||
{...toRightOf(handle.current.getBoundingClientRect(), 0)}
|
||||
|
@ -56,6 +56,7 @@ describe("<SpaceContextMenu />", () => {
|
||||
|
||||
const mockClient = {
|
||||
getUserId: jest.fn().mockReturnValue(userId),
|
||||
getSafeUserId: jest.fn().mockReturnValue(userId),
|
||||
} as unknown as Mocked<MatrixClient>;
|
||||
|
||||
const makeMockSpace = (props = {}) =>
|
||||
@ -86,6 +87,7 @@ describe("<SpaceContextMenu />", () => {
|
||||
beforeEach(() => {
|
||||
jest.resetAllMocks();
|
||||
mockClient.getUserId.mockReturnValue(userId);
|
||||
mockClient.getSafeUserId.mockReturnValue(userId);
|
||||
});
|
||||
|
||||
it("renders menu correctly", () => {
|
||||
|
Loading…
Reference in New Issue
Block a user