Skip to content

Commit 2616724

Browse files
committed
enable auto refresh to be paused and to be configured after creation
1 parent f706a7f commit 2616724

File tree

5 files changed

+28
-16
lines changed

5 files changed

+28
-16
lines changed

src/Frontend/src/composables/autoRefresh.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
1-
export default function useAutoRefresh(refreshAction: () => Promise<void>, timeout: number) {
1+
import { ref } from "vue";
2+
3+
/**
4+
* Enables refresh functionality, either auto or manual
5+
* @param refreshAction The action to perform (by default) when refreshing
6+
* @param defaultTimeout The time between refreshes in ms or null if no auto-refresh is desired
7+
*/
8+
export default function useAutoRefresh(refreshAction: () => Promise<void>, defaultTimeout: number | null, startImmediately = true) {
29
let refreshInterval: number | null = null;
10+
const timeout = ref(defaultTimeout);
311

412
function stopTimer() {
513
if (refreshInterval !== null) {
@@ -9,10 +17,12 @@ export default function useAutoRefresh(refreshAction: () => Promise<void>, timeo
917
}
1018

1119
function startTimer() {
20+
if (timeout.value === null) return;
21+
1222
stopTimer();
1323
refreshInterval = window?.setTimeout(() => {
1424
executeAndResetTimer();
15-
}, timeout);
25+
}, timeout.value as number);
1626
}
1727

1828
async function executeAndResetTimer(overrideAction?: () => Promise<void>) {
@@ -24,7 +34,20 @@ export default function useAutoRefresh(refreshAction: () => Promise<void>, timeo
2434
}
2535
}
2636

37+
/**
38+
* Updates the timeout interval between refreshes
39+
* @param updatedTimeout The new time between refreshes in ms or null if no auto-refresh is desired
40+
*/
41+
async function updateTimeout(updatedTimeout: number) {
42+
timeout.value = updatedTimeout;
43+
await executeAndResetTimer();
44+
}
45+
46+
// eslint-disable-next-line promise/catch-or-return,promise/prefer-await-to-then,promise/valid-params
47+
if (startImmediately) executeAndResetTimer().then();
48+
2749
return {
2850
executeAndResetTimer,
51+
updateTimeout,
2952
};
3053
}

src/Frontend/src/stores/AuditStore.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export const useAuditStore = defineStore("AuditStore", () => {
4848
messages.value = [];
4949
throw e;
5050
}
51-
}, 30000);
51+
}, null);
5252

5353
function setMessageFilterString(filter: string) {
5454
messageFilterString.value = filter;
@@ -58,13 +58,9 @@ export const useAuditStore = defineStore("AuditStore", () => {
5858
itemsPerPage.value = value;
5959
}
6060

61-
const refresh = dataRetriever.executeAndResetTimer;
62-
63-
// eslint-disable-next-line promise/catch-or-return,promise/prefer-await-to-then,promise/valid-params
64-
refresh().then();
65-
6661
return {
67-
refresh,
62+
refresh: dataRetriever.executeAndResetTimer,
63+
updateRefreshTimer: dataRetriever.updateTimeout,
6864
sortByInstances,
6965
messages,
7066
messageFilterString,

src/Frontend/src/stores/CustomChecksStore.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ export const useCustomChecksStore = defineStore("CustomChecksStore", () => {
3737
});
3838
}
3939

40-
dataRetriever.executeAndResetTimer();
41-
4240
return {
4341
dismissCustomCheck,
4442
pageNumber,

src/Frontend/src/stores/HeartbeatsStore.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,6 @@ export const useHeartbeatsStore = defineStore("HeartbeatsStore", () => {
170170

171171
const refresh = dataRetriever.executeAndResetTimer;
172172

173-
// eslint-disable-next-line promise/catch-or-return,promise/prefer-await-to-then,promise/valid-params
174-
refresh().then();
175-
176173
return {
177174
refresh,
178175
defaultTrackingInstancesValue,

src/Frontend/src/stores/ThroughputStore.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,6 @@ export const useThroughputStore = defineStore("ThroughputStore", () => {
101101
}
102102
});
103103

104-
refresh();
105-
106104
return {
107105
testResults,
108106
refresh,

0 commit comments

Comments
 (0)