From 2d1d4ad406228ef62ab078724cb7d1556e003d01 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 13 Jul 2026 16:03:19 +0800
Subject: [PATCH] chore: point independent project metadata to unified root

---
 C1.source/privatevoice.src/frontend/src/components/settings/PermissionsPage.svelte |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/C1.source/privatevoice.src/frontend/src/components/settings/PermissionsPage.svelte b/C1.source/privatevoice.src/frontend/src/components/settings/PermissionsPage.svelte
index e2b9d09..e074eb2 100644
--- a/C1.source/privatevoice.src/frontend/src/components/settings/PermissionsPage.svelte
+++ b/C1.source/privatevoice.src/frontend/src/components/settings/PermissionsPage.svelte
@@ -14,11 +14,18 @@
 
   let statuses = $state<PermissionStatus[]>([])
   let loading = $state(true)
+  let refreshTimeout: number | null = null
 
   onMount(() => {
     refresh()
     const timer = window.setInterval(refresh, 2500)
-    return () => window.clearInterval(timer)
+    return () => {
+      window.clearInterval(timer)
+      if (refreshTimeout !== null) {
+        window.clearTimeout(refreshTimeout)
+        refreshTimeout = null
+      }
+    }
   })
 
   async function refresh() {
@@ -40,7 +47,13 @@
         await Call.ByName('voicesnap/services.PermissionService.OpenSettings', id)
       } catch {}
     }
-    window.setTimeout(refresh, 800)
+    if (refreshTimeout !== null) {
+      window.clearTimeout(refreshTimeout)
+    }
+    refreshTimeout = window.setTimeout(() => {
+      refreshTimeout = null
+      refresh()
+    }, 800)
   }
 
   function sortStatuses(items: PermissionStatus[]) {

--
Gitblit v1.9.3