implement showing only replies

This commit is contained in:
marlon-erler
2026-09-23 14:44:34 +02:00
parent 787615aab4
commit 4901c0c5c0
7 changed files with 1003 additions and 39 deletions
+21 -2
View File
@@ -16,6 +16,8 @@ export default class ChatMessageViewModel {
dateSent: string = "";
body: React.State<string> = new React.State("");
inlineReply: ChatMessageViewModel | undefined = undefined;
replies: React.MapState<ChatMessageViewModel> = new React.MapState();
replyCount: React.State<number> = React.createProxyState([this.replies], ()=>this.replies.value.size);
status: React.State<ChatMessageStatuses | any> = new React.State<any>(
undefined,
);
@@ -133,6 +135,7 @@ export default class ChatMessageViewModel {
this.messagePageViewModel.chatMessageViewModels.value.get(
this.chatMessage.inlineReplyId,
);
this.inlineReply.replies.set(this.chatMessage.id, this);
}
};
@@ -147,9 +150,16 @@ export default class ChatMessageViewModel {
this.sentByUser = sentByUser;
this.loadData();
let hideForReactions: boolean = false;
let hideForReplyView: boolean = false;
const updateHiding = () => {
this.isHidden.value = hideForReactions || hideForReplyView;
}
this.messagePageViewModel.reactionFilter.subscribe((content) => {
if (content == undefined) {
this.isHidden.value = false;
hideForReactions = false;
return;
}
@@ -181,7 +191,16 @@ export default class ChatMessageViewModel {
}
}
this.isHidden.value = count == 0;
hideForReactions = count == 0;
updateHiding();
});
this.messagePageViewModel.replyViewSelectedMessage.subscribe(selectedMessage => {
if (selectedMessage == undefined) hideForReplyView = false;
else if (selectedMessage == this) hideForReplyView = false;
else if (selectedMessage == this.inlineReply) hideForReplyView = false;
else hideForReplyView = true;
updateHiding();
})
}
}