From 7d54eef95b0adafa3a66b33e370bcd3d15c5154b Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 22 Mar 2025 19:22:29 +1100 Subject: [PATCH] Add room notification mode switcher in room header menu (#2284) --- src/app/features/room/RoomViewHeader.tsx | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/app/features/room/RoomViewHeader.tsx b/src/app/features/room/RoomViewHeader.tsx index 17a69fd..352ae4b 100644 --- a/src/app/features/room/RoomViewHeader.tsx +++ b/src/app/features/room/RoomViewHeader.tsx @@ -20,6 +20,7 @@ import { PopOut, RectCords, Badge, + Spinner, } from 'folds'; import { useNavigate } from 'react-router-dom'; import { JoinRule, Room } from 'matrix-js-sdk'; @@ -58,6 +59,12 @@ import { useMediaAuthentication } from '../../hooks/useMediaAuthentication'; import { useRoomPinnedEvents } from '../../hooks/useRoomPinnedEvents'; import { RoomPinMenu } from './room-pin-menu'; import { useOpenRoomSettings } from '../../state/hooks/roomSettings'; +import { RoomNotificationModeSwitcher } from '../../components/RoomNotificationSwitcher'; +import { + getRoomNotificationMode, + getRoomNotificationModeIcon, + useRoomsNotificationPreferencesContext, +} from '../../hooks/useRoomsNotificationPreferences'; type RoomMenuProps = { room: Room; @@ -70,6 +77,8 @@ const RoomMenu = forwardRef(({ room, requestClose const powerLevels = usePowerLevelsContext(); const { getPowerLevel, canDoAction } = usePowerLevelsAPI(powerLevels); const canInvite = canDoAction('invite', getPowerLevel(mx.getUserId() ?? '')); + const notificationPreferences = useRoomsNotificationPreferencesContext(); + const notificationMode = getRoomNotificationMode(notificationPreferences, room.roomId); const handleMarkAsRead = () => { markAsRead(mx, room.roomId, hideActivity); @@ -109,6 +118,27 @@ const RoomMenu = forwardRef(({ room, requestClose Mark as Read + + {(handleOpen, opened, changing) => ( + + ) : ( + + ) + } + radii="300" + aria-pressed={opened} + onClick={handleOpen} + > + + Notifications + + + )} +