This commit is contained in:
marlon-erler
2024-07-22 23:33:57 +02:00
parent ba27c61a29
commit 852acffb7c
10 changed files with 68 additions and 69 deletions
+31 -30
View File
@@ -57,6 +57,23 @@ export default class ChatModel {
return [...this.getMessageDirPath(), id];
};
// handlers
handleMessage = (body: string): void => {
const chatMessage: ChatMessage | null = parseValidObject(
body,
ChatMessageReference
);
if (chatMessage == null) return;
chatMessage.status = ChatMessageStatus.Received;
this.addMessage(chatMessage);
};
handleMessageSent = (chatMessage: ChatMessage): void => {
chatMessage.status = ChatMessageStatus.Sent;
this.addMessage(chatMessage);
};
// sorting
get index(): number {
return this.chatListModel.getIndexOfPrimaryChannel(
@@ -88,6 +105,20 @@ export default class ChatModel {
};
// messaging
addMessage = async (chatMessage: ChatMessage): Promise<void> => {
await this.decryptMessage(chatMessage);
// message
if (chatMessage.body != "") {
const messagePath: string[] = this.getMessagePath(chatMessage.id);
this.storageModel.writeStringifiable(messagePath, chatMessage);
this.chatMessageHandler(chatMessage);
}
// file
this.fileModel.handleStringifiedFileContent(chatMessage.stringifiedFile);
};
sendMessage = async (
body: string,
fileContent?: FileContent<string>
@@ -115,22 +146,6 @@ export default class ChatModel {
return true;
};
handleMessage = (body: string): void => {
const chatMessage: ChatMessage | null = parseValidObject(
body,
ChatMessageReference
);
if (chatMessage == null) return;
chatMessage.status = ChatMessageStatus.Received;
this.addMessage(chatMessage);
};
handleMessageSent = (chatMessage: ChatMessage): void => {
chatMessage.status = ChatMessageStatus.Sent;
this.addMessage(chatMessage);
};
decryptMessage = async (chatMessage: ChatMessage): Promise<void> => {
const decryptedBody: string = await decryptString(
chatMessage.body,
@@ -161,20 +176,6 @@ export default class ChatModel {
this.storageModel.write(this.getColorPath(), this.color);
};
addMessage = async (chatMessage: ChatMessage): Promise<void> => {
await this.decryptMessage(chatMessage);
// message
if (chatMessage.body != "") {
const messagePath: string[] = this.getMessagePath(chatMessage.id);
this.storageModel.writeStringifiable(messagePath, chatMessage);
this.chatMessageHandler(chatMessage);
}
// file
this.fileModel.handleStringifiedFileContent(chatMessage.stringifiedFile);
};
delete = () => {
// untrack
this.chatListModel.untrackChat(this);
+1 -1
View File
@@ -46,7 +46,7 @@ export default class FileModel {
return [...filePath, fileContentId];
};
// handler
// handlers
handleStringifiedFileContent = (stringifiedFileContent: string): void => {
const fileContent: FileContent<string> | null = parseValidObject(
stringifiedFileContent,
+1 -1
View File
@@ -45,7 +45,7 @@ export default class TaskModel {
return [...this.getTaskContainerPath(boardId), fileId];
};
// handler
// handlers
handleFileContent = (fileContent: FileContent<string>): void => {
if (
checkMatchesObjectStructure(fileContent, BoardInfoFileContentReference) ==