diff --git a/lib/hooks/disconnected-bar.js b/lib/hooks/disconnected-bar.js --- a/lib/hooks/disconnected-bar.js +++ b/lib/hooks/disconnected-bar.js @@ -4,66 +4,26 @@ import * as React from 'react'; import { connectionSelector } from '../selectors/keyserver-selectors.js'; -import { - updateDisconnectedBarActionType, - type ConnectionStatus, -} from '../types/socket-types.js'; +import { updateDisconnectedBarActionType } from '../types/socket-types.js'; import { useSelector, useDispatch } from '../utils/redux-utils.js'; import { ashoatKeyserverID } from '../utils/validation-utils.js'; function useDisconnectedBarVisibilityHandler(networkConnected: boolean): void { const dispatch = useDispatch(); - const connection = useSelector(connectionSelector(ashoatKeyserverID)); - invariant(connection, 'keyserver missing from keyserverStore'); - const disconnected = connection.showDisconnectedBar; const setDisconnected = React.useCallback( (newDisconnected: boolean) => { - if (newDisconnected === disconnected) { - return; - } dispatch({ type: updateDisconnectedBarActionType, payload: { visible: newDisconnected, keyserverID: ashoatKeyserverID }, }); }, - [disconnected, dispatch], + [dispatch], ); - const networkActiveRef = React.useRef(true); - React.useEffect(() => { - networkActiveRef.current = networkConnected; - if (!networkConnected) { - setDisconnected(true); - } - }, [setDisconnected, networkConnected]); - - const prevConnectionStatusRef = React.useRef(); - const connectionStatus = connection.status; - const someRequestIsLate = connection.lateResponses.length !== 0; React.useEffect(() => { - const prevConnectionStatus = prevConnectionStatusRef.current; - prevConnectionStatusRef.current = connectionStatus; - - if ( - connectionStatus === 'connected' && - prevConnectionStatus !== 'connected' - ) { - // Sometimes NetInfo misses the network coming back online for some - // reason. But if the socket reconnects, the network must be up - networkActiveRef.current = true; - setDisconnected(false); - } else if (!networkActiveRef.current || someRequestIsLate) { - setDisconnected(true); - } else if ( - connectionStatus === 'reconnecting' || - connectionStatus === 'forcedDisconnecting' - ) { - setDisconnected(true); - } else if (connectionStatus === 'connected') { - setDisconnected(false); - } - }, [connectionStatus, someRequestIsLate, setDisconnected]); + setDisconnected(!networkConnected); + }, [networkConnected, setDisconnected]); } function useShouldShowDisconnectedBar(): {