add message filter

This commit is contained in:
marlon-erler
2026-04-11 19:26:13 +00:00
parent dde9214e34
commit 423e84bc14
8 changed files with 217 additions and 113 deletions
@@ -8,11 +8,16 @@ import {
import ChatMessageViewModel from "../Chat/chatMessageViewModel";
import ChatViewModel from "../Chat/chatViewModel";
import CoreViewModel from "../Global/coreViewModel";
import SearchViewModel from "../Utility/searchViewModel";
export default class MessagePageViewModel {
// state
chatMessageViewModels: React.MapState<ChatMessageViewModel> =
new React.MapState();
filteredMessageViewModels: React.ListState<ChatMessageViewModel> =
new React.ListState();
searchViewModel: SearchViewModel<ChatMessageViewModel>;
isFilterModalOpen = new React.State<boolean>(false);
composingMessage: React.State<string> = new React.State("");
// guards
@@ -81,6 +86,10 @@ export default class MessagePageViewModel {
messageViewModel.handleReaction(reaction);
};
openFilterModal = (): void => {
this.isFilterModalOpen.value = true;
};
// load
loadData = (): void => {
this.chatMessageViewModels.clear();
@@ -106,5 +115,12 @@ export default class MessagePageViewModel {
this.chatViewModel.settingsViewModel.username.value == "" ||
this.composingMessage.value == "",
);
this.searchViewModel = new SearchViewModel(
this.chatMessageViewModels,
this.filteredMessageViewModels,
(chatMessageViewModel) => [chatMessageViewModel.body.value],
new React.ListState(),
);
}
}