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
+30 -30
View File
@@ -553,7 +553,7 @@
getTaskReferencePath = (boardId, fileId) => {
return [...this.getTaskContainerPath(boardId), fileId];
};
// handler
// handlers
handleFileContent = (fileContent) => {
if (checkMatchesObjectStructure(fileContent, BoardInfoFileContentReference) == true) {
this.handleBoard(fileContent);
@@ -716,7 +716,7 @@
const filePath = this.getFilePath(fileId);
return [...filePath, fileContentId];
};
// handler
// handlers
handleStringifiedFileContent = (stringifiedFileContent) => {
const fileContent = parseValidObject(
stringifiedFileContent,
@@ -916,6 +916,20 @@
getMessagePath = (id) => {
return [...this.getMessageDirPath(), id];
};
// handlers
handleMessage = (body) => {
const chatMessage = parseValidObject(
body,
ChatMessageReference
);
if (chatMessage == null) return;
chatMessage.status = "received" /* Received */;
this.addMessage(chatMessage);
};
handleMessageSent = (chatMessage) => {
chatMessage.status = "sent" /* Sent */;
this.addMessage(chatMessage);
};
// sorting
get index() {
return this.chatListModel.getIndexOfPrimaryChannel(
@@ -942,6 +956,15 @@
this.storeColor();
};
// messaging
addMessage = async (chatMessage) => {
await this.decryptMessage(chatMessage);
if (chatMessage.body != "") {
const messagePath = this.getMessagePath(chatMessage.id);
this.storageModel.writeStringifiable(messagePath, chatMessage);
this.chatMessageHandler(chatMessage);
}
this.fileModel.handleStringifiedFileContent(chatMessage.stringifiedFile);
};
sendMessage = async (body, fileContent) => {
const senderName = this.settingsModel.username;
if (senderName == "") return false;
@@ -961,19 +984,6 @@
this.connectionModel.sendMessageOrStore(chatMessage);
return true;
};
handleMessage = (body) => {
const chatMessage = parseValidObject(
body,
ChatMessageReference
);
if (chatMessage == null) return;
chatMessage.status = "received" /* Received */;
this.addMessage(chatMessage);
};
handleMessageSent = (chatMessage) => {
chatMessage.status = "sent" /* Sent */;
this.addMessage(chatMessage);
};
decryptMessage = async (chatMessage) => {
const decryptedBody = await decryptString(
chatMessage.body,
@@ -999,15 +1009,6 @@
storeColor = () => {
this.storageModel.write(this.getColorPath(), this.color);
};
addMessage = async (chatMessage) => {
await this.decryptMessage(chatMessage);
if (chatMessage.body != "") {
const messagePath = this.getMessagePath(chatMessage.id);
this.storageModel.writeStringifiable(messagePath, chatMessage);
this.chatMessageHandler(chatMessage);
}
this.fileModel.handleStringifiedFileContent(chatMessage.stringifiedFile);
};
delete = () => {
this.chatListModel.untrackChat(this);
const dirPath = this.getBasePath();
@@ -1259,7 +1260,6 @@
this.chatMessageViewModels.set(chatMessage.id, chatMessageModel);
}
};
// messaging
sendMessage = () => {
if (this.cannotSendMessage.value == true) return;
this.sendMessageFromBody(this.composingMessage.value);
@@ -1357,7 +1357,7 @@
this.chatViewModel.chatListViewModel.loadChats();
};
// load
loadViewRelevantData = () => {
loadListRelevantData = () => {
this.primaryChannel.value = this.chatViewModel.chatModel.info.primaryChannel;
this.color.value = this.chatViewModel.chatModel.color;
this.cannotSetEncryptionKey = createProxyState(
@@ -1379,7 +1379,7 @@
// init
constructor(chatViewModel) {
this.chatViewModel = chatViewModel;
this.loadViewRelevantData();
this.loadListRelevantData();
}
};
@@ -2426,7 +2426,7 @@
this.connectionModel.removeAddress(address);
this.updatePreviousAddresses();
};
// view methods
// view
showConnectionModal = () => {
this.isShowingConnectionModal.value = true;
};
@@ -2649,7 +2649,7 @@
[this.usernameInput],
() => this.usernameInput.value == "" || this.usernameInput.value == this.settingsModel.username
);
// set
// methods
setName = () => {
this.settingsModel.setName(this.usernameInput.value);
this.username.value = this.settingsModel.username;
@@ -2782,7 +2782,7 @@
this.storageModel.removeRecursively(path);
this.didMakeChanges.value = true;
};
// view methods
// view
showStorageModal = () => {
this.isShowingStorageModal.value = true;
};
+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();
}
}