diff --git a/ui/src/hooks/usePermissions.ts b/ui/src/hooks/usePermissions.ts index 3e3ed1e7..8c679537 100644 --- a/ui/src/hooks/usePermissions.ts +++ b/ui/src/hooks/usePermissions.ts @@ -62,7 +62,7 @@ interface PermissionsResponse { export function usePermissions() { const { currentMode } = useSessionStore(); - const { setRpcHidProtocolVersion, rpcHidChannel } = useRTCStore(); + const { setRpcHidProtocolVersion, rpcHidChannel, rpcDataChannel } = useRTCStore(); const [permissions, setPermissions] = useState>({}); const [isLoading, setIsLoading] = useState(true); const previousCanControl = useRef(false); @@ -102,8 +102,10 @@ export function usePermissions() { const { send } = useJsonRpc(handleRpcRequest); useEffect(() => { + if (rpcDataChannel?.readyState !== "open") return; pollPermissions(send); - }, [send, currentMode, pollPermissions]); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [currentMode, rpcDataChannel?.readyState]); // Monitor permission changes and re-initialize HID when gaining control useEffect(() => {