diff --git a/lib/hooks/relationship-hooks.js b/lib/hooks/relationship-hooks.js --- a/lib/hooks/relationship-hooks.js +++ b/lib/hooks/relationship-hooks.js @@ -105,7 +105,7 @@ const mapUsersSupportingThickThreads = useUsersSupportThickThreads(); - const waitForConnection = useWaitForConnection(); + const waitForConnection = useWaitForConnection('tunnelbroker_and_keyserver'); const [operations, setOperations] = React.useState>([]); const isSendingRobotextToThickThread = React.useRef>(new Set()); diff --git a/lib/hooks/wait-for-connection.js b/lib/hooks/wait-for-connection.js --- a/lib/hooks/wait-for-connection.js +++ b/lib/hooks/wait-for-connection.js @@ -9,7 +9,9 @@ const WAITING_TIMEOUT = 5 * 1000; // 5 seconds -function useWaitForConnection(): () => Promise { +function useWaitForConnection( + type: 'tunnelbroker' | 'tunnelbroker_and_keyserver', +): () => Promise { const { socketState } = useTunnelbroker(); const connection = useSelector( @@ -21,11 +23,20 @@ >([]); const isConnectedOrUnreachable = React.useMemo(() => { + if (type === 'tunnelbroker') { + return socketState.connected; + } + return ( socketState.connected && (connection?.unreachable || connection?.status === 'connected') ); - }, [connection?.status, connection?.unreachable, socketState.connected]); + }, [ + connection?.status, + connection?.unreachable, + socketState.connected, + type, + ]); React.useEffect(() => { if (isConnectedOrUnreachable) {