Skip to content

Commit

Permalink
[native][web] Show version unsupported modal when received use_new_fl…
Browse files Browse the repository at this point in the history
…ow on logout

Summary:
Address [[ https://linear.app/comm/issue/ENG-9718/support-use-new-flow-for-v1-logout | ENG-9718 ]].
Display "version unsupported" message upon logout, when `use_new_flow` response is received

Depends on D14035

Test Plan: Mocked Identity logout response. I was visually logged out and modal appeared.

Reviewers: kamil, varun

Reviewed By: kamil

Subscribers: ashoat, tomek

Differential Revision: https://phab.comm.dev/D14036
  • Loading branch information
barthap committed Nov 29, 2024
1 parent f848902 commit a9ed611
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
7 changes: 6 additions & 1 deletion native/profile/profile-screen.react.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ import {
import { useSelector } from '../redux/redux-utils.js';
import { type Colors, useColors, useStyles } from '../themes/colors.js';
import Alert from '../utils/alert.js';
import { useShowVersionUnsupportedAlert } from '../utils/hooks.js';
import { useStaffCanSee } from '../utils/staff-utils.js';

type ProfileRowProps = {
Expand Down Expand Up @@ -564,7 +565,6 @@ const ConnectedProfileScreen: React.ComponentType<BaseProps> =
useSelector(logOutLoadingStatusSelector) === 'loading';
const colors = useColors();
const styles = useStyles(unboundStyles);
const callLogOut = useLogOut();
const callPrimaryDeviceLogOut = usePrimaryDeviceLogOut();
const callSecondaryDeviceLogOut = useSecondaryDeviceLogOut();
const dispatchActionPromise = useDispatchActionPromise();
Expand All @@ -575,6 +575,11 @@ const ConnectedProfileScreen: React.ComponentType<BaseProps> =
);
const currentUserID = useCurrentUserFID();

const showVersionUnsupportedAlert = useShowVersionUnsupportedAlert(false);
const callLogOut = useLogOut({
handleUseNewFlowResponse: showVersionUnsupportedAlert,
});

const userID = useSelector(
state => state.currentUserInfo && state.currentUserInfo.id,
);
Expand Down
13 changes: 11 additions & 2 deletions web/settings/account-settings.react.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,21 @@ import TunnelbrokerMessagesScreen from './tunnelbroker-message-list.react.js';
import TunnelbrokerTestScreen from './tunnelbroker-test.react.js';
import EditUserAvatar from '../avatars/edit-user-avatar.react.js';
import Button from '../components/button.react.js';
import VersionUnsupportedModal from '../modals/version-unsupported-modal.react.js';
import { useSelector } from '../redux/redux-utils.js';
import { useStaffCanSee } from '../utils/staff-utils.js';

function AccountSettings(): React.Node {
const sendLogoutRequest = useLogOut();
const { pushModal, popModal } = useModalContext();

const logOutOptions = React.useMemo(() => {
const showVersionUnsupportedModal = () => {
pushModal(<VersionUnsupportedModal />);
};
return { handleUseNewFlowResponse: showVersionUnsupportedModal };
}, [pushModal]);
const sendLogoutRequest = useLogOut(logOutOptions);

const sendSecondaryDeviceLogoutRequest = useSecondaryDeviceLogOut();
const dispatchActionPromise = useDispatchActionPromise();
const logOutUser = React.useCallback(
Expand All @@ -70,7 +80,6 @@ function AccountSettings(): React.Node {
})();
}, []);

const { pushModal, popModal } = useModalContext();
const showPasswordChangeModal = React.useCallback(
() => pushModal(<PasswordChangeModal />),
[pushModal],
Expand Down

0 comments on commit a9ed611

Please sign in to comment.