|
|
@@ -65,6 +65,7 @@ const editClient = ref<SyncClient>();
|
|
|
const editDeviceId = ref<number>();
|
|
|
const editVisible = ref(false);
|
|
|
const refreshTimer = ref<ReturnType<typeof setTimeout>>();
|
|
|
+const versionRefreshTimer = ref<ReturnType<typeof setTimeout>>();
|
|
|
const deviceWindows = new Map<number, Window>();
|
|
|
|
|
|
const columns = [
|
|
|
@@ -356,6 +357,13 @@ const clearRefreshTimer = () => {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+const clearVersionRefreshTimer = () => {
|
|
|
+ if (versionRefreshTimer.value) {
|
|
|
+ clearTimeout(versionRefreshTimer.value);
|
|
|
+ versionRefreshTimer.value = undefined;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
const scheduleRefresh = () => {
|
|
|
clearRefreshTimer();
|
|
|
if (!autoRefresh.value) {
|
|
|
@@ -364,6 +372,11 @@ const scheduleRefresh = () => {
|
|
|
refreshTimer.value = setTimeout(fetchClients, 30 * 1000);
|
|
|
};
|
|
|
|
|
|
+const scheduleVersionRefresh = () => {
|
|
|
+ clearVersionRefreshTimer();
|
|
|
+ versionRefreshTimer.value = setTimeout(fetchLatestClientVersion, 60 * 1000);
|
|
|
+};
|
|
|
+
|
|
|
const fetchClients = async () => {
|
|
|
loading.value = true;
|
|
|
try {
|
|
|
@@ -392,6 +405,9 @@ const fetchLatestClientVersion = async () => {
|
|
|
catch (error) {
|
|
|
console.error('Failed to fetch latest client version:', error);
|
|
|
}
|
|
|
+ finally {
|
|
|
+ scheduleVersionRefresh();
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
const openEditClient = (client: SyncClientRow) => {
|
|
|
@@ -451,6 +467,7 @@ onMounted(() => {
|
|
|
|
|
|
onUnmounted(() => {
|
|
|
clearRefreshTimer();
|
|
|
+ clearVersionRefreshTimer();
|
|
|
});
|
|
|
</script>
|
|
|
|