diff --git a/res/css/structures/_RightPanel.scss b/res/css/structures/_RightPanel.scss
index ac727dab39c..86628a5d9e4 100644
--- a/res/css/structures/_RightPanel.scss
+++ b/res/css/structures/_RightPanel.scss
@@ -103,7 +103,7 @@ limitations under the License.
mask-position: center;
}
-$dot-size: 8px;
+$dot-size: 7px;
$pulse-color: $alert;
.mx_RightPanel_pinnedMessagesButton {
@@ -111,36 +111,53 @@ $pulse-color: $alert;
mask-image: url('$(res)/img/element-icons/room/pin.svg');
mask-position: center;
}
+}
+.mx_RightPanel_headerButton_unreadIndicator_bg {
+ position: absolute;
+ right: 0;
+ top: 0;
+ margin: 4px;
+ width: $dot-size;
+ height: $dot-size;
+ border-radius: 50%;
+ transform: scale(1.6);
+ transform-origin: center center;
+ background: rgba($background, 1);
+}
- .mx_RightPanel_pinnedMessagesButton_unreadIndicator {
+.mx_RightPanel_headerButton_unreadIndicator {
+ position: absolute;
+ right: 0;
+ top: 0;
+ margin: 4px;
+ width: $dot-size;
+ height: $dot-size;
+ border-radius: 50%;
+ transform: scale(1);
+ background: rgba($pulse-color, 1);
+ box-shadow: 0 0 0 0 rgba($pulse-color, 1);
+ animation: mx_RightPanel_indicator_pulse 2s infinite;
+ animation-iteration-count: 1;
+
+ &.mx_Indicator_gray {
+ background: rgba($input-darker-fg-color, 1);
+ box-shadow: rgba($input-darker-fg-color, 1);
+ }
+
+ &::after {
+ content: "";
position: absolute;
- right: 0;
+ width: inherit;
+ height: inherit;
top: 0;
- margin: 4px;
- width: $dot-size;
- height: $dot-size;
- border-radius: 50%;
+ left: 0;
transform: scale(1);
- background: rgba($pulse-color, 1);
- box-shadow: 0 0 0 0 rgba($pulse-color, 1);
- animation: mx_RightPanel_indicator_pulse 2s infinite;
- animation-iteration-count: 1;
-
- &::after {
- content: "";
- position: absolute;
- width: inherit;
- height: inherit;
- top: 0;
- left: 0;
- transform: scale(1);
- transform-origin: center center;
- animation-name: mx_RightPanel_indicator_pulse_shadow;
- animation-duration: inherit;
- animation-iteration-count: inherit;
- border-radius: 50%;
- background: rgba($pulse-color, 1);
- }
+ transform-origin: center center;
+ animation-name: mx_RightPanel_indicator_pulse_shadow;
+ animation-duration: inherit;
+ animation-iteration-count: inherit;
+ border-radius: 50%;
+ background: inherit;
}
}
diff --git a/src/components/views/right_panel/RoomHeaderButtons.tsx b/src/components/views/right_panel/RoomHeaderButtons.tsx
index 7e8ce5edf9a..a9a0b0e7c3e 100644
--- a/src/components/views/right_panel/RoomHeaderButtons.tsx
+++ b/src/components/views/right_panel/RoomHeaderButtons.tsx
@@ -34,6 +34,8 @@ import { useReadPinnedEvents, usePinnedEvents } from './PinnedMessagesCard';
import { dispatchShowThreadsPanelEvent } from "../../../dispatcher/dispatch-actions/threads";
import SettingsStore from "../../../settings/SettingsStore";
import dis from "../../../dispatcher/dispatcher";
+import { RoomNotificationStateStore } from "../../../stores/notifications/RoomNotificationStateStore";
+import { NotificationColor } from "../../../stores/notifications/NotificationColor";
const ROOM_INFO_PHASES = [
RightPanelPhases.RoomSummary,
@@ -45,7 +47,24 @@ const ROOM_INFO_PHASES = [
RightPanelPhases.Room3pidMemberInfo,
];
-const PinnedMessagesHeaderButton = ({ room, isHighlighted, onClick }) => {
+interface IUnreadIndicatorProps {
+ className: string;
+}
+
+const UnreadIndicator = ({ className }: IUnreadIndicatorProps) => {
+ return