Adam пре 1 месец
родитељ
комит
d70e9fb01e
2 измењених фајлова са 7 додато и 14 уклоњено
  1. 0 13
      packages/app/src/context/global-sync.tsx
  2. 7 1
      packages/app/src/pages/layout.tsx

+ 0 - 13
packages/app/src/context/global-sync.tsx

@@ -82,7 +82,6 @@ function createGlobalSync() {
   })
 
   const children: Record<string, ReturnType<typeof createStore<State>>> = {}
-  const permissionListeners: Set<(info: { directory: string; permission: Permission }) => void> = new Set()
   function child(directory: string) {
     if (!directory) console.error("No directory provided")
     if (!children[directory]) {
@@ -330,7 +329,6 @@ function createGlobalSync() {
       }
       case "permission.updated": {
         const permissions = store.permission[event.properties.sessionID]
-        const isNew = !permissions || !permissions.find((p) => p.id === event.properties.id)
         if (!permissions) {
           setStore("permission", event.properties.sessionID, [event.properties])
         } else {
@@ -347,11 +345,6 @@ function createGlobalSync() {
             }),
           )
         }
-        if (isNew) {
-          for (const listener of permissionListeners) {
-            listener({ directory, permission: event.properties })
-          }
-        }
         break
       }
       case "permission.replied": {
@@ -439,12 +432,6 @@ function createGlobalSync() {
     project: {
       loadSessions,
     },
-    permission: {
-      onUpdated(listener: (info: { directory: string; permission: Permission }) => void) {
-        permissionListeners.add(listener)
-        return () => permissionListeners.delete(listener)
-      },
-    },
   }
 }
 

+ 7 - 1
packages/app/src/pages/layout.tsx

@@ -118,7 +118,13 @@ export default function Layout(props: ParentProps) {
   })
 
   onMount(() => {
-    const unsub = globalSync.permission.onUpdated(({ directory, permission }) => {
+    const seenPermissions = new Set<string>()
+    const unsub = globalSDK.event.listen((e) => {
+      if (e.details?.type !== "permission.updated") return
+      const directory = e.name
+      const permission = e.details.properties
+      if (seenPermissions.has(permission.id)) return
+      seenPermissions.add(permission.id)
       const currentDir = params.dir ? base64Decode(params.dir) : undefined
       const currentSession = params.id
       if (directory === currentDir && permission.sessionID === currentSession) return