diff --git a/src/frontend/components/App.vue b/src/frontend/components/App.vue index e0e7e58..3fb0518 100644 --- a/src/frontend/components/App.vue +++ b/src/frontend/components/App.vue @@ -267,6 +267,8 @@ export default { data() { return { + reloadInterval: null, + isShowingMyIdentitySection: true, isShowingAnnounceSection: true, isShowingCallsSection: true, @@ -280,8 +282,12 @@ export default { }; }, beforeUnmount() { + + clearInterval(this.reloadInterval); + // stop listening for websocket messages WebSocketConnection.off("message", this.onWebsocketMessage); + }, mounted() { @@ -293,7 +299,7 @@ export default { // fixme: clear interval on unmount // update info every few seconds - setInterval(() => { + this.reloadInterval = setInterval(() => { this.updateCallsList(); }, 3000); diff --git a/src/frontend/components/about/AboutPage.vue b/src/frontend/components/about/AboutPage.vue index 344b14f..81d1d04 100644 --- a/src/frontend/components/about/AboutPage.vue +++ b/src/frontend/components/about/AboutPage.vue @@ -127,8 +127,6 @@ export default { formatBytes: function(bytes) { return Utils.formatBytes(bytes); }, - }, - computed: { isElectron() { return ElectronUtils.isElectron(); }, diff --git a/src/frontend/components/interfaces/InterfacesPage.vue b/src/frontend/components/interfaces/InterfacesPage.vue index 5204866..022c431 100644 --- a/src/frontend/components/interfaces/InterfacesPage.vue +++ b/src/frontend/components/interfaces/InterfacesPage.vue @@ -186,18 +186,21 @@ export default { return { interfaces: {}, interfaceStats: {}, + reloadInterval: null, }; }, + beforeUnmount() { + clearInterval(this.reloadInterval); + }, mounted() { this.loadInterfaces(); this.updateInterfaceStats(); - // fixme: clear interval on unmount // update info every few seconds - setInterval(() => { + this.reloadInterval = setInterval(() => { this.updateInterfaceStats(); - }, 3000); + }, 1000); }, methods: { @@ -209,13 +212,8 @@ export default { }, async loadInterfaces() { try { - - // fetch interfaces const response = await window.axios.get(`/api/v1/reticulum/interfaces`); - - // update ui this.interfaces = response.data.interfaces; - } catch(e) { // do nothing if failed to load interfaces } @@ -352,11 +350,11 @@ export default { formatBytes: function(bytes) { return Utils.formatBytes(bytes); }, - }, - computed: { isElectron() { return ElectronUtils.isElectron(); }, + }, + computed: { interfacesWithStats() { const results = []; for(const [interfaceName, iface] of Object.entries(this.interfaces)){