add MessageInfoModal

This commit is contained in:
marlon-erler
2024-07-21 13:13:41 +02:00
parent a0932c2198
commit ca8f1d3348
10 changed files with 409 additions and 78 deletions
+28 -7
View File
@@ -4,27 +4,48 @@ import * as React from "bloatless-react";
import { ChatMessage, ChatModel } from "./chatModel";
import ChatViewModel from "../ViewModel/chatViewModel";
export default class ChatMessageViewModel {
chatModel: ChatModel;
chatViewModel: ChatViewModel;
// data
chatMessage: ChatMessage;
channel: string;
sender: string;
dateSent: string;
body: React.State<string> = new React.State("");
sentByUser: boolean;
// methods
copyMessage = (): void => {
navigator.clipboard.writeText(this.body.value);
};
resendMessage = (): void => {
this.chatViewModel.sendMessageFromBody(this.body.value);
};
decryptMessage = (): void => {
this.chatViewModel.decryptMessage(this);
};
// load
loadData = (): void => {
this.channel = this.chatMessage.channel;
this.sender = this.chatMessage.sender;
this.dateSent = new Date(this.chatMessage.dateSent).toLocaleString();
this.body.value = this.chatMessage.body;
};
// init
constructor(
chatModel: ChatModel,
chatViewModel: ChatViewModel,
chatMessage: ChatMessage,
sentByUser: boolean
) {
this.chatModel = chatModel;
this.chatViewModel = chatViewModel;
this.channel = chatMessage.channel;
this.sender = chatMessage.sender;
this.dateSent = new Date(chatMessage.dateSent).toLocaleString();
this.body.value = chatMessage.body;
this.chatMessage = chatMessage;
this.sentByUser = sentByUser;
this.loadData();
}
}