add handlers to ConnectionViewModel

This commit is contained in:
marlon-erler
2024-07-20 22:44:23 +02:00
parent 5df6577a8e
commit 6b586224c4
4 changed files with 47 additions and 8 deletions
+21 -3
View File
@@ -20,6 +20,9 @@ export default class ConnectionModel {
return this.udn.ws?.url;
}
connectionChangeHandler: () => void = () => {};
messageHandler: (data: Message) => void = () => {};
// connection
connect = (address: string): void => {
this.udn.connect(address);
@@ -29,15 +32,21 @@ export default class ConnectionModel {
this.udn.disconnect();
};
handleMessage = (data: Message): void => {}
handleMessage = (data: Message): void => {
this.messageHandler(data);
};
handleConnectionChange = (): void => {
console.log("connection status:", this.isConnected, this.address);
this.connectionChangeHandler();
if (this.isConnected == false) return;
if (this.address) {
this.storeAddress(this.address);
}
this.sendMessagesInOutbox();
};
// outbox
@@ -54,7 +63,7 @@ export default class ConnectionModel {
if (message == undefined) continue;
if (checkIsValidObject(message) == false) continue;
message.push(message);
messages.push(message);
}
return messages;
@@ -115,6 +124,15 @@ export default class ConnectionModel {
return this.storageModel.list(dirPath);
}
// handlers
setConnectionChangeHandler = (handler: () => void): void => {
this.connectionChangeHandler = handler;
};
setMessageHandler = (handler: (data: Message) => void): void => {
this.messageHandler = handler;
};
// setup
constructor(storageModel: StorageModel) {
// create frontend
@@ -132,4 +150,4 @@ export default class ConnectionModel {
this.handleConnectionChange();
};
}
}
}