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 + + + )} +