Skip to content

Commit

Permalink
Revert "[lib] Rip useShouldShowDisconnectedBar and `useDisconnected…
Browse files Browse the repository at this point in the history
…Bar` out of `hooks/disconnected-bar`"

This reverts commit 7f64f3d.
  • Loading branch information
xsanm committed Jan 2, 2024
1 parent c5dc60d commit ec77949
Showing 1 changed file with 49 additions and 1 deletion.
50 changes: 49 additions & 1 deletion lib/hooks/disconnected-bar.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,52 @@ function useDisconnectedBarVisibilityHandler(networkConnected: boolean): void {
}, [connectionStatus, someRequestIsLate, setDisconnected]);
}

export { useDisconnectedBarVisibilityHandler };
function useShouldShowDisconnectedBar(): {
+disconnected: boolean,
+shouldShowDisconnectedBar: boolean,
} {
const connection = useSelector(connectionSelector(ashoatKeyserverID));
invariant(connection, 'keyserver missing from keyserverStore');
const disconnected = connection.showDisconnectedBar;
const socketConnected = connection.status === 'connected';

const shouldShowDisconnectedBar = disconnected || !socketConnected;
return { disconnected, shouldShowDisconnectedBar };
}

type DisconnectedBarCause = 'connecting' | 'disconnected';

function useDisconnectedBar(
changeShowing: boolean => void,
): DisconnectedBarCause {
const { disconnected, shouldShowDisconnectedBar } =
useShouldShowDisconnectedBar();

const prevShowDisconnectedBar = React.useRef<?boolean>();
React.useEffect(() => {
const wasShowing = prevShowDisconnectedBar.current;
if (shouldShowDisconnectedBar && wasShowing === false) {
changeShowing(true);
} else if (!shouldShowDisconnectedBar && wasShowing) {
changeShowing(false);
}
prevShowDisconnectedBar.current = shouldShowDisconnectedBar;
}, [shouldShowDisconnectedBar, changeShowing]);

const [barCause, setBarCause] =
React.useState<DisconnectedBarCause>('connecting');
React.useEffect(() => {
if (shouldShowDisconnectedBar && disconnected) {
setBarCause('disconnected');
} else if (shouldShowDisconnectedBar) {
setBarCause('connecting');
}
}, [shouldShowDisconnectedBar, disconnected]);
return barCause;
}

export {
useDisconnectedBarVisibilityHandler,
useShouldShowDisconnectedBar,
useDisconnectedBar,
};

0 comments on commit ec77949

Please sign in to comment.