link chat unread status to message page being open

This commit is contained in:
marlon-erler
2026-04-02 19:22:10 +00:00
parent 37dcb81365
commit c9ac732da5
8 changed files with 78 additions and 12 deletions
+8 -1
View File
@@ -21,5 +21,12 @@ export function ChatViewToggleButton(
() => chatViewModel.selectedPage.value == page,
);
return RibbonButton(label, icon, isSelected, select);
const isHighlighted = new React.State(false);
if (page == ChatPageType.Messages) {
chatViewModel.hasUnreadMessages.subscribe(
(hasUnreadMessages) => (isHighlighted.value = hasUnreadMessages),
);
}
return RibbonButton(label, icon, isSelected, select, isHighlighted);
}
+2
View File
@@ -9,12 +9,14 @@ export function RibbonButton(
icon: string,
isSelected: React.State<boolean>,
select: () => void,
isHighlighted: React.State<boolean> = new React.State(false),
) {
return (
<button
class="ribbon-button"
aria-label={label}
toggle:selected={isSelected}
toggle:highlight={isHighlighted}
on:click={select}
>
<span class="icon">{icon}</span>
+6
View File
@@ -214,6 +214,12 @@ body[showing-chat] #chat-page-wrapper {
width: 100%;
}
#chat-page > div > #ribbon .ribbon-button[highlight] {
background: rgb(255, 217, 0) !important;
color: black;
outline-color: black;
}
#chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar {
height: var(--ribbon-size);
+5 -1
View File
@@ -40,7 +40,11 @@ export function ChatPage(chatViewModel: ChatViewModel) {
const value = chatViewModel.notificationViewModel.marquee.value;
if (value == undefined) return <span></span>;
return (
<span on:click={chatViewModel.notificationViewModel.openNotification}>
<span
on:click={
chatViewModel.notificationViewModel.openNotification
}
>
<b>{value.sender}</b>
<span class="secondary">{value.chat}: </span>
<span>{value.body}</span>