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) ==
@@ -4,7 +4,6 @@ import * as React from "bloatless-react";
import { ChatMessage, ChatMessageStatus } from "../../Model/Chat/chatModel";
import ChatViewModel from "./chatViewModel";
import MessagePageViewModel from "../Pages/messagePageViewModel";
export default class ChatMessageViewModel {
+1 -1
View File
@@ -62,7 +62,7 @@ export default class ConnectionViewModel {
this.updatePreviousAddresses();
};
// view methods
// view
showConnectionModal = (): void => {
this.isShowingConnectionModal.value = true;
};
+1 -1
View File
@@ -18,7 +18,7 @@ export default class SettingsViewModel {
this.usernameInput.value == this.settingsModel.username
);
// set
// methods
setName = (): void => {
this.settingsModel.setName(this.usernameInput.value);
this.username.value = this.settingsModel.username;
+1 -1
View File
@@ -35,7 +35,7 @@ export default class StorageViewModel {
this.didMakeChanges.value = true;
};
// view methods
// view
showStorageModal = (): void => {
this.isShowingStorageModal.value = true;
};
@@ -33,7 +33,6 @@ export default class MessagePageViewModel {
}
};
// messaging
sendMessage = (): void => {
if (this.cannotSendMessage.value == true) return;
+2 -2
View File
@@ -84,7 +84,7 @@ export default class SettingsPageViewModel {
};
// load
loadViewRelevantData = (): void => {
loadListRelevantData = (): void => {
this.primaryChannel.value =
this.chatViewModel.chatModel.info.primaryChannel;
@@ -119,6 +119,6 @@ export default class SettingsPageViewModel {
// init
constructor(chatViewModel: ChatViewModel) {
this.chatViewModel = chatViewModel;
this.loadViewRelevantData();
this.loadListRelevantData();
}
}