change handlermanager to use Map to prevent garbage
This commit is contained in:
@@ -173,7 +173,7 @@ export default class ChatViewModel extends ContextHost<ChatPageTypes> {
|
||||
);
|
||||
|
||||
// handlers
|
||||
chatModel.chatMessageHandlerManager.addHandler(
|
||||
chatModel.chatMessageHandlerManager.setHandler(this.chatModel.id,
|
||||
(chatMessage: ChatMessage) => {
|
||||
this.messagePageViewModel.showChatMessage(chatMessage);
|
||||
this.updateReadStatus();
|
||||
@@ -181,7 +181,7 @@ export default class ChatViewModel extends ContextHost<ChatPageTypes> {
|
||||
this.notificationViewModel.showNotification(chatMessage);
|
||||
},
|
||||
);
|
||||
chatModel.reactionHandlerManager.addHandler(
|
||||
chatModel.reactionHandlerManager.setHandler(this.chatModel.id,
|
||||
(reaction: ChatMessageReaction) => {
|
||||
this.messagePageViewModel.handleReaction(reaction);
|
||||
},
|
||||
|
||||
@@ -90,7 +90,8 @@ export default class ConnectionViewModel {
|
||||
constructor(public readonly coreViewModel: CoreViewModel) {
|
||||
this.updatePreviousAddresses();
|
||||
|
||||
coreViewModel.connectionModel.connectionChangeHandlerManager.addHandler(
|
||||
coreViewModel.connectionModel.connectionChangeHandlerManager.setHandler(
|
||||
"connection-view-model",
|
||||
this.connectionChangeHandler,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -100,7 +100,8 @@ export class Context {
|
||||
this.keystrokes.set(key, fn);
|
||||
};
|
||||
|
||||
constructor(public contextDebugDescription: string) {}
|
||||
constructor(public contextDebugDescription: string) {
|
||||
}
|
||||
}
|
||||
|
||||
export class ContextHost<T> extends Context {
|
||||
|
||||
@@ -173,11 +173,11 @@ export default class FileTransferViewModel extends Context {
|
||||
constructor(public readonly coreViewModel: CoreViewModel) {
|
||||
super("file-transfer");
|
||||
|
||||
this.coreViewModel.fileTransferModel.fileHandlerManager.addHandler(
|
||||
this.coreViewModel.fileTransferModel.fileHandlerManager.setHandler("file-transfer-view-model",
|
||||
this.handleReceivedFile,
|
||||
);
|
||||
|
||||
this.coreViewModel.fileTransferModel.readyToSendHandlerManager.addHandler(
|
||||
this.coreViewModel.fileTransferModel.readyToSendHandlerManager.setHandler("file-transfer-view-model",
|
||||
() => this.initiateTransfer(),
|
||||
);
|
||||
|
||||
|
||||
@@ -278,7 +278,7 @@ export default class BoardViewModel extends TaskContainingPageViewModel {
|
||||
});
|
||||
|
||||
// handlers
|
||||
boardsAndTasksModel.taskHandlerManager.addHandler(
|
||||
boardsAndTasksModel.taskHandlerManager.setHandler(this.boardInfo.fileId,
|
||||
(taskFileContent: TaskFileContent) => {
|
||||
if (taskFileContent.boardId != this.boardInfo.fileId) return;
|
||||
this.showTask(taskFileContent);
|
||||
|
||||
@@ -200,7 +200,7 @@ export default class CalendarPageViewModel extends TaskContainingPageViewModel {
|
||||
});
|
||||
|
||||
// handlers
|
||||
boardsAndTasksModel.taskHandlerManager.addHandler(
|
||||
boardsAndTasksModel.taskHandlerManager.setHandler("calendar" + this.chatViewModel.chatModel.id,
|
||||
(taskFileContent: TaskFileContent) => {
|
||||
this.showTask(taskFileContent);
|
||||
},
|
||||
|
||||
@@ -175,7 +175,7 @@ export default class TaskPageViewModel extends ContextHost<string> {
|
||||
this.selectedBoardId.subscribeSilent(this.updateContexts);
|
||||
|
||||
// handlers
|
||||
boardsAndTasksModel.boardHandlerManager.addHandler(
|
||||
boardsAndTasksModel.boardHandlerManager.setHandler("task-page" + this.chatViewModel.chatModel.id,
|
||||
(boardInfoFileContent: BoardInfoFileContent) => {
|
||||
this.showBoardInList(boardInfoFileContent);
|
||||
this.updateBoardIndices();
|
||||
|
||||
Reference in New Issue
Block a user