Page MenuHomePhabricator

D12712.id42194.diff
No OneTemporary

D12712.id42194.diff

diff --git a/lib/components/farcaster-data-handler.react.js b/lib/components/farcaster-data-handler.react.js
--- a/lib/components/farcaster-data-handler.react.js
+++ b/lib/components/farcaster-data-handler.react.js
@@ -9,8 +9,8 @@
} from '../actions/relationship-actions.js';
import { setSyncedMetadataEntryActionType } from '../actions/synced-metadata-actions.js';
import { NeynarClientContext } from '../components/neynar-client-provider.react.js';
+import { useIsLoggedInToIdentityAndAuthoritativeKeyserver } from '../hooks/account-hooks.js';
import { useLegacyAshoatKeyserverCall } from '../keyserver-conn/legacy-keyserver-call.js';
-import { isLoggedInToIdentityAndAuthoritativeKeyserver } from '../selectors/user-selectors.js';
import { IdentityClientContext } from '../shared/identity-client-context.js';
import { relationshipActions } from '../types/relationship-types.js';
import { syncedMetadataNames } from '../types/synced-metadata-types.js';
@@ -24,7 +24,7 @@
const currentUserID = useSelector(state => state.currentUserInfo?.id);
- const loggedIn = useSelector(isLoggedInToIdentityAndAuthoritativeKeyserver);
+ const loggedIn = useIsLoggedInToIdentityAndAuthoritativeKeyserver();
const neynarClient = React.useContext(NeynarClientContext)?.client;
diff --git a/lib/handlers/user-infos-handler.react.js b/lib/handlers/user-infos-handler.react.js
--- a/lib/handlers/user-infos-handler.react.js
+++ b/lib/handlers/user-infos-handler.react.js
@@ -10,12 +10,10 @@
useFindUserIdentities,
findUserIdentitiesActionTypes,
} from '../actions/user-actions.js';
+import { useIsLoggedInToAuthoritativeKeyserver } from '../hooks/account-hooks.js';
import { useGetAndUpdateDeviceListsForUsers } from '../hooks/peer-list-hooks.js';
import { useLegacyAshoatKeyserverCall } from '../keyserver-conn/legacy-keyserver-call.js';
-import {
- usersWithMissingDeviceListSelector,
- isLoggedInToAuthoritativeKeyserver,
-} from '../selectors/user-selectors.js';
+import { usersWithMissingDeviceListSelector } from '../selectors/user-selectors.js';
import { useTunnelbroker } from '../tunnelbroker/tunnelbroker-context.js';
import { relationshipActions } from '../types/relationship-types.js';
import { getMessageForException } from '../utils/errors.js';
@@ -46,9 +44,7 @@
const currentUserInfo = useSelector(state => state.currentUserInfo);
- const loggedInToAuthKeyserver = useSelector(
- isLoggedInToAuthoritativeKeyserver,
- );
+ const loggedInToAuthKeyserver = useIsLoggedInToAuthoritativeKeyserver();
React.useEffect(() => {
if (!loggedInToAuthKeyserver) {
diff --git a/lib/hooks/account-hooks.js b/lib/hooks/account-hooks.js
--- a/lib/hooks/account-hooks.js
+++ b/lib/hooks/account-hooks.js
@@ -1,6 +1,11 @@
// @flow
+import {
+ isLoggedIn,
+ isLoggedInToKeyserver,
+} from '../selectors/user-selectors.js';
import type { LoggedInUserInfo } from '../types/user-types.js';
+import { authoritativeKeyserverID } from '../utils/authoritative-keyserver.js';
import { useSelector } from '../utils/redux-utils.js';
function useLoggedInUserInfo(): ?LoggedInUserInfo {
@@ -11,4 +16,20 @@
);
}
-export { useLoggedInUserInfo };
+function useIsLoggedInToAuthoritativeKeyserver(): boolean {
+ return useSelector(isLoggedInToKeyserver(authoritativeKeyserverID()));
+}
+
+function useIsLoggedInToIdentityAndAuthoritativeKeyserver(): boolean {
+ return useSelector(
+ state =>
+ isLoggedInToKeyserver(authoritativeKeyserverID())(state) &&
+ isLoggedIn(state),
+ );
+}
+
+export {
+ useLoggedInUserInfo,
+ useIsLoggedInToAuthoritativeKeyserver,
+ useIsLoggedInToIdentityAndAuthoritativeKeyserver,
+};
diff --git a/lib/selectors/user-selectors.js b/lib/selectors/user-selectors.js
--- a/lib/selectors/user-selectors.js
+++ b/lib/selectors/user-selectors.js
@@ -28,7 +28,6 @@
AccountUserInfo,
CurrentUserInfo,
} from '../types/user-types.js';
-import { authoritativeKeyserverID } from '../utils/authoritative-keyserver.js';
import { entries, values } from '../utils/objects.js';
// Used for specific message payloads that include an array of user IDs, ie.
@@ -168,14 +167,6 @@
},
);
-const isLoggedInToAuthoritativeKeyserver: (state: BaseAppState<>) => boolean =
- isLoggedInToKeyserver(authoritativeKeyserverID());
-
-const isLoggedInToIdentityAndAuthoritativeKeyserver: (
- state: BaseAppState<>,
-) => boolean = (state: BaseAppState<>) =>
- isLoggedInToAuthoritativeKeyserver(state) && isLoggedIn(state);
-
const usersWithPersonalThreadSelector: (
state: BaseAppState<>,
) => $ReadOnlySet<string> = createSelector(
@@ -276,8 +267,6 @@
userInfoSelectorForPotentialMembers,
isLoggedIn,
isLoggedInToKeyserver,
- isLoggedInToAuthoritativeKeyserver,
- isLoggedInToIdentityAndAuthoritativeKeyserver,
usersWithPersonalThreadSelector,
savedEmojiAvatarSelectorForCurrentUser,
getRelativeUserIDs,
diff --git a/native/account/logged-out-modal.react.js b/native/account/logged-out-modal.react.js
--- a/native/account/logged-out-modal.react.js
+++ b/native/account/logged-out-modal.react.js
@@ -21,11 +21,9 @@
} from 'react-native-reanimated';
import { SafeAreaView } from 'react-native-safe-area-context';
+import { useIsLoggedInToAuthoritativeKeyserver } from 'lib/hooks/account-hooks.js';
import { setActiveSessionRecoveryActionType } from 'lib/keyserver-conn/keyserver-conn-types.js';
-import {
- isLoggedIn,
- isLoggedInToAuthoritativeKeyserver,
-} from 'lib/selectors/user-selectors.js';
+import { isLoggedIn } from 'lib/selectors/user-selectors.js';
import { recoveryFromReduxActionSources } from 'lib/types/account-types.js';
import { useDispatch } from 'lib/utils/redux-utils.js';
import { usingCommServicesAccessToken } from 'lib/utils/services-utils.js';
@@ -426,9 +424,7 @@
const rehydrateConcluded = useSelector(
state => !!(state._persist && state._persist.rehydrated && navContext),
);
- const isLoggedInToAuthKeyserver = useSelector(
- isLoggedInToAuthoritativeKeyserver,
- );
+ const isLoggedInToAuthKeyserver = useIsLoggedInToAuthoritativeKeyserver();
const loggedIn = useSelector(isLoggedIn);
const dispatch = useDispatch();
React.useEffect(() => {
diff --git a/native/account/registration/registration-server-call.js b/native/account/registration/registration-server-call.js
--- a/native/account/registration/registration-server-call.js
+++ b/native/account/registration/registration-server-call.js
@@ -12,10 +12,10 @@
deleteAccountActionTypes,
useDeleteDiscardedIdentityAccount,
} from 'lib/actions/user-actions.js';
+import { useIsLoggedInToAuthoritativeKeyserver } from 'lib/hooks/account-hooks.js';
import { useKeyserverAuthWithRetry } from 'lib/keyserver-conn/keyserver-auth.js';
import { useLegacyAshoatKeyserverCall } from 'lib/keyserver-conn/legacy-keyserver-call.js';
import { usePreRequestUserState } from 'lib/selectors/account-selectors.js';
-import { isLoggedInToAuthoritativeKeyserver } from 'lib/selectors/user-selectors.js';
import {
type LegacyLogInStartingPayload,
logInActionSources,
@@ -543,9 +543,7 @@
const uploadSelectedMedia = useUploadSelectedMedia();
const nativeSetUserAvatar = useNativeSetUserAvatar();
- const isLoggedInToAuthKeyserver = useSelector(
- isLoggedInToAuthoritativeKeyserver,
- );
+ const isLoggedInToAuthKeyserver = useIsLoggedInToAuthoritativeKeyserver();
const avatarBeingSetRef = React.useRef(false);
React.useEffect(() => {
diff --git a/native/components/auto-join-community-handler.react.js b/native/components/auto-join-community-handler.react.js
--- a/native/components/auto-join-community-handler.react.js
+++ b/native/components/auto-join-community-handler.react.js
@@ -9,8 +9,8 @@
} from 'lib/actions/thread-actions.js';
import { NeynarClientContext } from 'lib/components/neynar-client-provider.react.js';
import blobService from 'lib/facts/blob-service.js';
+import { useIsLoggedInToIdentityAndAuthoritativeKeyserver } from 'lib/hooks/account-hooks.js';
import { extractKeyserverIDFromID } from 'lib/keyserver-conn/keyserver-call-utils.js';
-import { isLoggedInToIdentityAndAuthoritativeKeyserver } from 'lib/selectors/user-selectors.js';
import { farcasterChannelTagBlobHash } from 'lib/shared/community-utils.js';
import type { AuthMetadata } from 'lib/shared/identity-client-context.js';
import { IdentityClientContext } from 'lib/shared/identity-client-context.js';
@@ -30,7 +30,7 @@
function AutoJoinCommunityHandler(): React.Node {
const isActive = useSelector(state => state.lifecycleState !== 'background');
- const loggedIn = useSelector(isLoggedInToIdentityAndAuthoritativeKeyserver);
+ const loggedIn = useIsLoggedInToIdentityAndAuthoritativeKeyserver();
const fid = useCurrentUserFID();
diff --git a/native/components/background-identity-login-handler.react.js b/native/components/background-identity-login-handler.react.js
--- a/native/components/background-identity-login-handler.react.js
+++ b/native/components/background-identity-login-handler.react.js
@@ -8,7 +8,7 @@
logOutActionTypes,
useLogOut,
} from 'lib/actions/user-actions.js';
-import { isLoggedInToIdentityAndAuthoritativeKeyserver } from 'lib/selectors/user-selectors.js';
+import { useIsLoggedInToIdentityAndAuthoritativeKeyserver } from 'lib/hooks/account-hooks.js';
import { accountHasPassword } from 'lib/shared/account-utils.js';
import { securityUpdateLogoutText } from 'lib/types/alert-types.js';
import { useDispatchActionPromise } from 'lib/utils/redux-promise-utils.js';
@@ -28,7 +28,7 @@
);
const hasAccessToken = useSelector(state => !!state.commServicesAccessToken);
- const loggedIn = useSelector(isLoggedInToIdentityAndAuthoritativeKeyserver);
+ const loggedIn = useIsLoggedInToIdentityAndAuthoritativeKeyserver();
const navLoggedIn = useIsAppLoggedIn();
// We don't want to try identity login until both loggedIn and navLoggedIn are
diff --git a/native/components/connect-farcaster-alert-handler.react.js b/native/components/connect-farcaster-alert-handler.react.js
--- a/native/components/connect-farcaster-alert-handler.react.js
+++ b/native/components/connect-farcaster-alert-handler.react.js
@@ -4,7 +4,7 @@
import * as React from 'react';
import { recordAlertActionType } from 'lib/actions/alert-actions.js';
-import { isLoggedInToIdentityAndAuthoritativeKeyserver } from 'lib/selectors/user-selectors.js';
+import { useIsLoggedInToIdentityAndAuthoritativeKeyserver } from 'lib/hooks/account-hooks.js';
import {
alertTypes,
type RecordAlertActionPayload,
@@ -22,7 +22,7 @@
const isActive = useSelector(state => state.lifecycleState !== 'background');
- const loggedIn = useSelector(isLoggedInToIdentityAndAuthoritativeKeyserver);
+ const loggedIn = useIsLoggedInToIdentityAndAuthoritativeKeyserver();
const fid = useCurrentUserFID();
diff --git a/native/navigation/navigation-handler.react.js b/native/navigation/navigation-handler.react.js
--- a/native/navigation/navigation-handler.react.js
+++ b/native/navigation/navigation-handler.react.js
@@ -2,7 +2,7 @@
import * as React from 'react';
-import { isLoggedInToIdentityAndAuthoritativeKeyserver } from 'lib/selectors/user-selectors.js';
+import { useIsLoggedInToIdentityAndAuthoritativeKeyserver } from 'lib/hooks/account-hooks.js';
import { logInActionType, logOutActionType } from './action-types.js';
import ModalPruner from './modal-pruner.react.js';
@@ -13,7 +13,6 @@
import ThreadScreenTracker from './thread-screen-tracker.react.js';
import { MissingRegistrationDataHandler } from '../account/registration/missing-registration-data/missing-registration-data-handler.react.js';
import DevTools from '../redux/dev-tools.react.js';
-import { useSelector } from '../redux/redux-utils.js';
import { usePersistedStateLoaded } from '../selectors/app-state-selectors.js';
const NavigationHandler: React.ComponentType<{}> = React.memo<{}>(
@@ -59,7 +58,7 @@
) {
const { dispatch } = props;
- const loggedIn = useSelector(isLoggedInToIdentityAndAuthoritativeKeyserver);
+ const loggedIn = useIsLoggedInToIdentityAndAuthoritativeKeyserver();
const navLoggedIn = useIsAppLoggedIn();
const prevLoggedInRef = React.useRef<?boolean>();

File Metadata

Mime Type
text/plain
Expires
Wed, Oct 23, 11:24 PM (22 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2354443
Default Alt Text
D12712.id42194.diff (11 KB)

Event Timeline