cleanup, add fileContentHandler for ViewModel

This commit is contained in:
marlon-erler
2024-07-23 00:25:28 +02:00
parent 224c00c8d8
commit 39b50e9254
6 changed files with 109 additions and 49 deletions
+44 -20
View File
@@ -696,6 +696,8 @@
chatModel;
storageModel;
taskModel;
fileContentHandler = () => {
};
// paths
getBasePath = () => {
return StorageModel.getPath(
@@ -729,6 +731,7 @@
const didStore = this.storeFileContent(fileContent);
if (didStore == false) return;
this.taskModel.handleFileContent(fileContent);
this.fileContentHandler(fileContent);
};
// methods
addFileContent = (fileContent) => {
@@ -776,6 +779,10 @@
);
return fileContent;
};
// other
setFileContentHandler = (handler) => {
this.fileContentHandler = handler;
};
// init
constructor(chatModel, storageModel2) {
this.chatModel = chatModel;
@@ -996,9 +1003,6 @@
chatMessage.body = decryptedBody;
chatMessage.stringifiedFile = decryptedFile;
};
setMessageHandler = (handler) => {
this.chatMessageHandler = handler;
};
subscribe = () => {
this.connectionModel.addChannel(this.info.primaryChannel);
};
@@ -1014,6 +1018,10 @@
const dirPath = this.getBasePath();
this.storageModel.removeRecursively(dirPath);
};
// other
setMessageHandler = (handler) => {
this.chatMessageHandler = handler;
};
// load
loadInfo = () => {
const info = this.storageModel.readStringifiable(
@@ -1246,20 +1254,6 @@
// guards
cannotSendMessage;
// methods
addChatMessage = (chatMessage) => {
const chatMessageModel = new ChatMessageViewModel(
this,
chatMessage,
chatMessage.sender == this.chatViewModel.settingsViewModel.username.value
);
const existingChatMessageViewModel = this.chatMessageViewModels.value.get(chatMessage.id);
if (existingChatMessageViewModel != void 0) {
existingChatMessageViewModel.body.value = chatMessage.body;
existingChatMessageViewModel.status.value = chatMessage.status;
} else {
this.chatMessageViewModels.set(chatMessage.id, chatMessageModel);
}
};
sendMessage = () => {
if (this.cannotSendMessage.value == true) return;
this.sendMessageFromBody(this.composingMessage.value);
@@ -1274,10 +1268,25 @@
this.chatViewModel.chatModel.addMessage(chatMessage);
messageViewModel.loadData();
};
// view
showChatMessage = (chatMessage) => {
const chatMessageModel = new ChatMessageViewModel(
this,
chatMessage,
chatMessage.sender == this.chatViewModel.settingsViewModel.username.value
);
const existingChatMessageViewModel = this.chatMessageViewModels.value.get(chatMessage.id);
if (existingChatMessageViewModel != void 0) {
existingChatMessageViewModel.body.value = chatMessage.body;
existingChatMessageViewModel.status.value = chatMessage.status;
} else {
this.chatMessageViewModels.set(chatMessage.id, chatMessageModel);
}
};
// load
loadData = () => {
for (const chatMessage of this.chatViewModel.chatModel.messages) {
this.addChatMessage(chatMessage);
this.showChatMessage(chatMessage);
}
};
// init
@@ -1391,6 +1400,12 @@
[this.newBoardNameInput],
() => this.newBoardNameInput.value == ""
);
// handlers
handleFileContent = (fileContent) => {
if (checkMatchesObjectStructure(fileContent, BoardInfoFileContentReference) == false)
return;
this.showBoard(fileContent);
};
// methods
createBoard = () => {
if (this.cannotCreateBoard.value == true) return;
@@ -1398,6 +1413,10 @@
this.newBoardNameInput.value = "";
this.loadData();
};
// view
showBoard = (boardInfo) => {
this.boards.add(boardInfo);
};
// load
loadData = () => {
this.boards.clear();
@@ -1405,7 +1424,7 @@
for (const boardId of boardIds) {
const boardInfo = this.taskModel.getBoardInfo(boardId);
if (boardInfo == null) continue;
this.boards.add(boardInfo);
this.showBoard(boardInfo);
}
};
// init
@@ -1466,8 +1485,13 @@
this.messagePageViewModel = new MessagePageViewModel(this);
this.settingsPageViewModel = new SettingsPageViewModel(this);
chatModel.setMessageHandler((chatMessage) => {
this.messagePageViewModel.addChatMessage(chatMessage);
this.messagePageViewModel.showChatMessage(chatMessage);
});
chatModel.fileModel.setFileContentHandler(
(fileContent) => {
this.taskPageViewModel.handleFileContent(fileContent);
}
);
this.loadPageSelection();
this.updateIndex();
}